語言人工智慧指南

詞片標記化

WordPiece 是子字標記化演算法,為 BERT 和許多 Google 模型提供支持,將單字分割成可重複使用的片段,以便模型可以處理具有固定詞彙表的任何文字。

閱讀時間約2分鐘最後更新

概述

It is why a model that has never seen 'unhappiness' can still understand it by reading 'un', '##happy', and '##ness'.

深入探討

WordPiece 建立子詞單元的詞彙表,而不是整個單字或單字。從單一字元開始,它貪婪地合併最能增加訓練語料庫可能性的符號對,重複直到達到目標詞彙量(BERT 使用大約 30,000 個標記)。在推理時,它貪婪地從左到右標記,匹配詞彙表中最長的子詞,然後繼續處理其餘部分。單字內的延續部分標示為「##」前綴,因此「playing」變成「play」+「##ing」。這解決了詞彙表外的問題:罕見或未見過的單字簡單地分解為已知的片段,如果需要的話可以分解為單個字符,而常見的單字則保留為單個標記以提高效率。

技術洞察

WordPiece 與位元組對編碼的不同之處在於其合併標準。 BPE合併最頻繁的相鄰對; WordPiece 合併最大化訓練資料可能性的對,粗略地選擇聯合頻率最超過其部分頻率乘積的對。 「##」標記區分詞首片段和後續片段,讓分詞器在解碼回文字時明確地重建詞邊界。

戰略影響

速度與規模

語言工作流程可以在不犧牲一致性的情況下更快地移動。

交通與覆蓋範圍

它擴展了跨語言和溝通方式的訪問。

更明確的決策

團隊可以花更多時間進行判斷,而自動化則可以處理重複。

WordPiece 代幣化的未來

較新的大型語言模型越來越青睞位元組級 BPE(GPT 系列)或 SentencePiece 一元模型,它們避免了特定於語言的預處理並處理任何 Unicode 輸入。 WordPiece 仍然是 BERT 派生編碼器的基礎,仍然廣泛部署用於搜尋和分類。預計在生產 NLP 中繼續使用,同時研究無分詞器的位元組和字符模型,最終可能完全減少對固定子詞詞彙的依賴。

現實世界的實施

BERT 對 Google 搜尋中的搜尋查詢進行標記,將不熟悉的術語分解為子詞,以便模型仍可符合相關頁面。

Hugging Face 的 BertTokenizer 使用 WordPiece 將原始文字轉換為饋送到 BERT 的令牌 ID,以進行情緒分析和命名實體識別。

多語言 BERT 使用跨 100 多種語言的共享 WordPiece 詞彙表,讓片段可以在相關腳本中重複使用。

DistilBERT 和臨床/生物醫學 BERT 變異體繼承了 WordPiece,透過將罕見的醫學術語(例如「肺塵埃沉著病」)拆分為已知的片段來處理它們。

風險與防護欄

幻覺的事實可以悄悄地進入報告、支持流程或研究成果。

及時的敏感性可能會在類似的請求中產生不一致的結果。

如果存取控制薄弱,敏感文字資料可能會暴露。

實施路線圖

1

在推出之前定義輸出格式、語氣和品質標準。

2

當準確性很重要時,請使用可信任來源進行地面回應。

3

為高風險輸出保留人工審查檢查點。

4

追蹤故障模式並定期重新訓練提示或工作流程。

不斷探索

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 WordPiece Tokenization 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 WordPiece Tokenization?

WordPiece 是子字標記化演算法,為 BERT 和許多 Google 模型提供支持,將單字分割成可重複使用的片段,以便模型可以處理具有固定詞彙表的任何文字。這就是為什麼從未見過「不快樂」的模型仍然可以透過閱讀「un」、「##happy」和「##ness」來理解它。

WordPiece 輸出中的「##」前綴表示什麼?

WordPiece 用“##”標記子字延續,因此“playing”變成“play”+“##ing”,讓解碼器重建字邊界。

原始 BERT 使用的 WordPiece 詞彙量大約有多大?

BERT 使用大約 30,000 個子字單元的 WordPiece 詞彙表,平衡覆蓋範圍與嵌入表大小。

WordPiece 的合併標準與標準位元組對編碼有何不同?

BPE 合併最頻繁的相鄰對,而 WordPiece 合併最能增加語料庫可能性的對,優先考慮聯合頻率超過其部分乘積的對。

WordPiece 如何處理訓練期間從未見過的單字?

未見過的單字被分解為最長匹配的已知子單詞,退回到單個字符,這解決了詞彙表外的問題。

在推理時,WordPiece如何選擇如何分割單字?

WordPiece 貪婪地進行標記,從目前位置開始匹配最長的詞彙條目,然後重複其餘部分。