在建構 RAG(檢索增強生成)系統時,工程師經常面臨一個兩難:想要支援多國語言且精準的 Embedding 模型通常體積龐大,導致推理速度慢且記憶體佔用高;而輕量化模型雖然快,但在處理非英文語言或長文本時,檢索品質往往大幅下降。
IBM 最近發佈的 Granite Embedding Multilingual R2 系列模型,旨在打破這個僵局。它提供了兩種版本:一個是追求極致效率的 97M 輕量模型,另一個則是平衡效能與彈性的 311M 全尺寸模型。這兩者均採用 Apache 2.0 開源協議,對企業應用非常友善。
技術核心:從 R1 到 R2 的演進
早期的 R1 版本基於 XLM-RoBERTa,其最大的限制在於僅支援 512 個 Token 的上下文視窗。對於法律合約、技術手冊等長文件,R1 只能看到開頭的一部分,導致檢索失效。
R2 版本採取了完全重構的策略,將底層編碼器更換為 ModernBERT。這帶來了三個關鍵的實務改進:
第一是上下文視窗擴展至 32K Token。這意味著模型可以一次處理長達數萬字的文本,解決了長文本被截斷的問題。
第二是引入 Rotary Position Embeddings(旋轉位置編碼)。這是一種讓模型能更好地處理長序列位置資訊的技術,避免了舊款模型在擴展視窗時需要採取的人為補丁。
第三是支援 Flash Attention 2.0。這能顯著提升在現代 GPU 上的編碼速度,降低推理延遲。
模型版本與選擇指南
針對不同場景,IBM 提供了兩種模型選擇:
97M 輕量模型(granite-embedding-97m-multilingual-r2) 這款模型的目標是成為 sub-100M 級別最強的多國語言模型。它僅有 9700 萬個參數,但在 MTEB 多國語言檢索基準測試中表現驚人,甚至超越了體積大三倍的某些競爭對手。對於需要部署在邊緣設備、對延遲極其敏感或需要處理海量索引的場景,這是首選。
311M 全尺寸模型(granite-embedding-311m-multilingual-r2) 這款模型提供更高的檢索精度,特別是在跨語言轉移(Cross-lingual Transfer)任務上表現更強。它最特別的功能是支援 Matryoshka Representation Learning(俄羅斯娃娃表徵學習)。
什麼是 Matryoshka Embeddings? 這是一種特殊的訓練方式,讓模型生成的向量具有可截斷性。原本 768 維的向量,可以被直接截斷為 512、384、256 甚至 128 維,而精度損失極小。
對工程師而言,這解決了存儲與計算的痛點。例如,將維度從 768 降至 256,可以減少 3 倍的向量資料庫存儲空間,並加快餘弦相似度(Cosine Similarity)的計算速度,但檢索品質僅下降約 0.5 分。
訓練方法與企業級考量
為了確保模型在商業環境中可用,IBM 在訓練過程中採取了嚴格的數據治理。他們刻意避開了具有非商業限制或授權不明的數據集(如 MS-MARCO),改用經過篩選與去重的 GneissWeb 數據集。
在技術路徑上,R2 運用了知識蒸餾(Knowledge Distillation)技術。簡單來說,就是讓較小的 Encoder 模型去學習大型 Decoder 模型(如 Granite 3.3 或 Mistral)的檢索知識,使小模型也能擁有大模型的理解能力。
實務部署與集成
對於開發者來說,R2 的集成成本極低。它與 sentence-transformers 完全兼容,且不需要像某些模型那樣在查詢前加上特定指令(Task-specific instructions)。
目前主流的 RAG 框架如 LangChain、LlamaIndex、Haystack 以及向量資料庫 Milvus 均可直接透過更改模型名稱來進行無縫替換。此外,模型提供 ONNX 和 OpenVINO 格式,這意味著即便沒有 GPU,在 CPU 上也能獲得優化的推理性能。
總結:如何選擇?
如果你需要最高的多國語言檢索精度,或者需要靈活調整向量維度以平衡存儲成本,請選擇 311M 模型。
如果你追求最高吞吐量、低延遲,或是在資源受限的環境部署,97M 模型是目前同尺寸中的頂級選擇。
如果你的數據幾乎全部是英文,建議使用 Granite 專為英文優化的版本,因為不需要分攤參數給 200 多種語言,英文檢索效果會更好。
來源:huggingface.co
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。