• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    對話式人工智能

    利用特定領域的微調和 NVIDIA NIM 提高翻譯質量

    翻譯在助力公司實現跨國業務擴展方面發揮著至關重要的作用,在語調、準確性和技術術語處理方面的要求差異很大。 主權 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 所示。

    A graph showing BLEU scores for the Course and Web dataset, comparing base model with LoRA.
    圖 1、使用基礎模型和兩個 LoRA 微調模型的不同測試數據集的 BLEU 分數 (越高越好)
    A graph showing COMET scores for the Course and Web dataset, comparing base model with LoRA.
    圖 2、使用基礎模型和兩個 LoRA 模型的不同測試數據集的 COMET 分數 (越高越好)

    這些結果表明,使用 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
    表 1、Web 數據集的句子翻譯比較

    通過 NVIDIA NIM 和 LoRA 微調進一步探索

    分別在網站和在線培訓課程數據集的營銷內容上微調 LoRA 適配器 ,可顯著提高翻譯質量。這表明,特定領域的數據集在與自己的 LoRA 模型搭配使用時可獲得更好的結果,從而高效調整預訓練模型的權重以提高性能。通過在單個 NVIDIA NIM 實例中部署這些經過微調的模型,可提供高效利用 GPU 的解決方案,從而同時為多個專業任務提供服務。

    準備好更進一步了嗎?探索 NVIDIA NIM 微服務 如何幫助您針對特定任務部署和微調 LLM。借助 NVIDIA NeMo ,您可以使用 LoRA 適配器 微調熱門模型(例如 Llama 3 Mistral Phi ),從而提高開發效率并增強應用性能。

    ?

    0

    標簽

    人人超碰97caoporen国产