Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com。
今天我們要探討 Embedding 模型,這是實作 語意檢索 與 RAG(檢索增強生成) 的核心技術之一。
Embedding 的品質,會直接影響檢索的精準度,因此選擇合適的模型非常重要。
Embedding(向量表示)是一種將文字轉換為向量空間中的數值表示的方法。
在語意檢索中,我們會將文章內容與使用者查詢都轉換成向量,然後透過**餘弦相似度(Cosine Similarity)**或其他距離度量來計算它們之間的語意相似度。
Embedding 模型可以:
參考 文章 與多方測試,以下是市面上主流的幾個 Embedding 模型:
模型名稱 | 語言支援 | 調用成本 | 效果表現(測試分數) | 特點 |
---|---|---|---|---|
OpenAI text-embedding-3-small | 英文為主 | 低 | 中等 | 速度快、價格便宜,但中文效果普通 |
OpenAI text-embedding-3-large | 英文佳,中文普通 | 中高 | 高 | 適合英文語料庫,中文檢索略遜 |
Google gemini-embedding-001 | 支援中英文 | 免費額度 | 最佳 | 表現最穩定,語意捕捉能力佳,尤其適合多語環境 |
Cohere multilingual-22-12 | 支援多語 | 中 | 中高 | 多語言支援佳,但精準度稍遜於 Google |
Sentence-BERT (開源) | 支援多語 | 免費(需自行部署) | 中 | 需自行訓練或調整,部署成本高,不適合快速開發 |
根據表格 Embedding Model Leaderboard,可以發現:
理由很簡單,總結三大關鍵:
表現最佳:在多個基準測試(包括語意相似、檢索效果)中領先
支援中文:PTT 資料是中文為主,這點非常重要
免費額度:Google 提供一定的免費額度,非常適合學習與開發
因此,對於我們的 PTT 文章智慧問答系統,選擇 Google gemini-embedding-001 作為主要的 Embedding 模型,能在效能與成本之間達到最佳平衡。
【Day 25】如何降低向量資料庫的成本 - 最佳化策略分享:我們將深入探討 如何降低向量資料庫的使用成本,分享幾個常見的成本壓縮手法,並結合實際案例分析。