快速回答:Embedding 是什麼?
Embedding(向量嵌入)是把文字、圖片等資料轉換成一串數字(向量)的技術,讓電腦能用數學方式「理解」語意。意思相近的詞彙,轉換出來的向量會靠在一起;意思不同的,向量就會離很遠。這是 AI 語意搜尋、推薦系統和 RAG(檢索增強生成)的核心技術。
Embedding 的正式定義
Embedding 是一種將高維度、離散的資料(如文字、類別)映射到低維度、連續的向量空間的技術。在自然語言處理中,文字 Embedding 將每個 Token 或句子轉換為固定維度的稠密向量(例如 768 維、1536 維或 3072 維),使得語意相似的內容在向量空間中距離相近。
白話解釋
世界地圖上每個城市都有座標(經度、緯度)。距離近的城市,座標也接近——台北和基隆的座標很接近,但台北和紐約差很遠。
Embedding 做的事一樣,只是對象是文字,而且維度從 2 維(經緯度)變成幾百到幾千維。它把每個詞彙或句子放到一張「語意地圖」上:
「貓」和「狗」靠在一起(都是動物),「貓」和「汽車」離很遠(意思不同),「國王」和「皇后」靠在一起(都是統治者)。
更有趣的是,這些位置之間的方向也有意義。在一些經典的 Word Embedding 模型中,「國王」減去「男人」再加上「女人」會得到接近「皇后」的位置。這代表模型學到了「性別」這個概念在向量空間中的方向。
這些位置不是人為規定的,是模型從大量文字中自動「學」出來的。模型觀察到「貓」和「狗」常常出現在類似的語境中(「我養了一隻」、「跑到花園裡」),因此把它們放在向量空間中相近的位置。
Embedding 怎麼運作?
整個流程分三步。
第一步:切 Token。把文字切成模型能處理的最小單位。「你好嗎」可能被切成「你」「好」「嗎」三個 Token,或是更細的 subword 單位。
第二步:Token 到向量。每個 Token 通過 Embedding 模型的神經網路,被轉換成一個高維度向量。例如 OpenAI 的 text-embedding-3-small 會把每個 Token 變成 1536 個數字組成的向量。
第三步:聚合。如果輸入是一個句子或一段文字(而不是單一個字),模型會用特定的策略(通常是最後一層的 CLS Token 或平均池化)把所有 Token 的向量合併成一個代表整段文字的向量。
最後得到的就是一個固定長度的數字陣列。不管你的輸入是 3 個字還是 3000 個字,輸出的向量維度都是一樣的(例如都是 1536 維)。
向量維度怎麼選
維度越高,能捕捉的語意細節越多,但計算和儲存成本也越高。
256-512 維:適合大量資料的快速初篩,例如從 100 萬筆商品中找出最可能相關的 1000 筆。
768-1024 維:大部分應用的甜蜜點。語意搜尋、RAG、分類任務用這個維度就足夠了。
1536-3072 維:需要極高精度的場景,例如法律文件的語意比對、學術論文的相似度檢測。
OpenAI 的 text-embedding-3 系列有一個特色:你可以在呼叫時指定想要的維度。模型原生維度是 3072,但你可以請求 256、512、1024 等較低維度,模型會用 Matryoshka Representation Learning(套娃式表示學習)自動壓縮,在大部分任務上精度損失很小。
相似度計算
有了向量後,怎麼判斷兩段文字的語意有多接近?最常用的方法是餘弦相似度(Cosine Similarity),計算兩個向量之間的夾角。
值越接近 1 代表越相似(夾角越小),越接近 0 代表越不相關(夾角接近 90 度),負值代表語意相反(但在實務中比較少見)。
另一個常用的方法是歐幾里得距離(L2 Distance),算兩個向量在空間中的直線距離。距離越短代表越相似。
兩者的差別:餘弦相似度只看方向,不看長度;歐幾里得距離同時考慮方向和長度。如果你的向量已經做過正規化(長度都是 1),兩者的排序結果是一樣的。大部分場景用餘弦相似度。
Embedding 在 RAG 中的角色
RAG(Retrieval-Augmented Generation,檢索增強生成)是 2026 年企業 AI 應用最重要的架構模式,而 Embedding 是 RAG 的引擎。
RAG 的完整流程
準備階段(離線處理):
一、把企業知識庫的文件(PDF、Word、網頁、Confluence 頁面等)收集起來。
二、把每份文件切成小段(Chunking)。常見的切法有固定長度(每 500 字切一段)和語意切割(按照段落、章節、或語意完整性切割)。
三、用 Embedding 模型把每段文字轉成向量。
四、把向量和原文一起存進向量資料庫。
查詢階段(即時處理):
一、使用者提問,例如「公司的年假政策是什麼?」
二、把問題用同一個 Embedding 模型轉成向量。
三、在向量資料庫中找出和問題向量最相似的 Top-K 段文字(例如前 5 段)。
四、把這些文字段落和使用者的問題一起傳給 LLM,請 LLM 根據這些資料回答。
五、LLM 產出答案,因為有了具體的來源資料,答案的準確度比直接問 LLM 高很多,而且可以附上引用來源。
Chunking 策略比較
Chunking 的方式直接影響 RAG 的效果。
| 策略 | 做法 | 優點 | 缺點 |
|---|---|---|---|
| 固定長度 | 每 N 個字切一段 | 簡單、可預測 | 可能切斷語意 |
| 重疊切割 | 固定長度但前後重疊 | 減少語意斷裂 | 儲存量增加 |
| 段落切割 | 按段落或換行符號切 | 保留語意完整性 | 段落長度不一 |
| 語意切割 | 用模型判斷語意邊界 | 效果好 | 計算成本高 |
| 遞迴切割 | 先按大段再按小段 | 彈性好 | 實作複雜 |
實務經驗:大部分專案用固定長度加重疊(例如每段 500 字,前後重疊 100 字)作為起點就足夠了。如果效果不好,再嘗試語意切割。Chunk 太小會遺失上下文,太大會稀釋重點。
向量資料庫比較
| 資料庫 | 類型 | 特色 | 適用場景 |
|---|---|---|---|
| Pinecone | 全託管雲端 | 開箱即用、自動擴展 | 快速原型、中小型專案 |
| Weaviate | 開源 + 雲端 | 支援混合搜尋、多模態 | 需要語意+關鍵字混合搜尋 |
| Milvus | 開源 | 高效能、大規模 | 百萬筆以上的大型專案 |
| Chroma | 開源 | 輕量、易上手 | 本地開發、小型 RAG |
| pgvector | PostgreSQL 擴充 | 不需額外資料庫 | 已用 PostgreSQL 的專案 |
| Qdrant | 開源 + 雲端 | Rust 實作、高效能 | 效能要求高的場景 |
選擇的判斷標準:如果你已經在用 PostgreSQL,pgvector 是最低摩擦的選擇。如果你不想管基礎設施,Pinecone 的全託管服務最省事。如果資料量大(百萬筆以上)且需要自己部署,Milvus 或 Qdrant 的效能比較好。如果是開發階段的原型,Chroma 最快上手。
常見應用場景
語意搜尋:傳統搜尋引擎是「關鍵字比對」——使用者搜「筆記型電腦」只會找到包含這幾個字的結果。語意搜尋用 Embedding 理解意思,使用者搜「可以帶著移動辦公的電腦」也能找到「筆記型電腦」的結果,因為它們的向量很接近。
推薦系統:把使用者的行為(看過什麼、買過什麼)和商品都轉成向量,在向量空間中找出「使用者向量」附近的「商品向量」作為推薦。這就是 Netflix、Spotify 推薦系統的核心技術之一。
重複內容偵測:比對兩篇文章的向量相似度。即使改寫了措辭,只要意思相近,向量就會接近。可以用來檢測抄襲、去重複。
文件分類與歸檔:把大量文件轉成向量,用聚類演算法(K-means、DBSCAN)自動分組。不需要人工定義類別,模型會根據語意自動找出群組。
異常偵測:在資安領域,把正常的網路流量或使用者行為轉成向量,建立「正常行為」的向量分佈。新的行為向量如果離正常分佈太遠,就標記為異常。
客服自動分流:把客戶的問題轉成向量,和預定義的問題類別向量做比對,自動判斷這個問題屬於哪個類別(退款、技術支援、帳號問題),然後分配給對應的客服團隊。
安全與限制
Embedding 模型的訓練資料偏見。模型從大量文字中學習語意關係,如果訓練資料中有偏見(例如特定性別和職業的關聯),Embedding 也會學到這些偏見。這在招聘系統、信用評分等高影響決策中是重要的考量。
資料洩漏風險。把敏感文件送到第三方的 Embedding API(如 OpenAI、Cohere),文件內容會離開你的基礎設施。如果資料有機密性要求,考慮使用開源模型(如 BGE-M3)在自己的伺服器上運行。
模型鎖定(Vendor Lock-in)。不同模型產出的向量格式不同,不能互換。如果你用 OpenAI 的模型建了向量資料庫,之後想換成 Cohere 的模型,所有向量都要重新生成。選擇模型時需要考慮這個切換成本。
向量反推風險。理論上,Embedding 向量可能被用來部分還原原始文字。雖然目前的技術還無法完全從向量反推出原文,但在極度敏感的場景(如醫療紀錄、法律文件)下,即使是部分還原也可能構成隱私風險。
常見問題
Embedding 和 Token 有什麼關係?
Token 是文字的最小切割單位,Embedding 則是把每個 Token(或一段 Token 的組合)轉換成向量。Token 是「切」,Embedding 是「翻譯成數字」。兩者是 LLM 處理文字的連續步驟:先切 Token,再把 Token 轉成 Embedding 向量。
什麼是向量資料庫?
向量資料庫(Vector Database)是專門儲存和檢索向量的資料庫,支援高效的相似度搜尋。你可以把它想成一個特殊的搜尋引擎,輸入是一個向量,輸出是最接近的其他向量。常見的有 Pinecone、Weaviate、Milvus、Chroma。
中文的 Embedding 效果好嗎?
2026 年主流模型對中文的支援已大幅改善。Qwen3-Embedding 在中文基準測試上表現最好,BGE-M3 是開源多語言的首選,OpenAI 的 text-embedding-3 系列對中文也有不錯的支援。選擇時建議用自己的資料集做評估,因為不同領域(醫療、法律、科技)的中文表現差異可能很大。
Embedding 的維度越高越好嗎?
不一定。高維度能捕捉更多語意細節,但增加儲存空間和計算時間。100 萬筆 1536 維的向量大約需要 6 GB 的記憶體。如果你的場景是快速檢索,降到 512 維可能只損失 2-3% 的準確度但大幅減少成本。
RAG 和 Embedding 是什麼關係?
RAG 讓 LLM 在回答前先從外部知識庫檢索資訊,Embedding 是 RAG 中「檢索」這一步的核心技術。它把文件和查詢都轉成向量,用相似度找出最相關的內容。沒有 Embedding,RAG 就只能退回到關鍵字搜尋。
Embedding 可以用在圖片嗎?
可以。多模態 Embedding 模型(如 CLIP、Cohere Embed v4、Jina CLIP)能同時處理文字和圖片,把它們映射到同一個向量空間。這讓你可以用文字搜尋圖片(「找出所有包含日落的照片」),或用圖片搜尋相似圖片。
參考資料
- Embeddings Guide — OpenAI — OpenAI Embeddings 官方指南
- Word Embedding — Wikipedia — Word Embedding 定義與歷史