LangChain & LLM··5 min read

LangChain 與 LLM 學習筆記 番外篇 — 這個系列用什麼模型?為什麼?

本篇重點

說清楚這個系列為什麼選 nomic-embed-textllama3.1:8b,以及怎麼用業界標準評估模型。

這篇是 Ep-1:RAG 技術架構 的番外補充。跑 RAG 需要兩種模型:嵌入模型(把文字轉向量)和生成模型(根據撈到的資料寫出回答)。這篇說明這個系列的選擇邏輯,以及業界怎麼評估這兩類模型。


為什麼全程用本地 Ollama?

說真的,身為台灣的開發者,在學習階段付錢買 API Key 根本不現實——跑個 RAG 實驗要先信用卡綁帳號、怕超量、怕被扣費,光這些心理負擔就夠打消學習動力了。

所以這個系列的選擇很直接:全程用本地 Ollama 跑,不需要任何 API Key,不花一毛錢。 你可以放心地跑一百次、改一百次,帳單永遠是 $0。

不確定自己的硬體能不能跑?先看番外篇:我的電腦能跑哪些本地模型?


嵌入模型:看 MTEB 排行榜

嵌入模型負責把文字轉成向量,直接影響「能不能撈到對的資料」。評估它的業界標準是 MTEB(Massive Text Embedding Benchmark)排行榜,涵蓋 58 個任務,是目前最全面的嵌入模型比較基準。

這個系列選用 nomic-embed-text

考量說明
MTEB 分數約 62.4 分,在同量級開源模型裡表現穩定(來源
資源需求極低僅 137M 參數、274 MB,CPU 就能跑,不需要 GPU
Ollama 原生支援ollama pull nomic-embed-text 直接用,免設定
長文本支援最大 8,192 token,比多數同類模型更長

嵌入模型完整對比:本地 vs 付費 API

學習階段一律用本地免費的就好。等哪天你要把 RAG 做成產品、上線服務真實用戶,再來考慮付費 API——那時候的需求(SLA、規模、多語言)跟現在完全不同。先把概念搞懂再說:

模型類型MTEB 分數費用向量維度特點
nomic-embed-text本地(Ollama)~62.4免費768本系列選用,輕量 CPU 可跑
mxbai-embed-large本地(Ollama)~64.7免費1024本地裡準確度最高,需較多 RAM
bge-m3本地(Ollama)~63.0免費1024中英日韓多語言,適合中文文件
text-embedding-3-smallOpenAI API~62.3$0.02 / 1M tokens1536雲端省事,維度可縮減至 512
text-embedding-3-largeOpenAI API~64.6$0.13 / 1M tokens3072OpenAI 最高品質,維度可縮減
embed-v4Cohere API~65.2$0.01 / 1M tokens1024付費 CP 值最高,多語言強

資料來源:MTEB LeaderboardEmbedding Model Specs 2026

切換到付費 API 只要換兩行,其餘不動:

# 原本(本地 Ollama)
from langchain_ollama import OllamaEmbeddings
embeddings = OllamaEmbeddings(model="nomic-embed-text")

# 換成 OpenAI(需要 OPENAI_API_KEY)
# uv add langchain-openai
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")

# 換成 Cohere(需要 COHERE_API_KEY)
# uv add langchain-cohere
from langchain_cohere import CohereEmbeddings
embeddings = CohereEmbeddings(model="embed-v4")

Chroma、Retriever、LLM 那幾行完全不用動——這就是 LangChain 抽象層的好處。


生成模型:看 Chatbot Arena

生成模型負責把撈到的參考資料跟使用者的問題整合起來,寫出最終回答。它決定的是 RAG 的「輸出品質」:能不能讀懂撈到的資料、有沒有老實照著資料回答(還是自己亂掰)、中文是否流暢。

怎麼比較哪個生成模型比較好?可以參考 Chatbot Arena(LMSYS) 的 Elo 排行——這個排行榜讓真實使用者在不知道模型名字的情況下,盲測兩個模型的回答後投票選優,是目前最貼近「人類真實感受」的評比方式,比跑 benchmark 分數更實用。

這個系列用 llama3.1:8b

考量說明
硬體需求合理Q4 量化後約 5 GB,8 GB 記憶體的機器就能跑(來源
指令遵循能力強能照著 RAG prompt 只根據參考資料回答,不亂補充
中文支援尚可在開源 8B 模型裡中文相對穩定
社群教學資源最多踩雷記錄豐富,遇到問題好找答案

本地也有更好的選擇: qwen3:8b(同樣免費,約 5 GB)。根據 Qwen3 Technical Report(arXiv 2505.09388) 和第三方 benchmark 比較,Qwen3-8B 在中文、多語言以及指令遵循能力上均優於 Llama 3.1 8B;如果你的中文場景較多,可以直接換用。只需把程式碼裡的 llama3.1 換成 qwen3 就好。


快速對照表

用途本系列(本地免費)本地升級付費 API
嵌入向量nomic-embed-textmxbai-embed-largebge-m3OpenAI text-embedding-3-large、Cohere embed-v4
文字生成llama3.1:8bqwen3:8bllama3.3:70bOpenAI gpt-4o-mini、Anthropic claude-haiku-4-5
視覺轉述(Ep-3)llama3.2-vision:11bllama3.2-vision:90b(需 GPU)OpenAI gpt-4o、Anthropic claude-sonnet-4-6

確認完模型,回去動手

回到 Ep-1 的完整實作ollama pull 兩個模型就能跑起來:

ollama pull llama3.1        # 生成模型(約 5 GB)
ollama pull nomic-embed-text # 嵌入模型(274 MB)

相關文章