跳至主要内容

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?​

📌 文字 → 向量的流程如下:​

  1. 使用 嵌入模型(Embedding Model)
    • 如:OpenAI embedding, BGE, E5, Instructor, Sentence-BERT 等
  2. 將輸入文字(詞、句子、段落)轉成一組 高維浮點數向量
    • 通常是 384、768、1024、1536 維的數字列表
  3. 與其他文字向量進行比對(相似度計算,如 Cosine Similarity)

補充說明​

📊 舉例:向量比對(語意搜尋核心)​

文字向量
我想請假[0.12, -0.34, ..., 0.99]
我要休假[0.11, -0.33, ..., 0.98]
我想吃雞排[0.88, 0.20, ..., -0.45]

👉 雖然「請假」與「休假」沒有相同的字,但向量會「靠得很近」,語意搜尋就能找對。

🔁 延伸:向量 = AI 的語言​

  • 電腦無法理解「我想請假」的字面意思
  • 但它能透過向量知道這句話「在語意空間上」接近哪些句子
  • LLM 用的 attention、生成、分類… 本質上全是向量計算