语言人工智能指南

子词标记化

子词标记化将文本分割成小于单词但大于字符的单元,例如“标记”加“化”。

阅读时间:2分钟最后更新

概述

这是现代语言模型将文本转化为实际处理的离散ID的标准方式,平衡词汇量与意义。

深入探讨

单词太多,无法一一列举(词汇量会很大,会漏掉生僻单词),而单个字符的意义不大,导致序列很长。子词标记化是一种折衷方案:它将常用单词保持完整,但将罕见或复杂的单词分解为有意义的片段。 “不快乐”可能会变成“un”、“happi”、“ness”。主要算法包括 Byte-Pair Encoding(GPT 使用)、WordPiece(BERT 使用)和 Unigram/SentencePiece(T5 和许多多语言模型使用)。这种方法可以优雅地处理看不见的单词,在相关单词之间共享片段(“play”、“playing”、“played”),并支持任何语言。每个片段映射到一个整数 ID,这些 ID 是模型嵌入层转换为向量的内容。

技术洞察

不同的算法以不同的方式选择子词:BPE 自下而上地合并频繁对,WordPiece 选择最能增加语料库可能性的合并,而 Unigram 从大量词汇开始,并修剪对可能性影响最小的标记。 WordPiece 使用“##”前缀标记单词内部片段,而 SentencePiece 将空格视为特殊符号,因此它可以直接在原始文本上工作,而无需对空格进行预分割,非常适合没有空格的语言。

战略影响

速度与规模

语言工作流程可以在不牺牲一致性的情况下更快地移动。

交通与覆盖范围

它扩展了跨语言和沟通方式的访问。

更清晰的判决

团队可以花更多时间进行判断,而自动化则可以处理重复。

子词标记化的未来

子词标记化将保持主导地位,因为它快速且紧凑,但它的弱点,数学、代码和罕见脚本中的尴尬分割,加上跨语言的标记成本不均匀,正在推动对字节级和无标记模型的研究。期待更智能、可能学习或自适应的标记器和更好的多语言公平性,这样非英语文本就不会因为每个句子有更多的标记而受到惩罚。

现实世界的实施

BERT 使用 WordPiece 标记化,标记“##ing”等延续片段来重建原始单词。

T5 和许多多语言模型使用 SentencePiece,它直接处理日语等无空格语言。

聊天模型将罕见的技术术语分割成已知的片段,而不是在未知的单词上失败。

分词器在“run”、“running”和“runner”之间共享子词,让模型有效地概括形态。

风险与防护栏

幻觉的事实可以悄悄地进入报告、支持流程或研究成果。

及时的敏感性可能会在类似的请求中产生不一致的结果。

如果访问控制薄弱,敏感文本数据可能会暴露。

实施路线图

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 Subword 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

下一个指南

句段标记化

常见问题

什么是子词代币化?

子词标记化将文本分割成小于单词但大于字符的单元,例如“标记”加“化”。这是现代语言模型将文本转换为它们实际处理的离散 ID 的标准方法,平衡词汇量大小和含义。

与使用整个单词相比,子词标记化解决了什么问题?

全词词汇量巨大,但仍然漏掉生僻词;子词使词汇表易于管理并优雅地分割未知单词。

BERT 使用的子词标记化算法中哪一个是?

BERT 使用 WordPiece,它选择最能增加训练语料库可能性的合并。

WordPiece 通常如何标记延续单词的片段?

WordPiece 在单词内部子词前加上“##”前缀,因此“playing”变为“play”加“##ing”。

为什么 SentencePiece 非常适合日语等语言?

SentencePiece 对原始文本进行操作,并将空格编码为特殊符号,因此即使单词之间没有空格,它也能正常工作。

每个子词片段在到达模型之前最终映射到什么?

每个子字都分配有一个整数 ID,嵌入层将其转换为模型可以处理的向量。