Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101

AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
Deep Learning 101 創立初衷,是為了普及與分享深度學習及AI領域的尖端知識,深信AI的價值在於解決真實世界的商業問題。

Deep Learning 101

去 YouTube 訂閱 | Facebook | 回 GitHub Pages 首頁 | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心


大語言模型 語音處理 自然語言處理 電腦視覺
Large Language Model Speech Processing Natural Language Processing, NLP Computer Vision

在快速變動的全球局勢與本地產業環境下,您的營運是否正遭遇瓶頸?這些不僅是挑戰,更是導入AI、實現轉型升級的最佳契機。AI導入並非單純的技術採購,而是一場由上而下的企業變革。


用 AI 懂 AI

AI 技術 體驗/分享

手把手帶你一起踩 AI 坑https://www.twman.org/AI


AI 技術 開源/試用


從零到一:打造本地端高精準度 RAG 系統的實戰指南 (涵蓋環境部署、數據處理、混合檢索與 Rerank)

作者TonTon Huang Ph.D.
日期:2025年07月30日 <> 2024年7月7日
相關文章 I檢索增強生成 (Retrieval-Augmented Generation, RAG) 不是萬靈丹:檢索增強生成的挑戰與優化技巧
相關文章 II臺灣大型語言模型及文字嵌入和重排序模型性能評測與在地化策略分析報告


文章概述

分享在實作 RAG(Retrieval-Augmented Generation)過程中遇到的挑戰與優化技巧,並強調 RAG 並非萬靈丹,需根據實際需求進行適當的設計與調整。


為何 RAG?

RAG 提供了一種結合檢索與生成的強大方法,但並非適用於所有情境。實作時需根據實際需求選擇合適的工具與策略,並注意資料處理與模型部署的細節,才能發揮其最大效益。

一:基礎環境部署

選擇本地端推理框架

想在自己的本地端跑大模型,首先需要部署一套推理框架。常見的選擇有 OllamaVLLMxinferenceOllama 的安裝和執行非常簡單,而 xinference 依個人體驗在管理多模型和多卡並行上提供了更大的彈性與便利性,對於進階使用者來說可能是更方便的選擇。

補充觀點:為何選擇本地端部署? 選擇在本地部署模型,不僅是為了探索技術,更是一種在成本、執行速度和數據隱私三者之間進行權衡的策略。本地化意味著對數據有完全的掌控權,並能避免 API 呼叫的延遲和費用。

安裝與啟動範例 (以 xinference 為例):

# 升級或安裝 xinference,包含所有依賴項
pip install --upgrade "xinference[all]"

# 在指定的 GPU (例如 1, 2, 3 號卡) 上啟動服務,並監聽所有 IP
CUDA_VISIBLE_DEVICES=1,2,3 xinference-local -H 0.0.0.0 -p 6006

二:RAG 優化核心流程

資料準備與嵌入 (Data Preparation & Embedding)

2.1 觀念建立:垃圾進,垃圾出

在建立知識庫時,最忌諱的就是直接將原始文件一股腦地丟進系統;請千萬不要無腦的塞入文檔讓它自動切割!

為什麼? 因為 RAG 系統的基礎是高質量的知識區塊 (Chunk)。如果分塊不佳、內容雜亂或包含大量無關資訊(如頁眉、頁腳),那麼後續的檢索模型再強大,也無法從一堆「垃圾」中準確找出黃金,最終只會導致模型產生不準確或無關的答案。

2.2 高品質數據提取與處理工具

為了確保輸入資料的品質,我們需要使用專業工具進行精細的文本提取與處理。

補充觀點:工具的目標 使用這些工具的最終目標是實現最佳化分塊 (Optimal Chunking)預處理關鍵資訊。這意味著我們要將文件切分成有意義、上下文連貫的段落,並清理掉無關的噪聲,確保每個文本片段在被單獨檢索時仍能表達清晰的含義。

2.3 選擇合適的嵌入模型 (Embedding)

在大型語言模型(LLM)應用中,當涉及檢索增強生成(Retrieval-Augmented Generation, RAG)時,其核心目標是為 LLM 提供精準且具備上下文的資訊,從而生成高品質、具事實根據的回應。傳統的關鍵字搜尋方法已不足以應對複雜的語義理解需求。為此,RAG 系統引入了嵌入(Embedding)模型和重排序(Reranking)模型,共同構成了高效能資訊檢索的基石;它們直接影響到 RAG 系統檢索資訊的相關性與準確性。

Embedding (嵌入)

在繁體中文的檢索場景中,一些模型的表現較為突出:

補充觀點:選擇的重要性 強調選擇合適的嵌入模型是優化檢索品質的關鍵第一步。不同的模型在捕捉語義特徵上有各自的強項和偏好,選對模型能讓你的檢索任務事半功倍。

評估嵌入模型品質的標準基準測試是 MTEB (Massive Text Embedding Benchmark)。

多種嵌入模型被廣泛用於RAG系統。截至2025年中,此領域的競爭已進入白熱化階段,MTEB 全球排行榜的頂端由 Google 和阿里巴巴的最新模型佔據,過去的領先者如 BAAI 的 BGE 系列、Microsoft 的 E5 系列等則面臨激烈挑戰。

  1. Google Gemini Embedding (當前榜首):
    • gemini-embedding-001: Google 推出的此模型在發布後迅速登上 MTEB 排行榜首位,展現了其最先進(State-of-the-Art)的文本表徵能力。作為一個閉源商用模型,它在各項評測中(檢索、分類、聚類等)取得了極高的綜合平均分,使其成為追求極致性能、且在 Google Cloud 生態內的開發者的首選。
  2. Alibaba Qwen3 Embedding (開源領頭羊):
    • Qwen3-Embedding 系列 (0.6B, 4B, 8B): 這是由 Qwen 團隊基於強大的 Qwen3 基礎模型訓練的新一代 Embedding 系列。根據其官方報告,Qwen3-Embedding-8B 模型在發布時曾一度登頂 MTEB 多語言榜單,目前也以微弱差距緊隨 gemini-embedding-001 之後,位居第二,是開源模型中的 undisputed champion (無可爭議的冠軍)
    • 核心優勢:
      • 卓越性能與泛化性: 繼承了 Qwen3 的多語言理解能力(支援超過100種語言),在 MTEB 和 C-MTEB 上均表現頂尖。
      • 靈活架構: 提供從 0.6B 到 8B 的多種尺寸,並支援自訂輸出維度 (MRL Support)指令微調 (Instruction Aware),讓開發者能根據成本和效能需求進行客製化,極具彈性。
      • 先進的訓練方法: 採用了創新的三階段訓練範式,特別是利用 Qwen3 自身生成能力來建構大規模弱監督訓練資料,突破了傳統方法的限制。
  3. 昔日強者與現存勁旅:
    • BAAI/bge-m3 & JinaAI-v2-base-en: 這些模型曾經是 MTEB 排行榜上的佼佼者,但隨著新模型的推出,其排名已有所下滑。儘管如此,bge-m3 憑藉其獨特的多向量檢索能力和長文本支援,在特定場景下依然有其價值。它們的存在證明了這個領域技術迭代的速度之快。
    • Voyage AI & NV-Embed: 這些同樣是性能非常強勁的(商用)模型,雖然被最新的 Gemini 和 Qwen3 超越,但依然處於排行榜的頂級梯隊中,是特定需求下的可靠選項。
    • intfloat/multilingual-e5-large-instruct: 這是由 Microsoft Research 推出的 E5 系列中的重要多語言模型。E5 系列是推廣指令微調 (Instruction Tuning) 於 Embedding 領域的先驅之一,其設計理念對後續許多模型產生了深遠影響。雖然其性能已被新一代模型超越,但它仍然是一個非常穩固的開源基準模型,廣泛應用於學術研究和業界實踐中。

表 關鍵 Embedding 模型特性比較

模型名稱 主要語言 最大上下文長度 (Tokens) MTEB Score (Avg) C-MTEB Score 關鍵優勢與表現摘要
google/gemini-embedding-001 多語言 8192 68.61 71.04 閉源商用,性能頂尖,生態整合。MTEB 全球排行榜當前 #1
Alibaba-NLP/Qwen3-Embedding-8B 多語言 (100+) 32768 68.12 72.88 開源,性能頂尖,架構靈活,可調維度。MTEB 全球排行榜 #2,開源模型 #1
Alibaba-NLP/Qwen3-Embedding-4B 多語言 (100+) 32768 66.86 71.85 Qwen3 系列中型模型,高效能。MTEB 排名頂尖,具備成本效益。
voyage-ai/voyage-large-2-instruct 多語言 16384 66.08 68.32 閉源商用,檢索性能強勁。曾為 MTEB 榜首,現仍居頂級梯隊。
BAAI/bge-m3 多語言 (100+) 8192 64.63 68.31 多向量檢索,長文本處理,多功能。排名已下滑,但在特定功能上仍具優勢。
intfloat/multilingual-e5-large-instruct 多語言 512 62.13 62.91 開源,指令微調先驅,穩定的基準模型。經典模型,已被新模型超越。
JinaAI/jina-embeddings-v2-base-en 英文為主 8192 61.15 N/A 曾是強力的開源選項。排名已下滑,被新模型大幅超越。

(註:MTEB/C-MTEB 分數是浮動的,數據基於 2025 年 Q3 的 CSV 檔案。N/A 表示無適用的公開分數。)

資料檢索 (Data Retrieval)

2.4 檢索策略:從單一到混合

檢索是從向量資料庫中找出與使用者問題相關資訊的過程。常見的策略包括:

模型選擇的決策比以往任何時候都更加關鍵,需要綜合考量性能、成本、開源與否以及特定場景需求。

補充觀點:為何需要混合檢索 (Hybrid Search)? 單一的檢索方式存在盲點:向量檢索可能忽略關鍵字,而全文檢索無法理解語義。混合檢索將兩者結合,它既能透過全文檢索確保精確匹配不遺漏,又能透過向量檢索找到語義相關的內容,從而大幅提升覆蓋率 (Recall),是目前最主流且效果最好的檢索策略。

檢索後處理 (Post-Retrieval Processing)

2.5 Rerank:從「找得全」到「選得準」的關鍵一步;更多 Embedding和Rerank模型說明在這

初步檢索(尤其是混合檢索)的目標是「找得全」,但這也意味著結果中可能混雜著一些相關性不高的內容。這時就需要 Rerank 來進行「二次精選」。

在初步檢索之後,Reranker 模型是提升 RAG 系統回應品質的第二道關鍵防線。

Reranker 模型的核心是其 cross-encoder 架構。與 embedding 模型(bi-encoders)分別為查詢和文件生成獨立的向量不同,cross-encoder 將「查詢」和「單一候選文件」作為一個整體同時輸入模型進行處理。這種設計允許模型在內部對查詢和文件的每一個 token 之間進行深度、細粒度的注意力計算,從而給出一個極其精準的相關性分數。

這種高精準度的代價是計算量遠大於 bi-encoder,因此它不適合用於對整個龐大知識庫進行全面篩選,而是作為「精煉器」,僅對由 embedding 模型快速召回的前 k 個(例如前 20-50 個)最相關的候選文件進行重新排序。

常見的評估指標包括命中率(Hit Rate)和平均倒數排名(MRR, Mean Reciprocal Rank)。研究顯示,優秀的重排序模型能持續提升幾乎所有嵌入模型的這兩項指標。

根據現有研究,市場上主流的 Reranker 模型包括 BAAI/bge-reranker-v2-m3、Jina AI 的 jina-reranker-v2-base-multilingual 以及由阿里巴巴開發的 Qwen3-Reranker 系列。一份關鍵的評測報告對這些模型在多個檢索相關基準上的表現進行了比較,包括 MTEB-R(英文檢索)、CMTEB-R(中文檢索)、MMTEB-R(多語言檢索)和 MLDR(多語言長文件檢索)。

Embedding 快篩 vs. Reranker 精排: 嵌入模型適合快速從海量資料中找出「可能相關」的候選文件,但它無法完全抓住查詢和文件之間的細微差異。而 Rerank 模型則能更深入地分析每個候選文件的內容,進行更精確的相關性排序。兩者搭配,既保證了速度,也提高了最終結果的精確度。

補充觀點:Rerank 的價值 如果說初步檢索是為了「找得全」(High Recall),那麼 Rerank 的核心任務就是「選得準」(High Precision)。它像一位嚴格的評審,確保最終交給 LLM 生成答案的,是最高度相關的「黃金上下文」

在精煉階段,Reranker 模型的角色至關重要。近年來,Alibaba-NLP/Qwen3-Reranker 系列的發布,幾乎重新定義了 Reranker 模型的性能標竿

數據評測(如下表所示)清晰地揭示了 Qwen3-Reranker 的統治力。無論是在英文檢索(MTEB-R)、中文檢索(CMTEB-R)、多語言檢索(MMTEB-R),甚至是程式碼檢索(MTEB-Code)任務上,Qwen3-Reranker 的 4B 和 8B 版本都取得了遠超 BGE-reranker-v2-m3jina-reranker-v2-base-multilingual 等前代模型的成績。

Model Param MTEB-R CMTEB-R MMTEB-R MLDR MTEB-Code FollowIR
Qwen3-Embedding-0.6B 0.6B 61.82 71.02 64.64 50.26 75.41 5.09
jina-reranker-v2-base-multilingual 0.3B 58.22 63.37 63.73 39.66 58.98 -0.68
gte-multilingual-reranker-base 0.3B 59.51 74.08 59.44 66.33 54.18 -1.64
BGE-reranker-v2-m3 0.6B 57.03 72.16 58.36 59.51 41.38 -0.01
Qwen3-Reranker-0.6B 0.6B 65.80 71.31 66.36 67.28 73.42 5.41
Qwen3-Reranker-4B 4B 69.76 75.94 72.74 69.97 81.20 14.84
Qwen3-Reranker-8B 8B 69.02 77.45 72.94 70.19 81.22 8.05

(註:排序結果基於Qwen3-Embedding-0.6B的top-100向量召回結果進行排序)

數據明確顯示了重排序模型在優化搜索結果方面的顯著性。幾乎所有嵌入模型都透過重排序獲得了改進。重排序模型,特別是 CohereRerankbge-reranker-large (或其更新版本如 BGE-reranker-v2-m3),展現了將任何嵌入模型轉化為具有競爭力的模型的能力。

然而,引入重排序模型會增加延遲和系統複雜性。儘管開箱即用的重排序模型在某些推理任務上可能表現不佳,但透過微調可以實現最先進的性能。這也顯示了重排序模型在真實世界應用中,需要在模型大小、排名準確性以及延遲/吞吐量等系統要求之間取得平衡。

LLM 生成優化 (LLM Generation)

xinferenceOllama 中,不僅檢索與重排模型重要,最終用於生成答案的模型也應根據需求選擇。

如果你的 RAG 流程(從數據處理到 Rerank)已經做得非常好,檢索到的上下文品質極高,那麼有時並不需要動用最強大的生成模型(如 GPT-4 等級)。Llama-3.1-70B-Instruct就足以生成優質、準確的答案。這同樣是在準確性和計算成本之間做出明智的權衡。

迭代優化與評估 (Iterative Optimization & Evaluation)

建立 RAG 系統並非一勞永逸,它是一個需要持續優化和迭代的過程。當系統上線後,我們需要一套機制來衡量其表現。

業界常見的做法包括:


總結

通過將實戰操作融入清晰的理論框架,您建立的 RAG 指南將會:

就臺灣本土大型語言模型(如 yentinglin/Llama-3-Taiwan 系列、taide/Llama-3.1-TAIDE-LX-8B-ChatMediaTek-Research/Llama-Breeze2 系列)以及國際知名模型(如 QwenLlama 3.x 系列)而言,現有資料主要針對這些 LLM 本身在如 TMLU、TMMLU 等語言理解基準測試上的表現進行評估。

嵌入模型和重排序模型是 RAG 系統中不可或缺的組成部分,它們共同確保了提供給 LLM 的資訊的相關性和準確性。雖然有通用的基準測試(如 MTEB、C-MTEB)和評估方法(如 NDCG@10、Hit Rate、MRR)來評估這些模型,且已證明它們對 RAG 系統性能的關鍵影響,但針對特定 LLM(如臺灣本土模型、Qwen、Llama 3.x 系列)作為獨立嵌入/重排序組件的詳細評比數據,在當前資料中尚不充分。這類數據通常會是更專門化的 RAG 系統組件性能評估研究的範疇,並且需要根據具體的應用場景、知識庫特性(如語言、長度)和系統資源限制(如延遲、計算成本)來進行細緻的選擇與優化。

嵌入模型和重排序模型是 RAG 系統中不可或缺的組成部分… 隨著 Qwen 3 系列 和 Google Gemini 等新一代模型的出現,MTEB 和相關評測的榜單正在被不斷刷新。這表明模型的能力邊界在持續擴展,但也對開發者提出了更高的要求。

最終,成功的 RAG 系統不再僅僅是選擇某個「最好」的模型,而是一個持續評估、測試和權衡的過程。開發者需要根據具體的應用場景、知識庫特性(語言、領域、長度)、以及系統資源限制(延遲、計算成本),動態地選擇最適合的 Embedding 和 Reranker 組合,才能在資訊檢索的「召回」與「精煉」兩個戰場上都取得勝利。

關於這些特定模型在作為 RAG 系統中的嵌入模型重排序模型方面的獨立基準測試結果,目前提供的公開資料並未明確提供詳盡的數據。這可能歸因於以下幾點:


📖 如需進一步了解,請參閱原文:
https://blog.twman.org/2024/07/RAG.html