Embedding 模型把文字轉成向量,是 RAG 檢索品質的關鍵;作者建議從中文表現、價格、速度、隱私四個維度選擇,中小企業起步可用免費的 Gemini text-embedding-004,準確度不夠再升級 OpenAI text-embedding-3-large,資料極度敏感則自架 BGE-M3,規模到 100 萬筆切片時再考慮自架與維度壓縮。
發布 2026-05-31 · 最後更新 2026-09-27 · 作者 賴家榮 Andy Lai
Embedding 模型把文字變成向量,是 RAG 檢索品質的關鍵。OpenAI、Gemini、本地模型該怎麼選?用四個維度幫您決定。
什麼是 Embedding?
把一段文字轉成「向量」(一組數字,例如 768 個浮點數)。語義相近的文字,向量距離近。RAG 用向量距離找最相關的切片。
主流模型對比
| 模型 | 維度 | 中文 | 價格 | 備註 |
|---|---|---|---|---|
| OpenAI text-embedding-3-large | 3072 | ★★★★★ | $0.13/M | 業界標竿 |
| OpenAI text-embedding-3-small | 1536 | ★★★★ | $0.02/M | 性價比高 |
| Gemini text-embedding-004 | 768 | ★★★★ | 免費(限額) | 整合 Google 生態 |
| Cohere embed-v3 | 1024 | ★★★★ | $0.10/M | 多語強 |
| BGE-M3 | 1024 | ★★★★ | 免費(自架) | 開源、可微調 |
| jina-embeddings-v3 | 1024 | ★★★ | $0.05/M | 長文支援 |
四個選擇維度
1. 中文表現
實測中文,OpenAI > Cohere ≥ BGE ≥ Gemini ≥ jina。但差距很小(5–10%)。
2. 價格
每 100 萬字大概 8–15 萬 tokens(中文)。換算:
- 1MB 文件 ≈ NT$5(OpenAI 3-small)
- 1MB 文件 ≈ NT$30(OpenAI 3-large)
- 1MB 文件 ≈ NT$0(Gemini 免費額度內)
3. 速度
本地模型(BGE):100ms/批
雲端 API:300–800ms/批(含網路)
4. 隱私
- 本地(BGE、自架):資料完全不出公司
- 雲端 API:依各家政策(OpenAI、Gemini 均承諾不用於訓練)
實務推薦
| 情境 | 推薦 |
|---|---|
| 中小企業 RAG 起步 | Gemini text-embedding-004(免費) |
| 中文 SEO / 內容 | OpenAI text-embedding-3-large |
| 多語跨國 | Cohere embed-v3 |
| 資料極度敏感 | BGE-M3 自架 |
| 長文(> 8K tokens 單段) | jina-embeddings-v3 |
維度選擇
維度越高 = 表達能力越強,但儲存與計算成本越高。中小企業建議:
- < 10 萬筆切片:768–1024 維足夠
- 10 萬–100 萬:1536 維
- 100 萬+:3072 維 + 維度壓縮(如 Matryoshka)
Matryoshka Embedding(俄羅斯娃娃)
2024 年的新技術——一個向量同時支援多種維度。例:3072 維的向量,截取前 512 維仍然可用(效能略降)。
好處:快速檢索用低維度、精確比對用高維度,省成本又不失準度。
OpenAI text-embedding-3 系列、Gemini 005 都支援。
實作建議
- 第一版用 Gemini text-embedding-004 起跳(免費)
- 準確度不夠時升級 OpenAI 3-large
- 規模到 100 萬筆考慮自架 BGE-M3
- 定期 Re-embedding(模型升級時要重做)
常見錯誤
- 用一個模型 embed 查詢、另一個 embed 文件(必須同一個)
- 沒對齊 normalize(cosine similarity 需要 unit norm)
- 切片太長(OpenAI 上限 8,192 tokens、Gemini 2,048)
- 沒做語言一致性檢查(混合語言效果差)
常見問題
Embedding 模型是什麼,在 RAG 中扮演什麼角色?
Embedding 是把一段文字轉成向量,也就是一組數字,例如 768 個浮點數。語義相近的文字,向量距離就近。RAG 靠向量距離找出最相關的切片,所以 Embedding 模型的品質直接決定檢索品質。
中文 RAG 該選哪個 Embedding 模型?
文章實測中文表現為 OpenAI 大於 Cohere、約等於 BGE、約等於 Gemini、約等於 jina,但差距只有 5 到 10%。實務推薦:中小企業 RAG 起步用免費的 Gemini text-embedding-004,中文 SEO 與內容用 OpenAI text-embedding-3-large,多語跨國用 Cohere embed-v3,資料極度敏感自架 BGE-M3,單段超過 8K tokens 的長文用 jina-embeddings-v3。
Embedding 費用大概多少?
OpenAI text-embedding-3-large 每百萬 tokens $0.13,3-small $0.02,Cohere embed-v3 $0.10,jina-embeddings-v3 $0.05,Gemini text-embedding-004 在限額內免費,BGE-M3 開源自架免費。中文每 100 萬字約 8 到 15 萬 tokens,換算 1MB 文件用 OpenAI 3-small 約 NT$5、3-large 約 NT$30、Gemini 免費額度內約 NT$0。
向量維度該選多少?
維度越高表達能力越強,但儲存與計算成本越高。中小企業建議:切片少於 10 萬筆用 768 到 1024 維,10 萬到 100 萬筆用 1536 維,100 萬筆以上用 3072 維並搭配 Matryoshka 維度壓縮。Matryoshka 是 2024 年的技術,一個 3072 維向量截取前 512 維仍可用,快速檢索用低維、精確比對用高維,OpenAI text-embedding-3 系列與 Gemini 005 都支援。
使用 Embedding 模型常見的錯誤有哪些?
四個常見錯誤:用一個模型 embed 查詢、另一個模型 embed 文件,兩者必須相同;沒對齊 normalize,cosine similarity 需要 unit norm;切片太長,OpenAI 上限 8,192 tokens、Gemini 為 2,048;沒做語言一致性檢查,混合語言效果差。另外模型升級時要定期 Re-embedding。