翻訳エージェント: リフレクション ワークフローを使用したエージェント翻訳
これは、機械翻訳のリフレクション エージェント ワークフローの Python のデモンストレーションです。主な手順は次のとおりです。
- LLM にテキストを
source_language
からtarget_language
に翻訳するように要求します。 - LLM に翻訳を反映させ、翻訳を改善するための建設的な提案を考えてもらいます。
- 提案を活用して翻訳を改善してください。
カスタマイズ性
LLM を翻訳エンジンの中心として使用することにより、このシステムは高度に操作可能になります。たとえば、プロンプトを変更することにより、このワークフローを使用すると、従来の機械翻訳 (MT) システムよりも次のことが簡単になります。
- 公式/非公式などの出力のスタイルを変更します。
- 慣用句や、名前、専門用語、頭字語などの特殊な用語の処理方法を指定します。たとえば、プロンプトに用語集を含めると、特定の用語 (オープン ソース、H100、GPU など) が一貫して翻訳されるようになります。
- 対象となる視聴者にサービスを提供するために、特定の地域での言語の使用または特定の方言を指定します。たとえば、ラテンアメリカで話されているスペイン語は、スペインで話されているスペイン語とは異なります。カナダで話されるフランス語は、フランスで話されるフランス語とは異なります。
これは成熟したソフトウェアではなく、Andrew が過去数か月間週末に翻訳をいじり、さらに共同研究者 (Joaquin Dominguez、Nedelina Teneva、John Santerre) がコードのリファクタリングを手伝った結果です。
従来の翻訳データセットに対する BLEU スコアを使用した評価によると、このワークフローは、主要な商用製品と競合する場合もありますが、場合によっては劣ることもあります。ただし、このアプローチで素晴らしい結果 (商用製品よりも優れた) が得られることもあります。私たちは、これはエージェント翻訳の単なる出発点にすぎず、さらなる改善の余地が十分にある有望な翻訳の方向性であると考えています。そのため、より多くの議論、実験、研究、オープンソースを促進するためにこのデモンストレーションをリリースするのです。貢献。
エージェント翻訳が従来のアーキテクチャ (テキストを入力して翻訳を直接出力するエンドツーエンドのトランスフォーマーなど) よりも優れた結果を生成できる場合 -- 多くの場合、ここでのアプローチよりも実行速度が速く/安価です -- これにより、従来のアルゴリズムをさらにトレーニングおよび改善するために使用できるトレーニング データ (並列テキスト コーパス) を自動的に生成するメカニズム。 (LLM を使用したトレーニング データの生成に関するバッチのこの記事も参照してください。)
これを改善する方法についてのコメントや提案は大歓迎です。
はじめる
translation-agent
の使用を開始するには、次の手順に従います。
インストール:
- インストールには Poetry パッケージ マネージャーが必要です。詩のインストール 環境によっては、これが機能する場合があります。
- ワークフローを実行するには、OPENAI_API_KEY を含む .env ファイルが必要です。例として .env.sample ファイルを参照してください。
git clone https://github.com/andrewyng/translation-agent.git
cd translation-agent
poetry install
poetry shell # activates virtual environment
使用法:
import translation_agent as ta
source_lang , target_lang , country = "English" , "Spanish" , "Mexico"
translation = ta . translate ( source_lang , target_lang , source_text , country )
試してみるスクリプトの例については、example/example_script.py を参照してください。
ライセンス
Translation Agent はMIT ライセンスに基づいてリリースされています。商用、非商用を問わず、コードを自由に使用、変更、配布することができます。
拡張のアイデア
私たちが実験する時間がなかったものの、オープンソース コミュニティに期待しているアイデアを以下に示します。
- 他の LLM を試してください。私たちは主に gpt-4-turbo を使用してこれをプロトタイプしました。私たちは、他の人が他の LLM や他のハイパーパラメータの選択肢を試して、特定の言語ペアで他のものよりも優れた結果が得られるかどうかを確認したいと考えています。
- 用語集の作成。一貫して翻訳したい最も重要な用語の用語集を、おそらく LLM を使用して効率的に作成する最善の方法は何でしょうか?たとえば、多くの企業では、インターネット上で広く使用されておらず、LLM が知らない専門用語を使用しています。また、複数の方法で翻訳できる用語も多数あります。たとえば、スペイン語の「オープンソース」は「Código abierto」または「Fuente abierta」になります。どちらも問題ありませんが、1 つのドキュメントについては 1 つを選択し、それを使用することをお勧めします。
- 用語集の使用法と実装。用語集がある場合、それをプロンプトに含める最善の方法は何でしょうか?
- さまざまな言語での評価。言語によってパフォーマンスはどのように異なりますか?特定のソース言語またはターゲット言語での動作を改善する変更はありますか? (MT システムが近づいている非常に高いレベルのパフォーマンスについては、BLEU が優れた指標であるかどうかはわかりません。) また、低リソース言語でのパフォーマンスについては、さらなる研究が必要です。
- エラー分析。言語と国/地域 (例: 「メキシコで口語的に話されているスペイン語」) を指定すると、アプリケーションで非常にうまく機能することがわかりました。現在のアプローチではどこが不足しているのでしょうか?また、その限界を理解するために、特殊なトピック (法律、医学など) や特殊な種類のテキスト (映画の字幕など) でのパフォーマンスを理解することにも特に興味があります。
- より良い評価。最後に、より良い評価 (eval) は巨大かつ重要な研究テーマであると考えています。フリーテキストを生成する他の LLM アプリケーションと同様に、現在の評価基準は不十分であるようです。たとえば、エージェントのワークフローがコンテキストと用語をより適切に捉え、現在の商用製品よりも人間の評価者が好む翻訳が得られる文書であっても、文レベルでの評価 (FLORES データセットを使用) では、エージェント システムのスコアが低くなることがわかりました。ブルーで。人間の好みとよりよく相関する文書レベルで翻訳の品質を捉える、より優れた指標 (翻訳の評価に LLM を使用するなど) を設計できるでしょうか?
関連作品
いくつかの学術研究グループも、LLM ベースのエージェント翻訳を検討し始めています。この分野はまだ初期段階にあると考えています。
- ChatGPT MT: 高レベル (低レベルではない) リソース言語で競争力がある、Robinson et al. (2023)、https://arxiv.org/pdf/2309.07423
- ChatGPT の翻訳プロンプトを設計する方法: 実証研究、Gao et al. (2023)、https://arxiv.org/pdf/2304.02182v2
- 人間による翻訳を超えて: 超長文の翻訳にマルチエージェントのコラボレーションを活用する、Wu et al. (2024)、https://arxiv.org/pdf/2405.11804