翻譯代理:使用反射工作流程進行代理翻譯
這是機器翻譯反射代理工作流程的 Python 演示。主要步驟是:
- 提示法學碩士將文本從
source_language
翻譯為target_language
; - 讓法學碩士反思翻譯,提出改進翻譯的建設性建議;
- 使用建議來改進翻譯。
可自訂性
透過使用法學碩士作為翻譯引擎的核心,該系統具有高度可操縱性。例如,透過變更提示,使用此工作流程比傳統機器翻譯 (MT) 系統更容易:
- 修改輸出的樣式,例如正式/非正式。
- 指定如何處理慣用語和特殊術語,例如名稱、技術術語和首字母縮寫。例如,在提示中包含術語表可讓您確保特定術語(例如開源、H100 或 GPU)的翻譯一致。
- 指定語言或特定方言的特定區域使用,以服務目標受眾。例如,拉丁美洲所說的西班牙語與西班牙所說的西班牙語不同;加拿大的法語與法國的法語不同。
這不是成熟的軟體,是 Andrew 在過去幾個月的周末進行翻譯以及合作者(Joaquin Dominguez、Nedelina Teneva、John Santerre)幫助重構程式碼的結果。
根據我們在傳統翻譯資料集上使用 BLEU 評分進行的評估,此工作流程有時與領先的商業產品具有競爭力,但有時也比領先的商業產品更差。然而,我們偶爾也會透過這種方法獲得出色的結果(優於商業產品)。我們認為這只是代理翻譯的一個起點,而且這是一個有前途的翻譯方向,具有進一步改進的巨大空間,這就是為什麼我們發布此演示以鼓勵更多討論、實驗、研究和開源貢獻。
如果代理翻譯可以產生比傳統架構(例如輸入文字並直接輸出翻譯的端對端轉換器)更好的結果——這通常比我們這裡的方法運行更快/更便宜——這也提供了自動生成訓練資料(平行文字語料庫)的機制,可用於進一步訓練和改進傳統演算法。 (另請參閱 The Batch 中關於使用 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 許可證發布的。您可以出於商業和非商業目的自由使用、修改和分發程式碼。
擴展的想法
以下是我們還沒有時間嘗試的想法,但我們希望開源社群能夠:
- 試試其他法學碩士。我們主要使用 gpt-4-turbo 對此進行原型設計。我們希望其他人能夠嘗試其他法學碩士以及其他超參數選擇,看看有些人對於特定語言對是否比其他人做得更好。
- 詞彙表創建。有效建構我們希望一致翻譯的最重要術語的詞彙表(也許使用法學碩士)的最佳方法是什麼?例如,許多企業使用的專業術語在網路上並未廣泛使用,因此法學碩士不知道,而且還有許多術語可以透過多種方式翻譯。例如,西班牙語中的「開源」可以是「Código abierto」或「Fuente abierta」;兩者都很好,但最好選擇其中一個並將其用於單一文件。
- 術語表的使用和實施。給定一個術語表,將其包含在提示中的最佳方法是什麼?
- 對不同語言的評價。它的性能在不同語言中有何不同?是否有一些更改可以使其更好地適用於特定來源語言或目標語言? (請注意,對於 MT 系統正在接近的非常高的效能水平,我們不確定 BLEU 是否是一個很好的指標。)此外,它在較低資源語言上的表現需要進一步研究。
- 錯誤分析。我們發現指定一種語言和一個國家/地區(例如,“墨西哥通俗地說西班牙語”)對於我們的應用程式來說效果非常好。目前的方法有何不足?我們也特別有興趣了解其在專業主題(如法律、醫學)或特殊類型文本(如電影字幕)上的表現,以了解其局限性。
- 更好的評估。最後,我們認為更好的評估(evals)是一個巨大而重要的研究主題。與其他生成自由文本的法學碩士申請一樣,目前的評估指標似乎不足。例如,我們發現,即使在我們的代理工作流程更好地捕獲上下文和術語的文檔上,導致我們的人工評分者比當前的商業產品更喜歡翻譯,句子級別的評估(使用FLORES 數據集)也會導致代理系統得分較低在 BLEU 上。我們能否設計更好的指標(也許使用法學碩士來評估翻譯?)來捕捉與人類偏好更好相關的文件層級的翻譯品質?
相關工作
一些學術研究小組也開始研究基於法學碩士和代理的翻譯。我們認為這個領域還處於早期階段!
- ChatGPT MT:高(但不是低)資源語言的競爭,Robinson 等人。 (2023),https://arxiv.org/pdf/2309.07423
- 如何為 ChatGPT 設計翻譯提示:一項實證研究,Gao 等人。 (2023),https://arxiv.org/pdf/2304.02182v2
- 超越人類翻譯:利用多智能體協作翻譯超長文學文本,Wu 等人。 (2024),https://arxiv.org/pdf/2405.11804