Text Embedding 的應用:語意對齊(Semantic Alignment)概論
.作者:Jollen/
.日期:Mon Nov 10 2025 08:00:00 GMT+0800 (台北標準時間)
什麼是語意對齊(Semantic Alignment)
在前面的文章中,我們學會了如何以向量表示語言、計算語意距離、並透過語意空間建立語境。 既然提到 Text Embedding,就不能忽略「語意對齊(Semantic Alignment)」的觀念。語意對齊扮演很重要的角色,它是 LLM 的要角,例如:多模態(Multimodal)就需要語意對齊技術。
Text Embedding 並不是「生成(Generator)」的技術,所以它跟生成式 AI 的定位不同,但彼此卻扮演著互相輔助的角度。Text Embedding 是語意的編碼器(Semantic Encoder),如同前文所述,它能計算句子的語意相似度。簡而言之,Text Embededing 的語意對齊句子,能判斷句子中「應該補上什麼樣的詞」。
這種應用稱為語意補漏字(Semantic Fill Suggestion),是 Text Embedding 在非生成式語言任務中的典型應用之一;Vibe Coding 也使用類似的技術,來實作「Auto Completion」功能。
語意補漏字的概念
一般而言,若文章中出現漏字或語句不全的現象,「人類」通常會依靠「語感」與上下文關係來補全。Text Embedding 的語意補漏字原理也有異曲同工之妙;有點像「克漏字(詞)」。
不過,前提到 Text Embedding 不是生成式技術,所以它不會生成新文字,它的克漏字功能,比較像是「選擇題」。以一個簡單的範例來說明,此範例使用 text-embedding-3-small 模型,為句子選擇最佳的補字建議。
假設有一段文字:
「語意搜尋的核心觀念,在於讓語言變成可運算的____。」
這段文字需要編輯補齊,我們可以先準備幾個候選詞,例如:「表達式」、「模型」、「向量」、「結構」等,然後讓 text-embedding-3-small 模型來計算每個詞與原文的語意相似度(分數越高,代表語意越契合)。
// src/examples/semantic-fill-suggestion.js
import OpenAI from 'openai';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
// 餘弦相似度函式
function cosineSimilarity(a, b) {
const dot = a.reduce((s, v, i) => s + v * b[i], 0);
const norm = Math.sqrt(a.reduce((s, v) => s + v * v, 0)) * Math.sqrt(b.reduce((s, v) => s + v * v, 0));
return dot / norm;
}
async function main() {
const sentence = '語意搜尋的核心觀念,在於讓語言變成可運算的____。';
const candidates = ['表達式', '模型', '向量', '結構', '運算式', '運算子', '數學式'];
// 建立 Embedding 向量
const { data } = await client.embeddings.create({
model: 'text-embedding-3-small',
input: [sentence, ...candidates]
});
const base = data[0].embedding;
const others = data.slice(1).map(d => d.embedding);
console.log('\n語意補字建議(相似度由高至低):');
const ranked = candidates
.map((word, i) => ({
word,
score: cosineSimilarity(base, others[i])
}))
.sort((a, b) => b.score - a.score);
ranked.forEach(r => {
console.log(`${r.word} → ${r.score.toFixed(3)}`);
});
}
main();
執行結果:
語意補字建議(相似度由高至低):
運算式 → 0.483
運算子 → 0.445
表達式 → 0.330
數學式 → 0.319
向量 → 0.308
結構 → 0.292
模型 → 0.290
執行結果顯示「運算式」與原句子的相似度最高,所以我們得到「語意搜尋的核心觀念,在於讓語言變成可運算的運算式。」為最佳的完整句子;這就是語意對齊技術的觀念。
換句話說,Text Embedding 根據我們給的句子,找出最能對齊原句的語意。這就是「選擇題」的意思:並非根據上下文來生成新文字,text-embedding-3-small 模型只是純粹依據「語意距離」來找出近似語意。這就是 Semantic Alignment 的基本觀念。
Also read
Tags: rag, llm, text-embedding