AWS雲端翻譯實戰:用LLM提升翻譯質素,結合TM及RAG

Ai

評估大型語言模型在機器翻譯任務中的應用

大型語言模型(LLMs)在機器翻譯(MT)任務中展現出可觀的潛力,能夠與神經翻譯模型(如Amazon Translate)相競爭。根據不同的使用案例,這些模型能夠自然地從輸入文本的上下文中學習,捕捉文化暗示,從而生成更自然的翻譯。例如,句子“你表現得好嗎?”翻譯成法語可能為“Avez-vous bien performé?”。然而,這一翻譯會因上下文而異,例如在體育比賽的背景下,問題可能會變成“你在足球比賽中表現得好嗎?”翻譯將顯著不同。對於AI模型來說,捕捉上下文和文化特徵是生成自然翻譯的關鍵。

許多全球客戶希望利用這一能力來提升其翻譯內容的質量。本地化過程通常依賴於自動化和人員參與的機制,稱為機器翻譯後編輯(MTPE)。構建能夠提高翻譯內容質量的解決方案,將帶來多方面的好處,包括:

– 在MTPE活動上潛在的成本節省
– 更快的本地化項目交付
– 整體上提升內容消費者和讀者的體驗

然而,LLMs在處理MT任務時也存在一些不足之處,如:

– 某些語言對的質量不一致
– 缺乏統一的過去翻譯知識整合模式,即翻譯記憶(TM)
– 存在幻覺的固有風險

在考慮將MT工作負載轉向LLM驅動的翻譯時,必須根據具體情況進行評估。不過,業界已經看到了足夠的潛力,將LLMs視為一個有價值的選擇。

這篇博文及其附帶的代碼展示了一個解決方案,幫助用戶實驗使用Amazon Bedrock中可用的基礎模型進行實時機器翻譯,從而收集更多關於LLMs在內容翻譯用例中的價值數據。

引導LLMs的輸出

翻譯記憶和TMX文件是計算機輔助翻譯(CAT)工具和翻譯管理系統(TMS)中使用的重要概念和文件格式。

**翻譯記憶**
翻譯記憶是存儲先前翻譯文本段落(通常為句子或短語)及其對應翻譯的數據庫。TM的主要目的是通過提供已翻譯段落的建議來幫助人類或機器翻譯者,這可以顯著提高翻譯的效率和一致性,尤其在涉及重複內容或相似主題的項目中。

翻譯記憶交換(TMX)是一種廣泛使用的開放標準,用於表示和交換TM數據。TMX是一種基於XML的文件格式,允許在不同的CAT工具和TMS之間交換TM。典型的TMX文件包含翻譯單元的結構化表示,這些翻譯單元是同一文本翻譯成多種語言的組合。

**與LLMs的整合**
將TM與LLMs結合使用可以顯著提高機器翻譯的質量和效率。以下是一些潛在的好處:

– **提高準確性和一致性**:LLMs可以受益於TM中存儲的高質量翻譯,這有助於提高LLM生成的翻譯的整體準確性和一致性。TM可以為LLM提供可靠的參考翻譯,減少錯誤或不一致的機會。
– **領域適應性**:TM通常包含特定領域或主題的翻譯。通過使用特定領域的TM,LLM可以更好地適應該領域的術語、風格和上下文,從而生成更準確和自然的翻譯。
– **高效重用人類翻譯**:TM存儲的人類翻譯段落通常質量高於機器翻譯段落。通過將這些人類翻譯納入LLM的訓練或推理過程,LLM可以學習並重用這些高質量翻譯,從而提高整體性能。
– **減少後編輯工作量**:當LLM能夠準確使用TM中存儲的翻譯時,對人類後編輯的需求會減少,從而提高生產力並節省成本。

另一種將TM數據與LLMs整合的方法是進行微調,方法類似於為商業領域內容生成微調模型。對於在全球行業運營的客戶,可能會涉及超過10種語言的翻譯,這種方法可能會變得操作上複雜且成本高昂。本文提出的解決方案依賴於LLMs的上下文學習能力和提示工程。它允許用戶在不涉及機器學習操作(MLOps)活動的情況下,使用現成的模型。

解決方案概述

LLM翻譯遊樂場是一個示例應用程序,提供以下功能:

– 使用Amazon Bedrock中的模型實驗LLM翻譯能力
– 創建和比較各種推理配置
– 評估提示工程和檢索增強生成(RAG)對LLM翻譯的影響
– 配置支持的語言對
– 使用現有TMX文件導入、處理和測試翻譯
– 自定義術語轉換
– 性能、質量和使用指標,包括BLEU、BERT、METEOR和CHRF

以下圖表展示了翻譯遊樂場的架構。數字以顏色編碼,表示兩種流程:翻譯記憶攝取流程(橙色)和文本翻譯流程(灰色)。該解決方案為用戶提供了兩種TM檢索模式可供選擇:向量和文檔搜索。這在後文中會詳細介紹。

翻譯記憶攝取流程(橙色)包含以下步驟:

1. 用戶將TMX文件上傳至遊樂場用戶界面。
2. 根據所用檢索模式,調用適當的適配器。
3. 當使用Amazon OpenSearch Service適配器(文檔搜索)時,解析翻譯單位組並存儲到專用於上傳文件的索引中。當使用FAISS適配器(向量搜索)時,解析翻譯單位組並使用從Amazon Bedrock選擇的嵌入模型將其轉換為向量。
4. 使用FAISS適配器時,將翻譯單位存儲到本地FAISS索引中,並附加元數據。

文本翻譯流程(灰色)包含以下步驟:

1. 用戶輸入要翻譯的文本以及源語言和目標語言。
2. 請求發送至提示生成器。
3. 提示生成器根據選定模式調用相應的知識庫。
4. 提示生成器接收相關的翻譯單位。
5. 使用生成的提示作為輸入,調用Amazon Bedrock並附加自定義參數。

翻譯遊樂場可以根據以下圖表改編為可擴展的無伺服器解決方案,使用AWS Lambda、Amazon Simple Storage Service(Amazon S3)和Amazon API Gateway。

TM知識庫策略

LLM翻譯遊樂場提供兩種選擇將翻譯記憶納入提示。每個選項可通過應用程序中的單獨頁面訪問:

– **使用FAISS的向量存儲**:在此模式下,應用程序處理用戶上傳的.tmx文件,對其進行索引並本地存儲到向量存儲(FAISS)中。
– **使用Amazon OpenSearch Serverless的文檔存儲**:僅支持使用Amazon OpenSearch Serverless的標準文檔搜索。要測試向量搜索,請使用向量存儲選項(使用FAISS)。

在向量存儲模式下,翻譯段落的處理如下:

1. 嵌入源段。
2. 提取元數據:
– 段語言
– 系統生成的段唯一標識符
3. 將源段向量連同元數據和段本身以文檔形式存儲。

翻譯自定義部分允許用戶選擇嵌入模型。用戶可以選擇Amazon Titan Embeddings Text V2或Cohere Embed Multilingual v3。Amazon Titan Text Embeddings V2支持超過100種語言的多語言支持,而Cohere Embed支持108種語言。

在文檔存儲模式下,語言段不進行嵌入,並按平面結構存儲。兩個元數據屬性在文檔之間保持不變:

– 段語言
– 系統生成的段唯一標識符

提示工程

該應用程序使用提示工程技術將多種類型的輸入納入推理。以下示例XML顯示了提示的模板結構:

“`xml


EN
FR



“`

前提條件

項目代碼使用AWS Cloud Development Kit(AWS CDK)的Python版本。要運行項目代碼,請確保已滿足AWS CDK的Python前提條件。

該項目還要求AWS帳戶已進行預啟動,以允許部署AWS CDK堆棧。

安裝用戶界面

要部署解決方案,首先安裝用戶界面(Streamlit應用程序):

1. 使用以下命令克隆GitHub存儲庫:
“`bash
git clone https://github.com/aws-samples/llm-translation-playground.git
“`

2. 進入部署目錄:
“`bash
cd llm-translation-playground
“`

3. 安裝並激活Python虛擬環境:
“`bash
python3 -m venv .venv
source .venv/bin/activate
“`

4. 安裝Python庫:
“`bash
python -m pip install -r requirements.txt
“`

部署AWS CDK堆棧

完成以下步驟以部署AWS CDK堆棧:

1. 移動到部署文件夾:
“`bash
cd deployment/cdk
“`

2. 配置AWS CDK上下文參數文件context.json。對於collection_name,使用OpenSearch Serverless集合名稱。例如:
“`json
“collection_name”: “search-subtitles”
“`

3. 部署AWS CDK堆棧:
“`bash
cdk deploy
“`

4. 通過查看AWS CloudFormation中的OpsServerlessSearchStack堆棧來驗證成功部署,狀態應顯示為CREATE_COMPLETE。在Outputs選項卡上,記下OpenSearchEndpoint屬性值。

配置解決方案

該堆棧會創建一個AWS身份和訪問管理(IAM)角色,該角色擁有運行應用程序所需的正確權限。LLM翻譯遊樂場會自動假設此角色。為此,請修改您計劃運行應用程序的角色或主體,以便您被允許假設新創建的角色。您可以使用預創建的策略並將其附加到您的角色。可以在堆棧輸出中檢索到該策略的Amazon資源名稱(ARN),該ARN的鍵為LLMTranslationPlaygroundAppRoleAssumePolicyArn,如前面的截圖所示。您可以通過選擇您的角色並選擇添加權限,從IAM控制台執行此操作。如果您更願意使用AWS命令行界面(AWS CLI),請參考以下示例命令行:

“`bash
aws iam attach-role-policy –role-name –policy-arn
“`

最後,配置utils文件夾中的.env文件,如下所示:

– APP_ROLE_ARN – 堆棧創建的角色的ARN(堆棧輸出LLMTranslationPlaygroundAppRoleArn)
– HOST – OpenSearch Serverless集合端點(不帶https)
– REGION – 部署集合的AWS區域
– INGESTION_LIMIT – 每個上傳的TMX文件索引的最大翻譯單位(標籤)數量

運行解決方案

要啟動翻譯遊樂場,運行以下命令:

“`bash
cd llm-translation-playground/source
streamlit run LLM_Translation_Home.py
“`

您的默認瀏覽器應該會打開一個新標籤頁或窗口,顯示主頁。

簡單測試案例

讓我們使用前面提到的短語“你表現得好嗎?”進行簡單的翻譯測試。

由於我們沒有使用知識庫進行此測試,因此可以使用向量存儲或文檔存儲。對於這篇文章,我們使用文檔存儲。

1. 選擇“使用文檔存儲”。
2. 在源文本中,輸入要翻譯的文本。
3. 選擇您的源語言和目標語言(在本篇文章中為英語和法語)。
4. 您可以嘗試其他參數,例如模型、最大標記數、溫度和top-p。
5. 選擇“翻譯”。

翻譯文本將出現在底部部分。對於這個例子,翻譯文本雖然準確,但非常接近於字面翻譯,這在法語中並不常見。

我們可以在稍微修改初始文本後重新運行相同的測試:“你在足球比賽中表現得好嗎?”現在我們在輸入中引入了一些情境上下文。翻譯文本應該不同,並更接近於自然翻譯。新的輸出字面上意味著“你在足球比賽中表現得好嗎?”,這與問題的初始意圖一致。

還請注意左側窗格中的完成指標,顯示延遲、輸入/輸出標記和質量分數。

這個例子突顯了LLMs自然適應翻譯上下文的能力。

添加翻譯記憶

讓我們測試使用翻譯記憶TMX文件對翻譯質量的影響。

1. 複製test/source_text.txt中的文本並粘貼到源文本中。
2. 選擇法語作為目標語言並運行翻譯。
3. 複製test/target_text.txt中的文本並粘貼到參考翻譯字段中。
4. 選擇“評估”,並注意左側的質量分數。
5. 在翻譯自定義部分,選擇“瀏覽文件”並選擇文件test/subtitles_memory.tmx。這將把翻譯記憶索引到先前創建的OpenSearch Service集合中。索引過程可能需要幾分鐘。

索引完成後,從索引下拉菜單中選擇創建的索引。重新運行翻譯。您應該看到質量分數明顯提高。例如,我們在前面的測試案例中看到BLEU分數提高了20個百分點。通過使用提示工程,我們能夠通過提供直接從TMX文件中提取的示例短語來引導模型的輸出。請隨意探索生成的提示以獲取有關如何引入翻譯對的更多詳細信息。

您可以通過啟動使用平行數據自定義的異步作業來重複Amazon Translate的類似測試。

我們採取了一種簡單的檢索方法,即將所有樣本作為同一TMX文件的一部分加載,匹配源語言和目標語言。您可以通過使用基於元數據的篩選來增強此技術,根據源文本收集相關的翻譯對。例如,您可以按主題或業務領域對文檔進行分類,並使用類別標籤選擇與文本和所需輸出相關的語言對。

語義相似性翻譯記憶選擇

在向量存儲模式中,該應用程序允許您上傳TMX並創建本地索引,使用語義相似性選擇翻譯記憶段落。首先,我們根據要翻譯的文本和源語言檢索相似度最高的段落。然後,我們檢索與目標語言和父翻譯單位ID匹配的相應段落。

要試用,請按照之前顯示的方式上傳文件。根據文件大小,這可能需要幾分鐘。最大限制為200 MB。您可以使用之前示例中的樣本文件或代碼庫中提供的其他樣本之一。

這種方法不同於靜態索引搜索,因為假設源文本在語義上接近代表預期風格和語調的段落。

添加自定義術語

自定義術語允許您確保品牌名稱、角色名稱、模型名稱和其他唯一內容獲得所需的翻譯結果。考慮到LLMs在大量數據上進行預訓練,它們可能已經能夠識別唯一名稱並準確地在輸出中呈現。如果有一些名稱希望強制進行嚴格和字面翻譯,您可以嘗試翻譯遊樂場的自定義術語功能。只需在翻譯自定義部分提供以分號分隔的源語言和目標語言對。例如,如果希望“Gen AI”這個短語在任何語言中都不翻譯,則可以按照以下截圖配置自定義術語。

清理

要刪除堆棧,請導航到部署文件夾並運行:
“`bash
cdk destroy
“`

進一步考慮

使用現有的TMX文件與基於生成AI的翻譯系統結合使用,可能會提高翻譯的質量和一致性。以下是一些使用TMX文件進行生成AI翻譯的步驟:

– **TMX數據管道**:TMX文件包含結構化翻譯單元,但格式可能需要預處理,以提取可供生成AI模型使用的源和目標文本段落。這涉及到能夠解析XML結構、處理編碼問題並添加元數據的提取、轉換和加載(ETL)管道。
– **結合質量評估和人工審查**:雖然生成AI模型可以生成高質量翻譯,但建議結合質量評估技術和人工審查過程。您可以使用自動化質量評估模型來標記潛在的低質量翻譯,然後由人工翻譯者進行審查和修正。
– **迭代和完善**:翻譯項目通常涉及翻譯、審查和改進的迭代循環。您可以定期使用更新的TMX文件重新訓練或微調生成AI模型,創造一個持續改進的良性循環。

結論

本文介紹的LLM翻譯遊樂場使您能夠評估LLMs在機器翻譯需求中的應用。此解決方案的主要特徵包括:

– **使用翻譯記憶的能力**:該解決方案允許您將現有的TM數據(以行業標準TMX格式存儲)直接整合到LLM翻譯過程中。這有助於通過使用高質量的人類翻譯內容,提高翻譯的準確性和一致性。
– **提示工程能力**:該解決方案展示了提示工程的力量,演示了如何通過精心設計的輸入提示來引導LLMs生成更自然和具上下文的翻譯,這包括納入自定義術語和特定領域知識的能力。
– **評估指標**:該解決方案包括標準的翻譯質量評估指標,如BLEU、BERT分數、METEOR和CHRF,以幫助您評估基於LLM的翻譯質量和有效性,與現有的機器翻譯工作流程進行比較。

隨著行業持續探索LLMs的應用,這一解決方案能幫助您獲得寶貴的見解和數據,以決定LLMs是否能成為您內容翻譯和本地化工作負載的可行且有價值的選擇。

要深入了解AWS上快速發展的LLM基礎機器翻譯領域,請查看以下資源:

– 如何通過切換到Amazon Bedrock使123RF節省超過90%的翻譯成本
– 使用Amazon Translate、Amazon Bedrock和Amazon Polly進行視頻自動配音
– 在Amazon Bedrock中進行多模型智能和反思翻譯工作流程

作者介紹

Narcisse Zekpa是位於波士頓的資深解決方案架構師。他幫助美國東北部的客戶通過創新和可擴展的解決方案加速業務轉型。他熱衷於利用先進的分析和AI幫助組織轉型業務。當Narcisse不在建設中,他喜歡與家人共度時光、旅行、跑步、烹飪和打籃球。

Ajeeb Peter是亞馬遜網絡服務的首席解決方案架構師,位於北卡羅來納州夏洛特,指導全球金融服務客戶在雲端構建高度安全、可擴展、可靠且成本效益高的應用程序。他在金融和電信等行業擁有超過20年的軟件開發、架構和分析技術經驗。

以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。

Chat Icon