iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
生成式 AI

生成式AI的奇妙旅程:從ChatGPT到個人化應用系列 第 8

Day 8|大型語言模型的語言基石:Tokenization 與 Embedding

  • 分享至 

  • xImage
  •  

大型語言模型的語言基石:Tokenization 與 Embedding

在回顧了 GPT 模型一路以來的演進與突破後,我們已經了解了這些模型為何能在語言理解與推理能力上不斷提升。然而,再先進的 GPT-5 或 GPT-4o,本質上仍然建立在一個相同的基礎——它們需要先把人類語言「數位化」成機器能理解的形式。

換句話說,要讓 AI 讀懂我們的文字,第一步就是把語言拆解與編碼。這正是 Tokenization(分詞) 與 Embedding(嵌入) 的角色所在。

為什麼 Token 與 Embedding 如此重要?

Tokenization 和 Embedding 是 LLMs 處理和理解語言的基礎步驟,它們將人類的非結構化文本轉換為機器可計算的結構化數字形式。

1. Tokenization(分詞/代幣化):語言的結構化

什麼是 Tokenization?

Tokenization 是指將原始文本轉換為一系列 tokens(標記) 的過程。這些 tokens 可以是單個字符、單詞的一部分,甚至是整個單詞或句子片段。這是任何實際建模或資料處理前的 第一步
https://ithelp.ithome.com.tw/upload/images/20250922/20170406Zowx0uyV6e.jpg
The dog eats the bones 經過分詞器轉換後,每個詞會對應到唯一的 token ID。

Tokenization 的重要性:

  • 模型輸入的必需品: 分詞將非結構化文本轉換為機器學習模型可以理解和處理的結構化形式
  • 成本與效率的關鍵: 大型語言模型(LLMs)的運算和推論成本都是以 Tokens 數量 來計算的。相同的文本,如果能用較少的 Tokens 數來運算,推論速度會更快,成本也會更划算。
  • 中文處理的挑戰: 由於中文等語言不像英文有明確的空格分隔,分詞方法顯得尤為關鍵。不同的 LLMs 使用的分詞器(Tokenizer)不同,導致相同的繁體中文文本拆出來的 Tokens 數量差異巨大,甚至可以達到兩倍之多。

Tokenization 的背後原理(常用的子詞分詞法):

為了平衡詞彙表大小、處理未知詞(OOV)並保留語義信息,現代 LLMs 通常採用子詞粒度 Tokenization,包括以下幾種核心算法:

算法名稱 核心思路與原理 應用範例
Byte-Pair Encoding (BPE) 透過迭代合併文本中最常見連續字符對或字節對,來創建新的子詞單元。這個過程重複進行,直到達到預設的詞彙大小。 GPT-2、RoBERTa、XLM 等模型是基於 BPE。
WordPiece 類似 BPE,但它選擇合併的字符對是基於合併後能最大程度地提高訓練數據的 可能性(likelihood),而不僅僅是頻率。 BERT 和 Google 的神經機器翻譯系統。
SentencePiece 是一種無監督的文本處理工具,它直接在原始文本上操作,將空格也視為普通符號。這對於中文等沒有明確空格的語言尤其有用,能確保分詞和合詞(detokenization)過程可逆。 SentencePiece 支持 BPE 和 Unigram Language Model 算法。

2. Embedding(嵌入/向量嵌入):賦予語義

什麼是 Embedding?

https://ithelp.ithome.com.tw/upload/images/20250922/20170406v2NhCQEHpq.jpg
向量嵌入(Vector Embedding),或簡稱嵌入,是主題、單字、圖片或其他任何數據的數字表示(向量)。它是一種將離散符號(如詞、句子)轉換成連續向量的方式,讓這些符號可以進入神經網路進行學習與推理。

Embedding 的重要性:

  • 捕捉語義: 嵌入捕獲了代幣的含義以及它與其他代幣的關係
  • 形成語義空間: 這些向量嵌入將每個代幣放置在一個高維空間中。語意相似的詞,其向量距離也會很近
  • 驅動 AI 應用: 向量嵌入是實現相似度搜尋(Similarity Search)、自然語言處理(NLP)應用(如分類、翻譯、情緒分析)、聊天機器人,以及推薦系統 的基礎。

Embedding 的背後原理(語義空間與類型):

語意空間(Semantic Space) 是 Embedding 的核心原理。在這個空間中,我們可以透過向量之間的幾何關係來觀察語言邏輯。

例如,Word2Vec 的經典關係證明了語意可以被計算:
$$ \text{vector("king")} - \text{vector("man")} + \text{vector("woman")} \approx \text{vector("queen")} $$

為了衡量向量之間的相似度,我們依賴數學方法,稱為相似度度量(Similarity Metrics),常見的方法有:

  1. 餘弦相似度 (Cosine Similarity): 測量向量空間中兩個向量之間的夾角餘弦,範圍在 -1 到 1 之間。
  2. 歐氏距離 (Euclidean Distance): 測量向量之間的直線距離,數值越大表示差異越大。
  3. 點積相似度 (Dot Product Similarity): 測量兩個向量的數量級和它們之間夾角餘弦的乘積。

詞向量的類型:

類型 定義與原理 解決的問題
靜態詞向量 每個詞對應一個固定向量,無論上下文如何都不變,代表詞的平均語意。 存在語義歧義問題(如 "bank" 在不同語境下的意思不同,但向量唯一)。
動態詞向量 詞的向量會依據不同上下文動態變化。模型利用 Transformer 結構全域編碼句子脈絡,辨識詞義。 能有效解決多義詞問題,提升語義精準度。已成為現代語言模型(如 BERT、GPT)的主流

三、Token 與 Embedding 的關係(補充)

簡單來說,Tokenization 是前處理步驟,將非結構化文本轉換為機器可以處理的結構化形式;而 Embedding 是表示步驟,將結構化單元轉換為可計算的語義

  1. Tokenization: 將原始文本分解成一系列 Tokens (e.g., "學校", "小明", "今天")。

    • 決定計算成本: 這個步驟至關重要,因為大型語言模型(LLMs)的運算和推論成本都是以 Tokens 數量來計算的。因此,相同的文本若能用較少的 Tokens 數來運算,推論速度會更快,成本也會更划算。
    • 繁體中文的挑戰: 由於不同模型使用的分詞器(Tokenizer)不同,相同的繁體中文文本拆出來的 Tokens 數量差異巨大,部分模型(如 Llama 2 與 GPT-3.5/GPT-4)比最佳化的分詞器(如聯發科 Breeze)多出高達兩倍的 Tokens,這直接影響了實際應用時的效率和費用。
  2. Embedding: 一旦文本被代幣化,每個 Token 都需要被轉換為一個向量(Embedding),這個向量攜帶了該 Token 的語義信息。

    • 語義空間的實現: Embedding 的作用是將代幣放置在一個高維空間中,形成一個可計算的語義空間。在這個空間中,語意相似的詞,其向量距離也會很近,這讓模型能夠理解並利用詞語在語義和句法上的相似性和差異
    • 動態語義捕捉: 現代 LLMs,如 BERTGPT,使用的詞向量是動態詞向量(Contextual Word Embeddings)。這類向量會依據不同上下文動態變化。模型利用 Transformer 結構自注意力(self-attention)機制來全局編碼句子脈絡,辨識詞義。
    • 解決歧義問題: 透過動態詞向量,模型能有效解決靜態詞向量無法處理的語義歧義問題(例如 "bank" 在「河岸」和「銀行」兩種語境下的意思不同),從而提取出更能充分代表整個語句訊息的向量

這些向量隨後被餵給像 GPT 這樣的神經網路模型進行學習與推理。因此,Tokenization 決定了模型看到的基本單元,而 Embedding 則決定了模型對這些單元含義的理解深度,是大型語言模型進行所有下游應用(如相似度搜尋、分類、翻譯等)的數學基礎。向量嵌入的強大功能也進一步被向量資料庫所利用,用於對圖片、文字等大量的非結構化和半結構化數據進行索引和搜尋。


上一篇
Day 7|GPT 模型發展史與進化
系列文
生成式AI的奇妙旅程:從ChatGPT到個人化應用8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言