本稿では、あまり一般的に教えられていない言語を対象としたアプリケーションにおいて、NLLB翻訳モデルとChatGPTの双方向最適化戦略を検討する。まず、NLLB-200の背景、データ、トークナイザー、モデル、そしてLLM(大規模言語モデル)との類似点、相違点、そして相乗効果について紹介する。次に、ChatGPTによって生成されたサンプルを用いてNLLB-200を微調整したり、NLLB-200の翻訳結果をLLMのプロンプトとして利用したりするなど、実践的な応用例を提示する。本稿で提示された研究と実践を通して、あまり一般的に教えられていない言語における翻訳モデルと言語モデルの統合に関する参考資料とガイダンスを提供することができる。 I. NLLBの背景NLLB(No Language Left Behind)[1]は、Metaが立ち上げた言語の壁を打破することを目指すプロジェクトです。このプロジェクトは、話す言語に関わらず、誰もが平等に情報にアクセスし、コミュニケーションをとることを可能にします。公式には、単一のモデルを用いて複数の言語を翻訳する世界初の設計であるとされており、ソーシャルメディアプラットフォーム上でより多くの人々が言語を超えて交流できるようになることを期待しています。 NLLBプロジェクトの中核は、正確かつ幅広い言語に適応可能な翻訳モデルの開発です。これには、英語、中国語、スペイン語といった広く話されている言語だけでなく、高品質な機械翻訳に必要なデータリソースが不足していることが多い、先住民族言語や地域言語といったあまり話されていない言語も含まれます。NLLBプロジェクトのより広範なビジョンは、多様な言語の壁を乗り越えてコミュニケーションと知識へのアクセスを促進し、グローバルコミュニティにおける教育、経済機会、そして社会的包摂を支援することです。これらの言語向けのAIモデルとデータセットが改善されるにつれて、それらは様々なツールやプラットフォームに統合され、リアルタイム翻訳サービス、コンテンツ理解、その他の言語関連機能を提供することが可能になり、世界中のユーザーにメリットをもたらします。 NLLBプロジェクトには、複数言語の翻訳データセットと機械学習ベースの翻訳モデルが含まれています。これらの技術とモデルは、限られたデータからより効果的に学習し、翻訳データが少ない可能性のある言語を他の言語に翻訳することを可能にします。これらの目標を達成するために、NLLBは研究者、言語学者、エンジニアを結集し、高度な機械学習モデル、データ収集・拡張戦略、そして翻訳が文字どおりの正確さだけでなく、文化的・文脈的にも正確であることを保証するための評価手法の改善に取り組んでいます。 この記事では、NLLBプロジェクトの主役であるNLLB-200事前学習済みモデルを中心に紹介します。これはMeta AIがオープンソース化した大規模な機械翻訳モデルであり、200以上の言語間の相互翻訳をサポートしています。 1.1 NLLB-200データ現在、Google翻訳は約130言語をカバーしていますが、Microsoft翻訳は約110言語をカバーしています。Meta AIは、NLLB(National Language Translation Load)プロジェクトを通じて、200言語以上のカバーを目指しています。そのため、Meta AIはモデル自体の検討に加えて、データアノテーションやデータクリーニングなど、翻訳モデルレベルを超えた側面にも重点を置く必要があります。 NLLB-200プロジェクトでは、Flores-101データセットの拡張版であるFlores-200データセットを使用しています。Flores-200データセットは、世界中の101の言語を収録しています。Flores-200データセットは、従来の言語セットをカバーするだけでなく、さらに多くの言語を追加することで、収録言語数を合計200に拡大しています。 研究チームは、公開データとウェブクローラーでクロールされたデータの収集に加え、バックトランスレーション戦略を用いてトレーニングデータセットをさらに拡張しました。バックトランスレーションとは、既存の機械翻訳モデルを用いてターゲット言語のテキストをソース言語に再翻訳し、より豊富な新しいトレーニングサンプルを作成する独自のデータ拡張手法です。これにより、様々な言語におけるモデルのパフォーマンスと精度が向上します。 このデータは機械翻訳タスクに使用されるため、文対形式となっています。つまり、第一言語とそれに対応する表現、そして翻訳対象となる第二言語の対応する表現が含まれています。データの例を以下に示します。 { "translation": { "ace_Latn": "ゴブニャン ハナ ゲウペウケウセワ ガタ アタワ グティンガイ ムナン マントン ガタ。", "ban_Latn": "イダ ネンテン ジャガ マンガヤン ウィアディン ングタン セメトン。" }, "laser_score": 1.2499876022338867, "source_sentence_lid": 1.0000100135803223, "target_sentence_lid": 0.9991400241851807, "source_sentence_source": "paracrawl9_hieu", "source_sentence_url": "_", "target_sentence_source": "crawl-data/CC-MAIN-2020-10/segments/1581875144165.4/wet/CC-MAIN-20200219153707-20200219183707-00232.warc.wet.gz", "target_sentence_url": 「https://alkitab.mobi/tb/Ula/31/6/\n」}1.2 NLLB-200 トークナイザーNLLB-200モデルは、大量のデータを収集・整理した後、言語に依存しない表現の学習を容易にするための複数の手法を採用し、単一言語だけでなく複数言語間の翻訳にも使用できるようになりました。最も重要な要素の一つは、すべての言語に対応できるトークナイザーの設計でした。このトークナイザーは共通の語彙、つまりSentencePiece語彙を用いて、関連するすべての言語の入出力シーケンスをエンコードします。 これは、同じサブワード単位を異なる言語間で共有できることを意味し、モデルが言語横断的に共通の語彙表現を学習するのに役立ちます。SentencePieceモデルは1億個のサンプル文で学習されました。低リソース言語を適切に表現するために、NLLBチームは高リソース言語をダウンサンプリングし、低リソース言語をアップサンプリングすることで、最終的に256,206語彙のモデルを学習しました(Llama/Llama2/Llama3では32,000語彙でした)。 NLLB トークナイザーを使用するには、次のパラメータを受け入れる NllbTokenizer を含む Transformers を直接呼び出します。 - vocab_file (str) - bos_token (str, オプション、デフォルトは "<s>") - eos_token (str, オプション、デフォルトは "</s>") - sep_token (str, オプション、デフォルトは "</s>") - unk_token (str, オプション、デフォルトは "<unk>") - pad_token (str, オプション、デフォルトは "<pad>") - mask_token (str, オプション、デフォルトは "<mask>") - tokenizer_file (str, オプション) - src_lang (str, オプション) - tgt_lang (str, オプション) - sp_model_kwargs (Dict[str, str]) from transformers import NllbTokenizer tokenizer = NllbTokenizer.from_pretrained( "nllb/nllb-200-distilled-1.3B", src_lang="eng_Latn", tgt_lang="fra_Latn" ) example_english_phrase = "国連事務総長、シリアには軍事的解決策はないと明言" expected_translation_french = ( "国連事務総長はシリアに軍事的解決策はないと主張している。" ) inputs = tokenizer( example_english_phrase, text_target=expected_translation_french, return_tensors="pt") 1.3 NLLB-200モデル大規模トークナイザーの準備が整うと、各文を複数のトークンに適切に分割し、対応するトークンIDを見つけることができます。次のステップはモデルのトレーニングです。NLLB-200モデルは、Transformerアーキテクチャを用いて異なる言語間の表現を学習します。
多言語機械翻訳モデルは、言語ペアごとに個別のモデルを構築する必要がなく、異なる言語間の翻訳を学習できます。このアプローチにより、モデルの数とメンテナンスコストが削減され、モデル間で異なる言語間で知識を共有できるため、リソースの少ない言語の翻訳パフォーマンスの向上に役立つことがよくあります。 1.4 NLLB-200蒸留表1: NLLB-200と蒸留版のパラメータ オープンソースのNLLB-200 MoE(Mixture of Experts)バージョンは、驚異的な545億個のパラメータを誇ります。この規模のモデルをデバイス上で実行することは非常に困難であり、膨大な計算リソースを必要とします。しかし、開発者は、パラメータを抽出して合理化したバージョンも提供しています。このモデルはわずか13億個のパラメータで構成されているため、オリジナルよりも大幅に軽量化され、ハードウェアリソースへの依存度が低減されるため、リソースが限られた環境でも動作可能です。 II. NLLBとLLMLLMと同様に、NLLBは翻訳タスクとして、シーケンスからシーケンスへのタスクと表現でき、生成的カテゴリに属します。では、NLLBとLLMの類似点と相違点は何でしょうか?両者は排他的なものでしょうか?それとも連携できるのでしょうか? 2.1 NLLBモデルとLLMモデルの相違点と類似点NLLBとLLMはどちらもTransformerアーキテクチャを基盤として採用しています。違いは、NLLBが標準的なエンコーダー・デコーダーアーキテクチャを採用しているのに対し、GPTベースのモデルはデコーダーのみを使用する(BERTはエンコーダーを使用する)点です。 Transformerモデルでは、エンコーダーが入力テキストを理解し、関連情報を抽出する役割を担います。このプロセスでは通常、テキストのシリアル化形式(単語や文字など)を処理し、自己注意メカニズムを利用してテキスト内の文脈関係を理解します。エンコーダーの出力は、入力テキストの連続表現であり、多くの場合、埋め込みと呼ばれます。この埋め込みには、エンコーダーがテキストから抽出した有用な情報がすべて含まれており、モデルが処理できる高次元ベクトル形式で表現されます。この埋め込みはデコーダーに渡されます。デコーダーの役割は、エンコーダーから受け取った埋め込みに基づいて、(ターゲット言語で)翻訳されたテキストを生成することです。デコーダーは、自己注意メカニズムとエンコーダー-デコーダー注意メカニズムも利用して、翻訳されたテキストを生成します。 LLM は、エンコーダーのみ、デコーダーのみ、またはその両方のハイブリッドのいずれかになります。3 つのタイプはすべて、Seq2Seq (シーケンスツーシーケンス) モデル カテゴリに属します。名目上はエンコーダーのみですが、LLM は実際には一部のテキストとトークンをデコードできるため、デコーダーとしても機能します。ただし、デコーダーのみのタイプやエンコーダー - デコーダーのタイプとは異なり、エンコーダーのみの LLM は、他の 2 つのタイプのような自己回帰特性を示すのではなく、入力を理解してタスク固有の出力を生成することに重点を置いています。自己回帰とは、出力が以前に生成されたトークンに基づいており、トークンごとにコンテキスト理解を生成することを意味します。一般に、エンコーダーのみのタイプは分類タスクに優れており、エンコーダー - デコーダー タイプは翻訳やテキスト要約など、入力に強く依存する出力の生成に適しており、デコーダーのみのタイプはさまざまな Q&A タスクに適しています。 2.2 NLLBとLLMは目的が異なる現在の大規模言語モデルも優れた翻訳能力を備えていますが、ChatGPTなどのLLMは高リソース言語の翻訳に優れており、一方、NLLB-200は低リソース言語の翻訳能力を大幅に向上させました。NLLB-200とLLMの翻訳能力における主な違いは、その焦点と訓練目標にあります。 1. プロフェッショナリズム:
2. カバーエリア:
3. 適用範囲:
まとめると、NLLB-200はトレーニングと設計に基づき機械翻訳において優れた性能を発揮することが期待される一方、LLMは高品質な会話体験の創出に重点を置いています。複雑または特殊な翻訳タスク、特に希少言語間の翻訳においては、NLLB-200の方が適している可能性があります。しかし、人間のユーザーとの自然なコミュニケーションが求められる状況では、LLMの方が適しているかもしれません。 2.3 NLLBとLLMの連携NLLB-200 と LLM は翻訳においてそれぞれ異なる強みを持っていますが、LLM の強力な自然言語理解および生成機能は、NLLB-200 の独自の翻訳テクノロジーを補完することができます。
これら 2 つのアプローチを組み合わせた具体的な方法については、後ほど詳しく説明します。 III. 実用化3.1 LLMを使用してNLLB-200の微調整のためのターゲットデータを生成する現在、アプリストアが国際的に運営されている主な国は、インド、インドネシア、タイ、マレーシア、フィリピン、ベトナムなどです。さらに、ユーザーベースが小さい他の数十の国と地域でも利用されています。ユーザークエリで使用される言語の多様性により、2023年初頭の評価結果では、すべての国で現地語クエリによる悪い事例が存在することが示されました。一部の国ではユーザー行動データが限られているため、ユーザー行動ベースのモデルが効果的に機能しません。さらに、多くのアプリは国際的に英語名を使用しているため、テキストマッチングだけに頼ると、現地語クエリと英語のアプリが一致せず、ユーザーにとって望ましくない結果になる可能性があります。この問題に対処するには、各運営国で再現率の低い現地語クエリを英語に翻訳し、結果を取得する翻訳機能を導入する必要があります。 NLLB-200モデルの元のトレーニングデータは様々な記事から取得されており、説明的な単語を多数含む可能性があるため、テキストリコールでは重要な情報を捉えきれない可能性があります。そのため、NLLB-200モデルを輸出店舗の検索に使用するには、モデルに簡単な微調整を行う必要があります。 3.2 LoRAの微調整:ソリューションの紹介大規模言語モデルは膨大な数のパラメータ(例えばGPT-3は1750億個のパラメータ)を持ち、下流のタスクに適用する際に全てのパラメータを微調整するには相当な計算能力が必要になります。コスト削減のため、少数のパラメータのみを学習することでモデルを下流のタスクに適応させることを目的とした、パラメータ効率の高い微調整手法がいくつか提案されています。
LoRA(ラベル指向アテンティブ・ファインチューニング)は、独自のファインチューニング手法を提案します。これは、事前学習済みモデルのパラメータを固定し、低ランク行列の積を学習可能なパラメータとして元の重み行列にバイパスとして追加することで、パラメータの変動量をシミュレートする手法です。この手法は、微妙な調整によって下流のタスクのニーズに適応することを目指しています。 [図1]:LoRAの微調整方法 具体的には、左側のWはLLMの事前学習パラメータを表します。一般的な微調整プロセスでは、このWパラメータは学習の進行に伴ってW+ΔW+ΔWに更新されます。ここで、ΔWはΔW=BAに分解できます。 したがって、h=W+ΔW=W+BAh=W+ΔW=W+BAです。 順方向計算では、hx=(W+ΔW)x=(W+BA)xhx=(W+ΔW)x=(W+BA)xとなります。
さらに、Hugging FaceはすでにPEFTライブラリ[4]をオープンソース化しており、このライブラリには直接呼び出せる多くの効率的なファインチューニング手法が含まれているため、独自のファインチューニングアルゴリズムを開発する必要がなくなりました。コードからわかるように、PEFTは様々な効率的なファインチューニング手法をサポートしており、Hugging Faceはよく使われるパラメータファインチューニング手法をカプセル化して提供しており、直接利用できます。PEFTライブラリにカプセル化された手法は以下の通りです。 class PeftType(str, enum.Enum): """ PEFT のさまざまなタイプのアダプタの列挙クラス。サポートされている PEFT タイプ: - PROMPT_TUNING - MULTITASK_PROMPT_TUNING - P_TUNING - PREFIX_TUNING - LORA - ADALORA - BOFT - ADAPTION_PROMPT - IA3 - LOHA - LOKR - OFT - POLY - LN_TUNING """ PROMPT_TUNING = "PROMPT_TUNING" MULTITASK_PROMPT_TUNING = "MULTITASK_PROMPT_TUNING" P_TUNING = "P_TUNING" PREFIX_TUNING = "PREFIX_TUNING" LORA = "LORA" ADALORA = "ADALORA" BOFT = "BOFT" ADAPTION_PROMPT = "ADAPTION_PROMPT" IA3 = "IA3" LOHA = "LOHA" LOKR = "LOKR" OFT = "OFT" POLY = "POLY" LN_TUNING = "LN_TUNING" VERA = "VERA" PEFTの公式ガイドラインによると、LoRAはあらゆるモダリティとモデルをカバーしており、様々なシナリオに適用できる汎用的な手法となっています。そのため、私たちは輸出店舗検索の翻訳を微調整するためにこの手法を採用しました。 ソース コードを見ると、独自のコードを書く必要はなく、呼び出すだけで次の主なカテゴリのタスクに LoRA を直接使用できます。 class TaskType(str, enum.Enum): """ PEFTでサポートされる様々なタスクタイプの列挙クラス。サポートされるタスクタイプの概要: - SEQ_CLS: テキスト分類。 - SEQ_2_SEQ_LM: シーケンスツーシーケンス言語モデリング。 - CAUSAL_LM: 因果言語モデリング。 - TOKEN_CLS: トークン分類。 - QUESTION_ANS: 質問応答。 - FEATURE_EXTRACTION: 特徴抽出。下流タスクの埋め込みまたは特徴として使用できる隠れ状態を提供します。 "FEATURE_EXTRACTION" 3.3 NLLBモデルの微調整:データ翻訳されたクエリをテキストマッチングで英語のアプリとマッチさせたいので、翻訳も英語のアプリの命名規則に近づけたいと考えています。例えば、次のようになります。 接続詞、修飾語、その他主観的でない語の使用を最小限に抑えましょう。例えば、「The digital wallet.」には不要な接続詞「the」が含まれており、ノイズの原因となる可能性があります。「digital wallet.」と翻訳した方が、テキストリコールの効率が上がります。 単語が複数の意味を持つ場合は、アプリ内でよく使われる単語を選ぶようにしてください。例えば、両方の単語が「ネットワーク接続なし」を意味する場合、「netless」ではなく「offline」と翻訳する必要があります。 この効果を実現するには、まず微調整用の特定のデータバッチを準備する必要があります。データ生成には、ChatGPT(GPT 3.5ベース)を使用しました。
表2: トレーニングデータの例 3.4 NLLBモデルの微調整:トレーニング3.4.1 事前学習済みモデルの初期化トランスフォーマーからインポートAutoModelForSeq2SeqLMモデル = AutoModelForSeq2SeqLM.from_pretrained("nllb/nllb-200-distilled-1.3B")3.4.2 lora パラメータを設定し、get_peft_model() を使用してトレーニングする PeftModel を取得します。peft からインポート get_peft_model、LoraConfig、TaskType peft_config = LoraConfig( task_type=TaskType.SEQ_2_SEQ_LM、 inference_mode=False、 r=8、 lora_alpha=16、 lora_dropout=0.1、 target_modules=["q_proj", "k_proj", "v_proj", "out_proj", "fc_in", "fc_out", "wte"]、 ) lora_model = get_peft_model(model、 peft_config) lora_model.print_trainable_parameters() # トレーニング可能なパラメータ: 4718592 || すべてのパラメータ: 1375356928 || トレーニング可能%: 0.3430812688646303 3.4.3 通常のトレーニング方法に従ってトレーニングします。学習パラメータの数は元の値の0.34%に削減されました。以前は並列学習に複数のGPUを必要としていたパラメータが、単一のGPU、あるいはCPUマシンでも学習できるようになりました。学習後、PeftModelは保存されます。 lora_model.save_pretrained('nllb_lora_model')3.5 NLLBモデルの微調整:推論先ほど PeftModel モデルのみを保存したため、推論プロセス中にベース モデルと推論用の lora パラメータの両方を読み込む必要があります。 3.5.1 前述のベースモデルの初期化トランスフォーマーからインポートAutoModelForSeq2SeqLMモデル = AutoModelForSeq2SeqLM.from_pretrained("nllb/nllb-200-distilled-1.3B")3.5.2 保存された lora パラメータを取得して PeftModel 結果を取得します。 Peft から PeftConfig をインポートします。PeftModel config = PeftConfig.from_pretrained("nllb_lora_model") lora_model = PeftModel.from_pretrained(model, "nllb_lora_model")3.5.3 通常の推論方法に従って結果を出力します。私たち自身の実験結果によると、LoRAは微調整が速く、計算リソースをほとんど必要とせず、非常に優れた結果をもたらします。ほとんどの場合、完全なパラメータ微調整と同等の効果が得られます。 lora_model.generate( **encoded_text, forced_bos_token_id=tokenizer.lang_code_to_id["eng_Latn"] ) オープンソース テストに基づくと、LoRA は通常、パラメータの 1% 未満をトレーニングし、ほぼ完全なパラメータの微調整結果を達成できます。 3.6 微調整前後のNLLBモデルの比較翻訳機能では、ソース言語での基本的なエラー修正と補完も実行できます。 例えば、ユーザーが「フリーゲーム」と入力した場合、実際の表現は「フリーゲーム」であるべきです。NLLB-200モデルによる翻訳後、正しい英語訳は「フリーゲーム」となります。これにより、テキスト、タグ、セマンティクスに基づいた後続の検索が容易になります。 不要な接続詞を減らすと、アプリケーション検索に適したより簡潔なクエリが生成されます。 元の翻訳は記事に基づいていたため、文章をより滑らかでエレガントに(そしてより長く)読みやすくするために、接続詞などの要素が多く含まれていました。しかし、アプリケーション名自体が短く、通常のクエリも1つか2つの短い単語で構成されているため、このアプローチはアプリケーション検索には適していません。そのため、長い文を翻訳することは、正しい結果の取得を妨げます。例えば、次のケースが挙げられます。 最初の結果を例に挙げると、「チャットゲームをプレイする」という翻訳の場合、「パーティーゲーム」という回答が多く表示されますが、これはユーザーのニーズに完全には一致しません。これは、クエリに多くの単語が含まれているためノイズが発生し、テキストマッチング処理で重要でない単語が一致してしまうためです。 そのため、モデルはアプリにできるだけ近い名前を翻訳する必要があります。「チャットゲーム」を翻訳すれば、クエリ全体が大幅に簡素化されます。その結果、ノイズが削減され、再現率も大幅に向上します。類似ラベルを介して「いたずらマスター」のような結果を見つけることも可能です。 アプリ名との一貫性を保つためのクエリの作成:特定の種類のアプリケーションには、共通の命名規則が存在します。例えば、シミュレーションゲームは通常「シミュレーション」または「シミュレータ」と呼ばれます。辞書は通常「単語」ではなく「辞書」と呼ばれます。発音アプリは通常「音節」ではなく「スペル」と呼ばれます。そのため、下流データを微調整することで、翻訳クエリをアプリ名に近づけることができます。 例えば、「モッキングゲーム」と翻訳するのは問題があります。なぜなら、実際に「モッキング」という言葉を名前に含むアプリケーションやゲームはごくわずかだからです。したがって、テキスト想起における主なキーワードが「ゲーム」である場合、ユーザーのニーズを満たすことは明らかに困難です。 しかし、「シミュレーションゲーム」を翻訳することができれば、学校シミュレーションやスライムシミュレーションなど、一連のシミュレーションゲームを見つけることができます。 IV. NLLB-200の翻訳結果をLLMのプロンプトとして利用するGPT3.5とGPT4はどちらも英語を中心とした大規模言語モデルであることは間違いありません。一方、Wenxin Yiyan、Tongyi Qianwen、Doubao、Kimiは中国語を中心としたモデルです。 大規模言語モデルの学習には膨大なリソースが必要となるため、貧困に苦しむアフリカ諸国では、自国言語を中心とした大規模言語モデルの開発が困難です。では、これらの国々で中国語や英語を話さない人々は、大規模言語モデルのメリットを享受できないのでしょうか?答えは間違いなく「ノー」です。最近の研究では、ChatGPTやLlamaは、あまり話されていない言語のプロンプトを英語に翻訳した後、迅速に正確な結果を提供できることが示されています。 4.1 直接プロンプトと翻訳プロンプトの実践今回は非常にニッチな言語、マオリ語(mri)を取り上げます。一般的に、Common Crawlなどの言語統計に基づき、1%を超える言語を高リソース言語、それ以下の言語を低リソース言語とみなします。統計によると、マオリ語の言語割合は0.0009%で、実に小さな言語です。次に、この低リソース言語をプロンプト実験に使用します。 入力:
ChatGPT出力:
しかし、この回答は形式が間違っています。理解を深めるために出力を中国語に翻訳し直すと、回答の意味は次のようになります。
この答えは全く無関係です。 一方、この問題を中国語コーパスを中心とした2つのモデル、Tongyi QianwenとChatGLM2に入力してみました。中国語コーパスを中心としたこれら2つのモデルは、この問題を理解し処理する能力がさらに低いことがわかります。 qwen-max-1201(人気のオンラインQ&Aプラットフォーム)の出力:
ChatGLM2-6B出力:
しかし、これを中国語や英語に翻訳したらどうなるでしょうか?翻訳ソフトを使えば、次のメッセージを中国語に直接翻訳できます。
対応するChatGPT出力:
出力は繁体字ですが、理解には影響しません。答えは正しいです。同様に、このプロンプトをTongyi QianwenとChatGLM2に入力して確認してみましょう。Tongyi Qianwenが正しく答えられることがわかります。 qwen-max-1201(人気のオンラインQ&Aプラットフォーム)の出力:
ChatGLM2-6B出力:
英語に翻訳すると次のようになります。
ChatGPT输出是:
同理,我们也把这个prompt 输入到通义千问和ChatGLM2 里面看一下。可以看到,此时通义千问依旧是可以正确回答的。ChatGLM 的回答错误可能是因为6B模型在推理上的不足。 通义千问qwen-max-1201输出:
ChatGLM2-6B输出:
我们可以看到,一旦毛利语的prompt 先通过翻译,变成了高资源语种,比如中文或者英语,模型就能给出正确的答案,同时格式也能够满足我们的要求。 4.2 直接prompt 和翻译prompt 的效果【图2】:各语种直接prompt &统一翻译成英语prompt 在ChatGPT 和Llama-2-70B-Chat 的表现 在论文中,研究人员提到,高资源语种翻译成英语之后再输入大模型,可能并不会有很大的提升,甚至还可能带来噪音,影响效果。但是,低资源语种,如果能够先翻译成高资源语种,然后再输入现在以高资源语种为中心的大模型,往往就能够取得不错的效果。 我们从【图2】也可以看出来,对于中文这种高资源语言,使用翻译之后,在ChatGPT 中效果还不如直接用中文prompt;而在Llama 中,将中文翻译成英语,然后再输入Llama,表现则要优于中文prompt,这可能是因为Llama 训练语料中的中文语料数量要远远ChatGPT 中的中文语料数量。 V. 要約と展望使用LLM 生成的语料来微调特定任务的NLLB 模型是一个常见的做法,许多场景都在尝试利用LLM 的知识来更好地适应自己的任务。然而,LLM 生成的知识可能存在误导性,有时甚至可能与事实不符,因此在使用这些语料时,需要进行机器筛选或人工判断。 虽然机器翻译能提升以英语或中文等高资源语言为中心的LLM 在多语言NLP 任务中的性能,但并非适用于所有情境。对于需要深度语言理解及考虑文化差异的任务,使用母语提示常常更具有潜力,因为母语能更准确地捕捉文化和语言的微妙差别。因此,开发更多种类的多语言LLM 是非常必要的。 [参考資料] [1] Costa-jussà MR, Cross J, Çelebi O, et al. No language left behind: Scaling human-centered machine translation[J]. arXiv preprint arXiv:2207.04672, 2022. [2] Moslem Y, Romani G, Molaei M, et al. Domain terminology integration into machine translation: Leveraging large language models[C]//Proceedings of the Eighth Conference on Machine Translation. 2023: 902-911. [3] Liu C, Zhang W, Zhao Y, et al. Is translation all you need? a study on solving multilingual tasks with large language models[J]. arXiv preprint arXiv:2403.10258, 2024. [4] PEFT(https://huggingface.co/docs/peft/main/en/index) |