Back to blog
    微調 Qwen 2.5 用於多語言應用
    qwenmultilingualfine-tuninginternationalslmsegment:developer

    微調 Qwen 2.5 用於多語言應用

    Qwen 2.5 以 18 兆訓練 tokens 涵蓋 29 種語言。以下是如何針對多語言分類、支援和內容生成進行微調,無需為每種語言準備獨立模型。

    EErtas Team·

    大多數開源語言模型以英語為主。它們能很好地處理英語,勉強應付一些歐洲語言,在阿拉伯語、印地語、中文、日語、韓語以及世界上大多數人實際說的語言上卻表現很差。

    Qwen 2.5 不同。阿里巴巴在 18 兆 tokens 上訓練它,涵蓋 29 種語言,對非拉丁文字和從右到左語言進行了真正的投資。其結果是一個模型系列,可以在不出現當你將 Llama 或 Mistral 推入非英語領域時所看到的準確率斷崖時處理多語言任務。

    這對企業很重要,因為你的用戶、客戶和文件並非全部都是英語。如果你在構建多語言支援系統、國際電商分類或跨語言文件處理,你需要一個實際上在這些語言上訓練過的模型——而不是一個把幾百萬中文 tokens 當作事後補充的模型。

    以下是如何微調 Qwen 2.5 用於多語言任務,包括資料集準備、分詞器考慮、訓練策略和部署。

    Qwen 2.5 模型系列

    Qwen 2.5 有八種大小:

    模型參數量VRAM (FP16)VRAM (Q5_K_M)最適合
    Qwen 2.5 0.5B500M1.5 GB0.5 GB裝置端、邊緣
    Qwen 2.5 1.5B1.5B4 GB1.5 GB行動、瀏覽器
    Qwen 2.5 3B3B7 GB2.5 GB輕量伺服器
    Qwen 2.5 7B7B16 GB5 GB微調最佳點
    Qwen 2.5 14B14B30 GB10 GB複雜任務
    Qwen 2.5 32B32B68 GB22 GB多 GPU
    Qwen 2.5 72B72B150 GB48 GB高端伺服器

    7B 模型是微調的最佳點。 它夠大,足以處理複雜的多語言任務;夠小,足以在單個 GPU 上以 QLoRA 微調(推論需要 5-6 GB VRAM,訓練需要 10-12 GB);且多語言能力在這個大小上表現良好。

    3B 模型適用於更簡單的任務(二元分類、意圖偵測),如果你需要更低的延遲或更小的部署體積。如果你在非英語語言中處理複雜推理,14B 模型值得額外的資源——較小的模型在低資源語言中往往更快失去推理能力。

    為何 Qwen 在多語言上勝出

    訓練資料分佈

    大多數開源模型是在 80-90% 以上的英語資料上訓練的。Qwen 2.5 的訓練混合更加均衡:

    • 英語:約 40%
    • 中文(簡體 + 繁體):約 25%
    • 歐洲語言(德語、法語、西班牙語、義大利語、葡萄牙語、荷蘭語、俄語、波蘭語):約 15%
    • 亞洲語言(日語、韓語、越南語、泰語、印尼語、馬來語):約 10%
    • 阿拉伯語、印地語、孟加拉語、烏爾都語、土耳其語、波斯語:約 7%
    • 其他(希伯來語、斯瓦希里語、菲律賓語、烏克蘭語、捷克語):約 3%

    40% 英語 vs 60% 非英語的比例意味著模型真正學習了多語言模式,而不只是記住了英語並在其上覆蓋薄薄的其他語言。

    分詞器設計

    Qwen 2.5 使用 152K 詞彙的分詞器——比 Llama 的 128K 大得多。額外的 tokens 包含用於 CJK 字元、阿拉伯文字、天城體和其他非拉丁書寫系統的專用子詞單元。這意味著:

    • 中文文字每個字元約使用 1.5 個 tokens(而 Llama 需要 2-3 個)
    • 阿拉伯文字每個單詞約使用 1.8 個 tokens(而 Llama 需要 3-4 個)
    • 日文文字每個字元約使用 1.4 個 tokens(而 Llama 需要 2.5 個)

    每個輸入的 tokens 更少意味著推論更快、相同上下文長度下 VRAM 使用更少、以及微調更有效率。一份 2,000 字的中文文件在 Qwen 中可能是 3,000 tokens,但在 Llama 中可能是 5,500 tokens。這在訓練成本和推論速度上是有意義的差異。

    基準測試表現

    在多語言基準測試中,Qwen 2.5 7B 與競爭對手之間的差距很顯著:

    基準測試Qwen 2.5 7BLlama 3.3 8BMistral 7BGemma 3 4B
    MGSM(多語言數學)72.4%61.2%54.8%48.3%
    XL-Sum(多語言摘要)34.2 ROUGE28.1 ROUGE25.6 ROUGE22.4 ROUGE
    XNLI(跨語言 NLI)78.6%69.4%65.2%60.1%
    Flores-200(翻譯)31.8 BLEU24.2 BLEU21.5 BLEU19.8 BLEU

    在僅限英語的基準測試中,Llama 3.3 8B 在某些任務上略勝 Qwen 2.5 7B。但一旦轉向非英語,差距迅速拉大。

    多語言任務微調

    資料集準備

    多語言微調中最常見的錯誤是分別對每種語言進行訓練或創建語言特定的適配器。不要這樣做。一個模型、一個適配器、所有語言混合在一起。

    將你的訓練資料結構化為每個批次中混合語言的範例:

    {"instruction": "Classify this support ticket.", "input": "Mi pedido #4521 no ha llegado. Han pasado 10 dias.", "output": "category: shipping\npriority: high\nlanguage: es"}
    {"instruction": "Classify this support ticket.", "input": "I can't log in to my account after the password reset.", "output": "category: authentication\npriority: medium\nlanguage: en"}
    {"instruction": "Classify this support ticket.", "input": "Ich habe zweimal fur dasselbe Produkt bezahlt.", "output": "category: billing\npriority: high\nlanguage: de"}
    {"instruction": "Classify this support ticket.", "input": "Je n'arrive pas a telecharger ma facture.", "output": "category: billing\npriority: low\nlanguage: fr"}

    多語言資料集的關鍵原則:

    • 在批次內混合語言,不要按語言分組。這迫使模型學習語言無關的任務模式。
    • 跨語言使用一致的輸出格式。 無論輸入語言如何,輸出應始終採用相同的結構化格式。這使下游解析變得簡單。
    • 如果對你的管道有用,在輸出中包含語言偵測。 Qwen 自然地處理這個。
    • 按語言大致平衡你的範例。 你不需要完美平衡,但不要在 400 個英語範例和 20 個阿拉伯語範例上訓練。每種語言至少 50 個範例。
    • 總資料集大小:跨所有語言 300-500 個範例。如果你支援 7-10 種語言,每種語言大約 30-70 個範例。

    分詞器考慮

    設置訓練的最大序列長度時,考慮 Qwen 分詞器的效率:

    • 如果你最長的輸入是 500 個英語單詞(約 650 tokens),同樣的內容在中文中可能是 400 tokens,但在阿拉伯語中可能是 900 tokens。
    • 基於你資料集中最冗長的語言設置最大序列長度,再加 20% 緩衝。
    • 對大多數多語言任務,2048 tokens 足夠。如果你在處理長文件,增加到 4096。

    訓練配置

    Qwen 2.5 7B 多語言微調的建議設定:

    參數備註
    LoRA rank32高於僅英語(16)以捕獲多語言模式
    學習率1.5e-4稍低於單語言以避免災難性遺忘
    Epochs4-5多語言需要稍多的訓練輪次
    Batch size4由 Ertas 自動調整
    最大序列長度2048長文件時增加
    Warmup ratio0.05標準值

    LoRA rank 32 很重要。對於僅英語任務,rank 16 通常足夠。對於多語言,適配器需要更多容量來捕獲特定語言的模式,同時保持跨語言遷移。我們看到 rank 16 適配器與 rank 32 相比,在低資源語言上損失 3-5% 的準確率。

    VRAM 需求

    配置VRAM
    QLoRA 訓練 (rank 32, 4-bit 基礎)12 GB
    QLoRA 訓練 (rank 16, 4-bit 基礎)10 GB
    推論 (Q5_K_M)5 GB
    推論 (Q4_K_M)4.5 GB
    推論 (FP16)16 GB

    你可以在 RTX 3080 12GB 或同等 GPU 上微調 Qwen 2.5 7B。在 Q5_K_M 的推論可以在任何 6 GB 以上 VRAM 的 GPU 上舒適地運行,或在 8 GB 以上統一記憶體的 Apple Silicon Mac 上運行。

    使用案例:多語言客戶支援

    一家歐洲 SaaS 公司通過 GPT-4o 用 6 種語言(英語、德語、法語、西班牙語、義大利語、葡萄牙語)運行客戶支援。每月費用:45,000 張票/月 $2,400。每張票需要分類(8 個類別)、優先級分配和建議回應。

    在 480 個範例(每種語言 80 個)上微調 Qwen 2.5 7B 後:

    指標GPT-4o微調 Qwen 2.5 7B
    分類準確率(所有語言)84%93%
    分類準確率(德語)81%92%
    分類準確率(西班牙語)83%94%
    優先級準確率79%91%
    回應相關性(人工評分)4.1/54.3/5
    平均延遲1,100ms160ms
    每月費用$2,400$44.50

    微調模型優於 GPT-4o,因為它學習了公司的特定票證類別、優先級規則和回應模板。GPT-4o 必須從系統提示中推斷所有這些,這對英語有效,但對其他語言的提示解釋不夠可靠。

    使用案例:國際電商分類

    一個列出來自 12 個國家產品的電商平台需要將商品分類到 45 個類別的分類法中。產品標題和描述以賣家的語言到達——中文、韓語、日語、英語、德語、法語、泰語、越南語、印尼語。

    他們使用 Google 翻譯 + GPT-4o 的管道,引入了翻譯錯誤,每月 120,000 個產品花費 $3,800。

    在 600 個範例上微調 Qwen 2.5 7B(完全移除翻譯步驟):

    指標翻譯 + GPT-4o微調 Qwen 2.5 7B(直接)
    分類準確率78%91%
    每項處理時間2.3s0.18s
    每月費用$3,800$44.50
    錯誤分類率(CJK 語言)28%8%

    直接方式——無翻譯,直接在原始語言中分類——既更準確又快 12 倍。翻譯引入了級聯到錯誤分類的錯誤。Qwen 對原始文字的理解足夠好,可以直接分類。

    使用案例:跨語言文件處理

    一家處理英語、法語、德語和西班牙語合約的法律公司需要擷取關鍵條款、日期、當事方名稱和義務。文件長度從 2 到 15 頁不等。

    在跨所有四種語言的 400 個條款擷取範例上微調 Qwen 2.5 7B:

    • 欄位擷取準確率:90%(vs GPT-4o few-shot 的 82%)
    • 跨語言一致性:當相同類型的條款出現在不同語言時,96% 的情況下提取的結構是一致的
    • 處理速度:在 RTX 4070 Ti 上每分鐘 4-5 頁

    主要優勢是一致性。GPT-4o 有時會根據輸入語言使用不同的欄位名稱或結構。微調的 Qwen 模型無論來源語言如何,始終產生相同的 schema,這簡化了下游資料管道。

    使用 Ertas 的微調演示

    1. 準備混合語言資料集

    從你需要支援的每種語言收集範例。格式化為指令-輸入-輸出 JSONL。確保語言間的大致平衡(每種語言最少 40-50 個範例)。

    2. 上傳到 Ertas

    上傳你的 JSONL 文件。選擇 Qwen 2.5 7B 作為基礎模型。Ertas 將偵測多語言內容並建議適當的訓練參數。

    3. 配置訓練

    將 LoRA rank 設為 32,學習率設為 1.5e-4,epochs 設為 4。除非你有特定需求,否則其他參數保持預設值。

    4. 訓練

    一個 500 個範例的多語言微調任務通常在 25-35 分鐘內完成。監控驗證損失——對多語言訓練,預期損失曲線比單語言訓練稍微嘈雜,因為模型在語言間保持平衡。

    5. 評估

    Ertas 在評估結果中報告每種語言的準確率。檢查沒有任何單一語言表現顯著低於水準。如果某種語言落後,為該語言添加 20-30 個範例並重新訓練。

    6. 匯出和部署

    以 Q5_K_M 匯出為 GGUF 用於生產環境。透過 Ollama 部署。同一個模型服務所有語言——不需要語言偵測路由或多個模型實例。

    效能:Qwen 2.5 7B vs Llama 3.3 8B 在非英語任務上

    兩個模型都在相同的 500 個範例多語言分類資料集(8 種語言,10 個類別)上微調:

    語言Qwen 2.5 7BLlama 3.3 8B
    英語95%96%
    德語93%84%
    法語94%86%
    西班牙語94%87%
    中文92%71%
    阿拉伯語89%63%
    日語91%68%
    印地語87%58%
    平均91.9%76.6%

    在英語上,Llama 稍好。在其他每種語言上,Qwen 勝出——對 CJK 和阿拉伯語的差距是巨大的。Llama 在印地語上的準確率(58%)對一個 10 類別分類任務來說幾乎只比隨機好一點。

    如果你的應用程式只使用英語,兩種模型都可以工作。如果你的應用程式涉及任何非英語語言,Qwen 2.5 是明顯的選擇。


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    延伸閱讀

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading