改變傳統,吳恩達開源了一個機器翻譯智慧體專案

机器之心發表於2024-06-13

吳恩達:拜託了大家,一起讓翻譯智慧體變得更好。

前段時間,隨著 GPT-4o、Sora 的陸續問世,多模態模型在生成式方面取得的成績無可否認,而人工智慧的下一個革命性突破將從何處湧現,引起了大量學者和相關人士的關注。

人工智慧著名學者、史丹佛大學教授吳恩達一直非常推崇智慧體。此前他曾在個人部落格著重指出「AI 智慧體工作流將會在今年推動人工智慧取得長足進步」,AI 智慧體的未來潛力愈加被看好,吸睛無數。

近日,吳恩達延續他之前的腳步,開源了一個 AI 智慧體機器翻譯專案。

圖片

專案連結:https://github.com/andrewyng/translation-agent

他分享了關於 AI 智慧體機器翻譯對改進傳統神經機器翻譯方面的看法:「具有巨大潛力,尚未被完全發掘」,併發布了一個他一直在週末玩的翻譯智慧體演示。該翻譯智慧體以 MIT 許可證形式釋出。使用者可以自由使用、修改和分發該程式碼,無論是商業用途還是非商業用途。

在研究團隊有限的測試中,吳恩達團隊開源的翻譯智慧體有時能夠與領先的商業提供商進行同等水平的競爭,有時則不如它們。但它仍提供了一個高度可控的翻譯系統,只需簡單更改 prompt,使用者就可以指定語氣(正式 / 非正式)、地區變體(例如:使用者想要在西班牙本地說的西班牙語,還是在拉丁美洲說的),並確保術語的翻譯一致性(透過提供詞彙表)。這個應用程式雖然目前仍稍顯稚嫩,但鑑於反思工作流已經展現出不錯的成果,吳恩達認為智慧體翻譯仍有很大的提升空間。

在吳恩達分享的開源專案中,具體介紹了 AI 智慧體翻譯專案的工作流。

翻譯智慧體:使用反思工作流進行智慧體翻譯

這是一個使用 Python 演示的反思智慧體工作流的機器翻譯示例。主要步驟如下:

1. 輸入 prompt,使大型語言模型(LLM)將文字從 source_language 翻譯成 target_language;

2. 讓 LLM 反思翻譯結果,並提出建設性的改進建議;

3. 利用這些建議改進翻譯。

自定義能力

透過使用 LLM 作為翻譯引擎的核心,該系統具有高度可控性。

例如:透過更改 prompt,這種工作流比傳統的機器翻譯(MT)系統更容易實現以下功能:

  • 修改輸出的風格,如正式 / 非正式。

  • 指定如何處理習語和特殊術語,如名字、技術術語和縮寫。例如,在 prompt 中包含術語表,可以確保特定術語(如開源、H100 或 GPU)翻譯的一致性。

  • 指定特定區域的語言使用或特定方言,以服務目標受眾。例如,拉丁美洲的西班牙語與西班牙的西班牙語不同;加拿大的法語與法國的法語不同。

透過 BLEU(Bilingual Evaluation Understudy)分數進行翻譯質量的評估作為有別於傳統機器翻譯的後起之秀,同樣也是衡量 AI 智慧體翻譯的必由之路。

根據使用傳統翻譯資料集的 BLEU 分數進行評估的結果:這種工作流有時能與領先的商業產品競爭,但有時表現也不如它們。不過,它偶爾也能夠得到非常好的結果,甚至優於商業產品。

他們認為這只是智慧體翻譯的起點,這一方向在翻譯方面很有前景,並且有很大的改進空間。因此,作者團隊釋出這一演示,以鼓勵更多的討論、實驗、研究和開源貢獻。

如果相比於更快且更便宜的傳統架構(例如輸入文字並直接輸出翻譯的端到端 Transformer 架構),智慧體翻譯能夠有更好的結果,那麼它就 neng 提供一種自動生成訓練資料(平行文字語料庫)的方法,可以用於進一步訓練和改進傳統演算法。

啟動

為使 translation-agent 啟動,需要遵循以下步驟。

安裝:

安裝需要 Poetry 管理器。根據安裝環境,安裝 Poetry 可能需要執行以下步驟:

pip install poetry
git clone https://github.com/andrewyng/translation-agent.gitcd translation-agent
poetry install
poetry shell # activates virtual environment

執行工作流需要一個包含 OPENAI_API_KEY 的 .env 檔案,使用者可以參考 .env.sample 檔案作為示例。

Usage:

import translation_agent as tasource_lang, target_lang, country = "English", "Spanish", "Mexico"translation = ta.translate(source_lang, target_lang, source_text, country)

使用:

import translation_agent as ta
source_lang, target_lang, country = "English", "Spanish", "Mexico"
translation = ta.translate(source_lang, target_lang, source_text, country)

檢視 examples/example_script.py 獲取一個示例指令碼並進行嘗試。

翻譯智慧體的進一步發展

吳恩達在最後還分享了幾點希望開源社群能夠嘗試的想法,希望憑藉眾家之力將翻譯智慧體的巨大潛力歸為實處。

  • 嘗試其他語言生成模型。此專案主要使用 gpt-4-turbo 進行原型開發。其他人可以嘗試其他 LLM,以及其他超引數選擇,並檢視是否有些大模型可以對特定語言更好地翻譯。

  • 術語表的建立。使用 LLM 也許可以更高效地建立術語表。例如,許多企業使用的是網際網路上不常用的專業術語,而 LLM 可能不知道這些術語。此外,還有許多術語可能有多種翻譯方式。例如,「open source」在西班牙語中可以是「Código abierto」或「Fuente abierta」;兩者都可以,但最好選擇一個並在單個文件中堅持長期使用。

  • 術語表的使用和實施。將術語表包含在 prompt 中最好的方式是什麼?

  • 在不同語言上進行評估。翻譯智慧體在不同語言中的表現會發生怎樣的變化?有沒有透過一些變動,使其在特定源語言或目標語言上表現更好的方法?(請注意,對於 MT 系統正在接近的較高效能水平,BLEU 是否是一個很好的度量標準仍是不確定的。)此外,對於資源較少的語言,它的效能表現仍需要進一步研究。

  • 錯誤分析。吳恩達團隊發現此應用程式對於一些指定語言和國家 / 地區(例如,「在墨西哥作為普通話的西班牙語」)來說效果很好。除此之外,當前方法在哪些方面仍存有不足?翻譯智慧體在專業主題(如法律、醫學)或特殊文字型別(如電影字幕)上的效能表現如何?存在怎樣的限制?

  • 更好的評估指標。吳恩達認為對 AI 智慧體翻譯進行更好的評估是一個巨大且重要的研究課題。與其他生成自由文字的 LLM 應用程式一樣,當前的評估指標似乎並不足夠評估翻譯智慧體的表現。例如,他們發現:即使在主動型工作流程在捕捉上下文和術語方面表現更好的文件上,仍會導致人類評分者更喜歡當前的商業產品,但是在句子級別進行評估(使用 FLORES 資料集)時,主動型系統的 BLEU 得分則較低。在設計出更好的度量標準(也許使用 LLM 評估翻譯?)以在文件水平上更好地實現與人類偏好相關的翻譯質量仍需更多的努力。

值得注意的是,一些學術研究小組也開始關注基於 LLM 和主動型翻譯的研究。

對於 AI 翻譯智慧體的前景,吳恩達認為這個領域還處於起步階段,並分享了一些相關的學術論文供大家參考。

圖片

  • 論文標題:ChatGPT MT: Competitive for High- (but not Low-) Resource Languages

  • 論文地址:https://arxiv.org/pdf/2309.07423

圖片

  • 論文標題:How to Design Translation Prompts for ChatGPT: An Empirical Study

  • 論文地址:https://arxiv.org/pdf/2304.02182v2

圖片

  • 論文標題:Beyond Human Translation: Harnessing Multi-Agent Collaboration for Translating Ultra-Long Literary Texts

  • 論文地址:https://arxiv.org/pdf/2405.11804

吳恩達此次開源的翻譯智慧體仍處於初級階段,但已在機器翻譯資料集上有了較好的表現,為 AI 智慧體的下一步發展注入了又一劑強心針。

參考連結:https://github.com/andrewyng/translation-agent

相關文章