Embedding
What?
向量(Vector) 是一個數學上的概念,本質上是「一串有方向與長度的數字」,在 AI 裡代表一段文字、圖片、語音的數值化表示。 在語意搜尋或語言模型中,「一段語言(例如一句話)」會被轉換成一個向量,以便計算語意上的相似度。
📚 例子: 「我喜歡狗」 → [0.32, -0.12, 0.98, ..., -0.55](長度為 384 或 1536 之類的浮點數列表)
Who?
- 語言模型(如 GPT):內部所有語言處理都是向量計算
- Retriever 系統:利用向量做語意搜尋
- 推薦系統:用向量表示商品、用戶、偏好
- 圖像搜尋/聲音分析:圖像/聲音也會被轉成向量進行匹配
When?
- 在 AI 中,早期用於圖像處理、NLP 的 Word2Vec(2013)開始普及
- 真正大量應用在語言模型、語意搜尋是從 BERT(2018) 之後
- 如今幾乎所有語言模型應用都基於向量運算
Where?
- 語意搜尋系統(RAG)中的 Retriever
- LLM Prompt Engineering 中的記憶查詢(如 embedding memory)
- 圖像識別與比對:臉部辨識、相似圖像搜尋
- 音樂、語音分析:聲音相似性比對
- 金融模型:將交易紀錄變成向量進行欺詐行為比對
Why?
- 向量讓「語言、圖像、聲音」變成電腦可理解與比對的形式
- 可計算相似度(如「我喜歡貓」 和「我討厭狗」可能比「我喜歡雞排」更相似)
- 是語意搜尋、推薦、分類、生成等 AI 功能的「底層表示法」
How?
📌 文字 → 向量的流程如下:
- 使用 嵌入模型(Embedding Model)
- 如:OpenAI embedding, BGE, E5, Instructor, Sentence-BERT 等
- 將輸入文字(詞、句子、段落)轉成一組 高維浮點數向量
- 通常是 384、768、1024、1536 維的數字列表
- 與其他文字向量進行比對(相似度計算,如 Cosine Similarity)
補充說明
📊 舉例:向量比對(語意搜尋核心)
| 文字 | 向量 |
|---|---|
| 我想請假 | [0.12, -0.34, ..., 0.99] |
| 我要休假 | [0.11, -0.33, ..., 0.98] |
| 我想吃雞排 | [0.88, 0.20, ..., -0.45] |
👉 雖然「請假」與「休假」沒有相同的字,但向量會「靠得很近」,語意搜尋就能找對。
🔁 延伸:向量 = AI 的語言
- 電腦無法理解「我想請假」的字面意思
- 但它能透過向量知道這句話「在語意空間上」接近哪些句子
- LLM 用的 attention、生成、分類… 本質上全是向量計算