翻譯在助力公司實現跨國業務擴展方面發揮著至關重要的作用,在語調、準確性和技術術語處理方面的要求差異很大。 主權 AI 的出現凸顯了 大語言模型(LLM) 面臨的嚴峻挑戰,尤其是他們難以捕捉英語主導框架之外的細微文化和語言背景。隨著全球通信變得日益復雜,組織必須仔細評估翻譯解決方案,以平衡技術效率與文化敏感性和語言準確性。
在本文中,我們將探討 LLMs 如何解決以下兩種截然不同的英語到繁體中文翻譯用例:
- 網站營銷內容:精確翻譯技術文本,同時保持自然的宣傳基調。
- 在 線培訓課程 :翻譯 Jupyter Notebooks 等平臺中使用的幻燈片文本和 markdown 內容,確保準確的技術翻譯和正確的 markdown 格式 (如標題、部分和超鏈接)。
這些用例需要采用常規翻譯以外的專門方法。雖然 使用指令調整 LLMs 進行提示工程 可以處理某些情境,但此類更精細的任務通常無法達到預期效果。因此,在針對每個翻譯環境收集的特定數據集上單獨微調 Low-Rank Adaptation(LoRA)適配器變得至關重要。
實施 LoRA 適配器以實現特定領域的翻譯
在此項目中,我們將使用 Llama 3.1 8B Instruct 作為預訓練模型,并使用 NVIDIA NeMo Framework 實現兩個通過 LoRA adapters 微調的模型。這些 adapters 基于特定領域的數據集進行訓練, 一個用于營銷網站內容,另一個用于在線培訓課程 。為了在同一預訓練模型上同時使用多個 LoRA adapters 來輕松部署 LLMs,我們使用 NVIDIA NIM 。
請參閱 Jupyter Notebook ,了解如何使用 NeMo 執行 LoRA 微調。
使用 LoRA 和 NVIDIA NIM 優化 LLM 部署
NVIDIA NIM 為部署專業 LLM 服務引入了更高水平的性能、可靠性、敏捷性和控制力。借助針對不同 GPU 類型定制的預構建容器和優化模型引擎,您可以輕松部署 LLM,同時提高服務性能。除了 Meta Llama 3 系列以及 Mistral AI Mistral 和 Mixtral 模型等熱門預訓練模型外,您還可以使用 NIM 集成和微調自己的模型,從而進一步增強其功能。
LoRA 是一種強大的定制技術,僅通過調整模型的一部分參數即可實現高效的微調。這顯著減少了所需的計算資源。LoRA 因其有效性和效率而廣受歡迎。與全參數微調不同,LoRA 適配器權重更小,并且可以與預訓練模型分開存儲,從而提高部署的靈活性。
NVIDIA TensorRT-LLM 建立了一種機制,可在同一預訓練模型上同時為 多個 LoRA 適配器 提供服務。NIM 也支持這種 多適配器機制 。
以下各節將展示這些功能的優勢以及在多用途翻譯任務中的應用。
借助 NVIDIA LLM NIM 逐步實現 LoRA 微調部署
本節將介紹使用 NVIDIA LLM NIM 進行 LoRA 微調部署所涉及的三個步驟。
第 1 步:設置 NIM 實例和 LoRA 模型
首先, 按照 NIM 支持矩陣中的建議 ,啟動配備兩個 NVIDIA L40S GPUs 的計算實例。
接下來,將兩個經過微調的 NeMo 文件上傳至此環境。有關使用 NeMo Framework 進行 LoRA 微調的詳細示例,請參閱 官方文檔 和 Jupyter Notebook 。
要組織環境,請使用以下命令創建用于存儲 LoRA 適配器的目錄:
$ mkdir -p loras/llama-3.1-8b-translate-course $ mkdir -p loras/llama-3.1-8b-translate-web $ export LOCAL_PEFT_DIRECTORY=$(pwd)/loras $ chmod -R 777 $(pwd)/loras $ tree loras loras ├── llama-3.1-8b-translate-course │ └── course.nemo └── llama-3.1-8b-translate-web └── web.nemo 2 directories, 2 files |
第 2 步:部署 NIM 和 LoRA 模型
現在,您可以繼續部署 NIM 容器。將 替換為您的實際 NGC API 令牌。如有需要,請生成 API 密鑰。然后運行以下命令:
$ export NGC_API_KEY=<NGC_API_KEY> $ export LOCAL_PEFT_DIRECTORY=$(pwd)/loras $ export NIM_PEFT_SOURCE=/home/nvs/loras $ export CONTAINER_NAME=nim-llama-3.1-8b-instruct $ export NIM_CACHE_PATH=$(pwd)/nim-cache $ mkdir -p "$NIM_CACHE_PATH" $ chmod -R 777 $NIM_CACHE_PATH $ echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin $ docker run -it --rm --name=$CONTAINER_NAME \ --runtime=nvidia \ --gpus all \ --shm-size=16GB \ -e NGC_API_KEY=$NGC_API_KEY \ -e NIM_PEFT_SOURCE \ -v $NIM_CACHE_PATH:/opt/nim/.cache \ -v $LOCAL_PEFT_DIRECTORY:$NIM_PEFT_SOURCE \ -p 8000:8000 \ nvcr.io/nim/meta/llama-3.1-8b-instruct:1.1.2 |
執行這些步驟后,NIM 將加載模型。完成后,您可以使用以下命令查看運行狀況,并檢索預訓練模型和 LoRA 模型的模型名稱:
# NIM health status $ curl http://<INSTANCE_URL>:8000/v1/health/ready # Get model names of the base model and LoRA models $ curl http://<INSTANCE_URL>:8000/v1/models | jq { "data" : [ { "created" : 1725516389, "id" : "meta/llama-3.1-8b-instruct", "max_model_len" : 131072, "object" : "model", "owned_by" : "system", "parent" : null, "permission" : [ { "allow_create_engine" : false, "allow_fine_tuning" : false, "allow_logprobs" : true, "allow_sampling" : true, "allow_search_indices" : false, "allow_view" : true, "created" : 1725516389, "group" : null, "id" : "modelperm-2274791587e4456b9ce921621377becb", "is_blocking" : false, "object" : "model_permission", "organization" : "*" } ], "root" : "meta/llama-3.1-8b-instruct" }, { "created" : 1725516389, "id" : "llama-3.1-8b-translate-course", "max_model_len" : null, "object" : "model", "owned_by" : "system", "parent" : null, "permission" : [ { "allow_create_engine" : false, "allow_fine_tuning" : false, "allow_logprobs" : true, "allow_sampling" : true, "allow_search_indices" : false, "allow_view" : true, "created" : 1725516389, "group" : null, "id" : "modelperm-cb8be2bce8db442d8347f259966e2c02", "is_blocking" : false, "object" : "model_permission", "organization" : "*" } ], "root" : "meta/llama-3.1-8b-instruct" }, { "created" : 1725516389, "id" : "llama-3.1-8b-translate-web", "max_model_len" : null, "object" : "model", "owned_by" : "system", "parent" : null, "permission" : [ { "allow_create_engine" : false, "allow_fine_tuning" : false, "allow_logprobs" : true, "allow_sampling" : true, "allow_search_indices" : false, "allow_view" : true, "created" : 1725516389, "group" : null, "id" : "modelperm-8e404c4d9f504e5fae92bf6caf04e93c", "is_blocking" : false, "object" : "model_permission", "organization" : "*" } ], "root" : "meta/llama-3.1-8b-instruct" } ], "object" : "list" } |
輸出將顯示可用于部署的模型的詳細信息。
第 3 步:評估微調 LoRA 模型的翻譯質量
運行 NIM 后,您可以使用 NIM 執行英語到繁體中文的翻譯,并在請求正文中指定適當的 LoRA 模型名稱。
微調結果和性能指標
我們使用預訓練模型和兩個經過微調的 LoRA 模型評估了兩個測試數據集的翻譯質量。這些評估的 BLEU 和 COMET 分數如圖 1 和 2 所示。


這些結果表明,使用 LoRA 機制微調特定數據集可顯著提高其各自領域內的翻譯質量。為了獲得最佳性能,特定領域的數據集應利用其相應的微調 LoRA 模型。
在 Web 數據集上微調的 LoRA 模型顯示,與 Web 相關的翻譯的評估分數有了更顯著的提高。表 1 對比了翻譯示例。
源文本 | 預訓練模型輸出 | LoRA 微調模型 (基于 Web 數據集) 輸出 |
NVIDIA 在計算機視覺、對話式 AI 和推薦系統工作負載的 MLPerf 推理基準測試中占據領先地位。 | NVIDIA 在計算視覺、對話式人工智慧和建議系統工作負載方面,領先於 MLPerf 推理基準。 | NVIDIA 在電腦視覺、對話式人工智慧和推薦系統工作負載的 MLPerf 推論基準中擴大領先地位。 |
NVIDIA RTX Remix 基于 NVIDIA Omniverse 構建,使 modders 能夠輕松捕獲游戲資產,使用生成式 AI 工具自動增強材質,并快速創建令人驚艷的 RTX 重制版游戲,具有全景光線追蹤和 DLSS 3。 | 在 NVIDIA Omniverse 上建立,RTX Remix 允許模塊開發者輕松捕捉游戲資源、自動使用生成 AI 工具增強材質,并快速創建具有全實時光線追蹤和 DLSS 3 的 RTX 重制版。 | RTX Remix 是以 NVIDIA Omniverse 為基礎,讓模塊玩家能輕松擷取游戲素材、使用生成式人工智慧工具自動增強材質,并快速創造出充分采用全光線追蹤技術和 DLSS 3 的令人驚豔的 RTX 重製版。 |
請注意,提示模板如下所示:*|begin_of_text|>*|start_header_id|> 系統*|end_header_id|> \ n \ n <|begin_of_text|><|start_header_id|>system<|end_header_id|>\n\nYou are an AI assistant who translates an English context to traditional Chinese. The context will be given after a prompt “Translate the following input text to traditional Chinese”. Never respond text other than translation results.<|eot_id|><|start_header_id|>user<|end_header_id|>\n\nTranslate the following input text to traditional Chinese.\n\n .\n<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n 系統將在提示“Translate the following input text to traditional chinese”(將以下 輸入文本翻譯成繁體中文 ) 后提供上下文。切勿回復翻譯結果以外的文本。*|eot_id|>*|start_header_id|> 用戶*|end_header_id|> \ n \ n 將以下輸入文本翻譯成繁體中文。\ n \ n {English Text}.\ n}|eot_id|>*|start_header_id|> 助手*|end_header_id|> \ n \ n |
通過 NVIDIA NIM 和 LoRA 微調進一步探索
分別在網站和在線培訓課程數據集的營銷內容上微調 LoRA 適配器 ,可顯著提高翻譯質量。這表明,特定領域的數據集在與自己的 LoRA 模型搭配使用時可獲得更好的結果,從而高效調整預訓練模型的權重以提高性能。通過在單個 NVIDIA NIM 實例中部署這些經過微調的模型,可提供高效利用 GPU 的解決方案,從而同時為多個專業任務提供服務。
準備好更進一步了嗎?探索 NVIDIA NIM 微服務 如何幫助您針對特定任務部署和微調 LLM。借助 NVIDIA NeMo ,您可以使用 LoRA 適配器 微調熱門模型(例如 Llama 3 、 Mistral 和 Phi ),從而提高開發效率并增強應用性能。
?