分词(Tokenization)
分词(Tokenization)是什么?
分词是 AI 模型在读取你的文本之前把它切成小块的方式:模型把单词拆成可数学处理的小块的做法。
一图看懂
- 别称
- 文本分词子词分词Byte-pair encoding (BPE)词法分析分词(英式拼写 tokenisation)
- 主要用途
- 把原始文本转换为数值 token 序列供 AI 模型处理通过子词分解处理生僻或不寻常的词在模型架构中平衡词表大小与序列长度诊断由意外 token 切分引起的提示解读问题
- Key features
- 在模型处理之前把文本转换为整数 token 序列子词方案通过把生僻词分解为熟悉片段来处理它们Token 边界影响模型如何关联相关术语与概念语言、拼写与格式选择与分词器行为相互作用
准备好开始创作了吗?
执导场景、设计角色、完成整部影片
一站式 AI 创作平台,定价简单透明,无速度节流,搭配无限 Canvas,让创作发挥到极致。
对比与差异
Compared with related concepts
分词与语言模型中的词表概念不同,但紧密相关。模型的词表是它所认识的全部 token 类型:分词器能产出、且模型能处理的、固定的整数索引列表及其对应的文本片段。分词是把输入文本映射为从这一词表中抽取的序列的过程。词表更大的模型能把更多不同概念表示为单个 token,而词表较小的模型可能把相同概念拆分到多个 token 上。分词也不同于嵌入(处理的下一步):嵌入把每个 token 整数转换为一个编码其含义的高维数值向量,而分词仅把文本转换为一串不编码任何语义信息的整数索引。
可以这样理解…
想象你在读一封手写信,有些词完全清晰,另一些则被涂污或以陌生字体写就。你的大脑把清晰的词作为整体单位处理,瞬间就能理解。对被涂污或陌生的词,你会逐个字母拆解,从你能辨认的片段中拼凑出最佳猜测。这大致就是子词分词的运作方式:熟悉的常见词被作为单个 token 处理;不寻常、生僻或畸形的词被拆成其组成部分,再从熟悉的子词片段中重建,模型尽其所能从这些部分推断出预期的含义。
实用提示
当某个提示术语没有产出预期结果时,考虑问题是否出在分词而非模型知识上。试着把不寻常的拼写、创意复合词或技术行话替换为更标准的替代说法,它们更可能被分成单个、表示充分的 token。例如,如果对某种冷门技法的风格引用没有奏效,试着用平实的词语描述该技法的视觉特质,而不是使用它的名字:描述性语言可能比名字本身分词得更可靠、关联得更稳定。这种从标签到描述的重构,是针对分词相关解读失败最有效的提示调试技巧之一。
类型与变体
主要的分词方式代表了在词表大小、序列长度与新词处理之间的不同权衡。词级分词把每个不同的词映射为单个 token,产出短、直觉易懂的序列,但需要庞大的词表,且对未知词完全失效。字符级分词以单个字符作为 token,把词表压缩到几百项,但产出非常长、处理代价高的序列。子词分词是现代语言模型中的主流方式,介于两者之间:byte-pair encoding 迭代地把高频字符对合并为复合 token;WordPiece 使用一个概率性准则来决定合并;SentencePiece 是一种与语言无关的实现,在分词前把输入视作原始字节流,使其在不同语言与字符集之间更稳健。每种方案产出 token 粒度、词表覆盖与序列长度的不同平衡,进而影响模型处理提示的效率,以及它如何处理熟悉与新词之间的边界。
准备好在 Morphic 里做第一个场景了吗?
试用 Morphic常见使用场景
分词支撑着与基于文本的 AI 系统的每一次交互,在从对话式 AI 到生成提示的所有语言模型使用中于背景里无形运作。当排查提示表现时,它会变得明确相关:如果某个特定术语尽管在提示中清晰出现,却被忽略、被误解,或与一个无关概念混淆,分词很可能是原因。在模型 API 之上构建 AI 应用的从业者,需要在代码中实现分词器,以准确估算 token 数,用于成本管理与上下文窗口规划。对 AI 视频生成创作者而言,分词意识是一项诊断技能:理解为什么一个不寻常的词可能无法引出预期的视觉关联,有助于把提示修订引向那些模型的分词器与训练共同处理得更可靠的术语。
准备好开始创作了吗?
执导场景、设计角色、完成整部影片
一站式 AI 创作平台,定价简单透明,无速度节流,搭配无限 Canvas,让创作发挥到极致。
常见问题(FAQ)
分词是在 AI 模型处理输入文本之前,把它切分为称为 token 的离散单元的过程。每个 token 是一段文本片段(一个词、词的一部分或一个标点),被转换为模型用以数学运算的数值索引。它对提示之所以重要,是因为一个术语被分词的方式,影响模型把它与相关概念关联的强度:一个被分为单个熟悉单位的词,往往比被拆成多个、关联较弱的子词片段的词,得到更可靠的解读。
当一个词生僻到分词器没有在其词表中为它分配单个专用 token 时,它就会被拆成多个 token。像 byte-pair encoding 这样的子词分词方案,通过把训练数据中最频繁的字符序列合并为复合 token 来构建词表。常见词作为单个 token 进入词表;不那么常见的词则必须由更小、更基础的片段组装而成。一个在训练数据中生僻或缺失的词,可能被拆成许多子词片段,每一片段都被模型独立处理,而非作为一个统一的语义单位。
分词通过决定模型对特定术语的解读有多可靠,以及它在提示中分配注意力有多均匀,来影响生成质量。分为单个、表示充分单位的术语,比拆成多个低频子词片段的术语,得到更强的习得关联与更一致的解读。对非常长的提示而言,token 序列也影响注意力分配:在非常长的输入中,序列开头与结尾附近的 token,比中间的 token 获得更一致的注意,这意味着提示结构的影响不止于词汇选择。
Byte-pair encoding 是一种子词分词算法,通过在训练语料中迭代地把最频繁共现的字符对合并为复合 token 来构建词表。它从单个字符开始,反复识别最常见的相邻字符对,把它们的合并形式加入词表,持续到达成目标词表大小为止。所得到的词表包含单个字符、常见音节、频繁词片段与完整常见词的混合,使任何输入文本都能被表示为从这一固定词表中抽取的 token 序列,无论具体的词在训练中是否出现过。
是的,分词表现因语言而异,这在很大程度上是因为大多数广泛使用的分词器是为英文文本设计并优化的。形态结构不同的语言(单词由许多有意义的构件组装而成,如芬兰语或土耳其语),每个单词往往需要远多于英文等价表达的 token,使其效率更低,有时处理得也更差。使用非拉丁字符的语言,或采用不同词边界惯例的语言,可能与分词器中的字符级假设以降低性能的方式相互作用。主要在英文数据上、用英文优化分词器训练的模型,作为分词设计选择的直接后果,通常在形态复杂或非拉丁字符的语言上表现较差。
不寻常的拼写与创意标点让 AI 模型困惑,主要是通过它们与分词的相互作用。一个拼写非常规的词,或一个加了标点、空格或大小写变化的熟悉词,可能与其标准形式分词不同,打断模型在两者之间所建立的习得关联。如果模型对一个词的标准形式(作为单个 token)有很强的关联,那么不寻常的形式可能被作为一串陌生的子词片段处理,模型把它与预期含义关联得不那么可靠。标准、常规的文本,通常比创意性的拼写选择产出更可预测的分词与更一致的模型行为。
上下文窗口上限以 token(而非词或字符)表示,因此分词直接决定了多少文本能落入模型可用的上下文中。一段用复杂技术词汇写就的提示,可能比用简单常见词表达的同等信息消耗多得多的 token,,即便词数相近,,因为不常见的术语会分词成多个子词片段。理解这一关系,有助于创作者通过在两者表达相同信息时优先选用常见、成熟的词汇,而非生僻的技术术语,来写出更省 token 的提示:把上下文窗口空间留给那些确实需要更多 token 的、真正具体的细节。
如果提示中某个特定术语没有按预期被解读,把分词作为一种可能原因来考虑,并尝试几种方法。首先,测试一个更简单的同义词或更常见的替代措辞是否产出更好的结果:具有单 token 表示的常见词被解读得更可靠。其次,试着用概念的视觉特质或特征来描述它,而不是使用某个具体的名字或标签,尤其对那些在模型训练数据中可能生僻的技术行话或冷门引用。第三,试着把关键术语放在提示更靠前的位置,使它获得更强的注意力加权。在多次生成中系统性地变动这些因素,能识别出问题是分词相关,还是反映了模型知识中的真实缺口。
会。不常见的词、生造的复合词,或在训练数据中不频繁出现的技术行话,很可能被拆成多个子词 token,而它们各自的含义与预期的整体不同。一个虚构的品牌名或一个创意复合形容词,可能被切分成模型会与完全不同概念关联的方式,产出混乱或离题的输出。用常见的描述性词汇重新表述,通常是最有效的变通办法。
在同时处理文本与图像的多模态模型中,一种类似的分词形式适用于视觉输入。图像被分割为固定尺寸的块(小的像素区域),随后被编码为视觉 token,与文本 token 并列被模型处理。这使模型能在一个统一的序列中同时关注文本与视觉信息。一些架构会根据分辨率为每张图像使用不同数量的 token,这会影响留给提示文本部分的上下文预算。
在 AI 视频生成中,提示 token 上限定义了在单次生成请求中能向模型传递多少描述信息。高度详尽、指定主体、环境、布光、摄影机运动、风格与氛围的提示,可能消耗可观的 token 预算,有可能把较早的描述元素挤出模型最专注的处理范围。写出聚焦、有优先级、高效利用可用 token 的提示(而非把每一个可能细节都列尽),往往比极度冗长的描述产出更好的生成结果。