搜尋意圖: 如果你在找「嵌入模型 是什麼」或「嵌入模型 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 將文字、圖像、音頻等高維度輸入轉換為低維稠密向量表示的模型,使語義相近的內容在向量空間中距離相近。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
將文字、圖像、音頻等高維度輸入轉換為低維稠密向量表示的模型,使語義相近的內容在向量空間中距離相近。
嵌入模型的核心思想是「語義相似 = 向量空間相近」。傳統的文字表示方法(如 one-hot encoding)將每個詞表示為只有一個位置為 1 的高維稀疏向量,無法表達詞與詞之間的語義關係(「貓」和「狗」的 one-hot 向量正交,無法反映兩者都是動物的語義關聯)。嵌入模型透過大規模語料訓練,學習到能夠捕捉語義關係的緻密向量表示,使得「國王 - 男人 + 女人 ≈ 女王」這樣的語義運算成為可能。
嵌入模型的發展脈絡
- Word2Vec(2013):由 Google 提出,包含 CBOW(連續詞袋)和 Skip-gram 兩種架構,透過預測上下文詞或被遮蔽詞的方式學習詞向量。每個詞對應一個固定向量,無法處理一詞多義。
- GloVe(2014):基於全局共現統計的詞向量,結合全局與局部上下文資訊。
- ELMo(2018):使用雙向 LSTM,為每個詞生成上下文相關的向量,同一個詞在不同句子中有不同嵌入,解決多義問題。
- BERT(2018):Transformer 架構的雙向預訓練語言模型,生成動態的上下文嵌入,在多數 NLP 任務上取得突破。
- Sentence Transformers / SBERT(2019):針對句子級語義相似度優化的 BERT 變體,透過孿生網路架構(Siamese Network)訓練,生成可直接用餘弦相似度比較的句向量。
- 現代大型嵌入模型(2023-2025):如 OpenAI text-embedding-3 系列、Cohere Embed、voyage-3 等,基於更大規模的 LLM 骨幹訓練,支援多語言、多模態,維度可達數千。
嵌入的維度與品質
嵌入向量的維度(如 384、768、1536、3072 維)影響模型能夠捕捉的語義細膩程度,但也影響儲存成本與計算效率。維度並非越高越好,需要根據任務和規模在品質與效率間取捨。衡量嵌入品質的常用基準測試包括:MTEB(Massive Text Embedding Benchmark)和 BEIR(Benchmarking IR),涵蓋語義相似度、資訊檢索、分類等多種任務。
核心應用場景
語意搜尋(Semantic Search):將查詢和文件都轉為嵌入向量,以向量相似度替代關鍵字匹配,能找到語義相關但用詞不同的結果(如搜尋「心臟疾病」能找到含「心肌梗塞」的文件)。
RAG(Retrieval-Augmented Generation):在 LLM 回答問題前,先用嵌入模型從知識庫中檢索相關段落,將其作為上下文餵給 LLM,提升答案的準確性和可靠性。
向量資料庫(Vector Database):Pinecone、Weaviate、Qdrant、pgvector 等向量資料庫專門儲存和高效檢索嵌入向量,是現代 AI 應用基礎設施的重要組成。
推薦系統:將用戶行為和物品特徵嵌入到同一向量空間,以向量相似度計算用戶與物品的匹配度。
文件聚類與分類:對文件嵌入進行 K-Means 或 DBSCAN 聚類,或作為分類器的輸入特徵。
跨模態搜尋:多模態嵌入模型(如 CLIP)能將圖像和文字嵌入到同一空間,支援「用文字搜圖像」或「用圖像搜文字」。
嵌入模型與生成模型的區別
嵌入模型(Encoder)的輸出是固定維度的向量,設計用於表示輸入的語義;生成模型(Decoder / LLM)的輸出是文字序列,設計用於生成內容。兩者常結合使用,嵌入模型負責「找到」相關資訊,生成模型負責「理解並回答」問題,即 RAG 架構的分工模式。
常見問題
嵌入模型和 LLM 有什麼不同,可以用 LLM 替代嵌入模型嗎?
兩者在設計目標和架構上有本質差異。嵌入模型(通常是 Encoder-only Transformer,如 BERT 系列)的設計目標是將輸入壓縮成一個固定長度的向量,以捕捉語義資訊,推理速度快、計算成本低,特別適合批次處理大量文件並儲存於向量資料庫。LLM(通常是 Decoder-only Transformer,如 GPT 系列)的設計目標是生成文字,雖然也可以提取最後一層的隱藏狀態作為嵌入,但效果通常不如專門針對嵌入任務優化的模型,且推理成本高得多。實務上,建議使用專門的嵌入模型(如 text-embedding-3、voyage-3)做檢索,用 LLM 做生成,兩者分工明確,整體效益更高。
如何選擇適合的嵌入模型?
選擇嵌入模型需要考慮幾個維度。第一,任務類型:語意搜尋、分類、聚類對嵌入品質的需求側重不同,可查閱 MTEB Leaderboard 中對應任務類型的排名。第二,語言支援:若需要中文或多語言支援,應選擇明確支援目標語言且在相應語言基準上有測試結果的模型,避免只在英文上驗證的模型。第三,向量維度:更高維度通常品質更好但儲存和計算成本更高;部分模型支援可變維度(如 Matryoshka Representation Learning),可根據需求調整。第四,延遲與吞吐量:批次離線嵌入優先考慮吞吐量,即時查詢嵌入需考慮延遲。第五,成本:API 計費型嵌入模型(如 OpenAI text-embedding)按 token 計費,大量文件時成本可觀;開源模型(如 nomic-embed、bge-m3)可自行部署,長期成本更低。
嵌入向量的維度越高,效果就越好嗎?
不一定。高維向量能夠表達更豐富的語義資訊,在複雜任務上可能有優勢,但也帶來更高的儲存成本(向量資料庫的記憶體佔用與維度成正比)、更慢的相似度計算速度,以及在某些場景下的「維度詛咒」問題。實務上,選擇維度應根據具體任務的品質要求和系統資源限制做取捨。近期出現的 Matryoshka Representation Learning(MRL,如 OpenAI text-embedding-3 模型支援此特性)允許截取嵌入向量的前 N 維使用,在保留大部分語義資訊的前提下降低維度,是一個靈活的平衡方案。許多應用在 256 到 768 維之間即可取得相當好的效果,不必盲目追求更高維度。