標記化和位元組對編碼
標記化將文本分割成語言模型實際讀取的小單元,而位元組對編碼 (BPE) 是建構該詞彙的流行方法。
概述
It balances having a manageable vocabulary against handling any word the model might encounter.
深入探討
語言模型看不到原始字元或整個單字——它們看到的是標記、映射到文字片段的整數 ID。選擇這些片段是一種權衡:單字級詞彙量很大,並且會因看不見或拼寫錯誤的單字而窒息,而字符級詞彙量會使序列非常長。位元組對編碼採取了中間立場。 BPE 借鑒了 20 世紀 90 年代的資料壓縮演算法,從單個字元(或原始位元組)開始,反覆將最常見的相鄰對合併成一個新的標記,從而將詞彙量擴展到常見的子字。頻繁出現的單字變成單一標記,而罕見的單字則分成可重複使用的片段。 GPT 模型使用的位元組級 BPE 會對原始位元組進行操作,因此它可以表示任何 Unicode 文字(包括表情符號和任何語言),而不會出現詞彙表以外的故障。
技術洞察
BPE 訓練是貪婪且頻率驅動的。從基本字母表開始,它計算語料庫中的相鄰符號對,並合併最常見的符號對,將每次合併記錄為規則。重複此操作數千次會產生一個有序的合併清單和一個固定的詞彙表。在推理時,透過按順序應用這些合併規則來對文本進行編碼。這就是為什麼標記計數很少與單字計數相符:空格、大寫和罕見單字都會改變文字片段變成標記的方式,並且單字可以變成多個標記。
戰略影響
成本與預算
多年來,架構決策決定著效能和營運成本。
更明確的決策
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
品質管控
更好的工程選擇可以減少生產中的可靠性事故。
標記化和位元組對編碼的未來
代幣化正在積極重新思考。像 ByT5 這樣的位元組和字元級模型,以及新興的無令牌或「位元組潛在」架構,旨在完全放棄固定詞彙表,以便模型統一處理任何輸入和任何語言。研究人員也正在解決標記化的公平性問題——許多非英語和資源匱乏的語言目前每個句子的標記成本要高得多,從而提高了價格並縮小了有效上下文。預計分詞器會針對程式碼、數學和多語言平衡進行調整,並繼續進行實驗,將邊界推回到原始位元組。
現實世界的實施
GPT 和 Llama 模型使用 BPE 風格的標記器將提示轉換為網路處理的標記 ID。
API 定價和上下文視窗限制以令牌來衡量,因此令牌化直接影響成本和文字適合量。
透過將表情符號、程式碼和罕見單字拆分為可重複使用的子單字或位元組片段來優雅地處理它們。
透過位元組級編碼,在一個模型中支援多種語言,而無需每種語言使用單獨的字典。
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實際負載和資料條件下進行基準測試。
儀器監控錯誤、漂移和使用者影響。
在擴展之前準備回滾和事件回應路徑。
不斷探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Tokenization and Byte Pair Encoding quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常見問題
What is Tokenization and Byte Pair Encoding?
標記化將文本分割成語言模型實際讀取的小單元,而位元組對編碼 (BPE) 是建構該詞彙的流行方法。它平衡了擁有可管理的詞彙表和處理模型可能遇到的任何單字。
標記化會產生什麼供語言模型讀取?
模型對標記(代表字元、子詞或單字的整數 ID)進行操作,而不是對原始文字字串進行操作。
位元組對編碼如何建構其詞彙表?
BPE 從字元或位元組開始,貪婪地合併最頻繁的相鄰對,逐漸形成公共子字標記。
與字級標記化相比,BPE 等子字方法能解決什麼問題?
單字層級詞彙表無法辨識未見過的單字;子字標記化將罕見的單字分解為已知的片段,避免詞彙表外的問題,同時保持詞彙表的可管理性。
GPT 模型中使用的位元組級 BPE 有什麼優點?
對原始位元組進行操作意味著可以對每個可能的輸入進行編碼,因此無論語言或符號如何,都不存在真正未知的字元。
為什麼模型的標記計數通常與句子中的單字數不同?
子詞標記化可以將單字分成多個片段,並且對間距和大小寫敏感,因此標記計數很少等於單字計數。