tokenizer
将文本切分为 token 的算法流程,包括预处理和 BPE 合并规则等,是自然语言处理中的基础组件。
核心事实
时间轴 (近 90 天)
实时成本计算依赖于准确的token计数,不同模型的tokenizer差异需要妥善处理。
模型迭代时,开发者需要关注 tokenizer 变化、上下文窗口调整等细节,并重新验证 API 接口、提示词适配和评估流水线。
不同模型可能使用不同tokenizer,一个模型的token ID未必适用于另一个模型。
文本编码时“cat”、“ cat”、“Cat”、“cats”可能对应完全不同的token ID,且一个单词可能被拆成多个token。
不同模型家族(如GPT系列、Llama系列)的tokenizer各不相同,同一句话在不同模型下的token数量和切分方式可能差异明显。
tokenizer一旦训练完成就固定下来,模型训练和推理必须使用同一个tokenizer,否则token与模型参数之间的对应关系会被破坏。
大多数LLM处理的最小单位是token,token可以是一个完整单词、单词的一部分、标点符号或其他文本片段,具体切分取决于tokenizer。
如果一门语言采用罕见的Unicode符号、非常规的空白结构或刻意构造的歧义记号,tokenizer可能将其切分成低效甚至无意义的片段,显著增加模型理解与生成的难度。
困惑度高度依赖tokenizer,不同分词器切分的token粒度不同,同一段文本的token数量不同,困惑度数值无法直接比较。
偏移量的可靠性取决于tokenizer与字符索引的映射方式,若返回token索引而非字符索引则需要额外对齐步骤,尤其在多字节字符场景下。
还有 12 条时间轴事件
全部知识事实 (20)
不同模型使用不同的分词方案(如BPE、SentencePiece等),同样一段文本在不同模型中被计量的token数可能不同
65%已验证GPT-3的词表约5万个token
65%待验证中文字符在不同tokenizer下的Token数量差异可达30%-50%
70%待验证实时成本计算依赖于准确的token计数,不同模型的tokenizer差异需要妥善处理。
50%待验证模型迭代时,开发者需要关注 tokenizer 变化、上下文窗口调整等细节,并重新验证 API 接口、提示词适配和评估流水线。
50%待验证文本编码时“cat”、“ cat”、“Cat”、“cats”可能对应完全不同的token ID,且一个单词可能被拆成多个token。
50%待验证不同模型可能使用不同tokenizer,一个模型的token ID未必适用于另一个模型。
50%待验证不同模型家族(如GPT系列、Llama系列)的tokenizer各不相同,同一句话在不同模型下的token数量和切分方式可能差异明显。
50%待验证大多数LLM处理的最小单位是token,token可以是一个完整单词、单词的一部分、标点符号或其他文本片段,具体切分取决于tokenizer。
50%待验证tokenizer一旦训练完成就固定下来,模型训练和推理必须使用同一个tokenizer,否则token与模型参数之间的对应关系会被破坏。
50%待验证如果一门语言采用罕见的Unicode符号、非常规的空白结构或刻意构造的歧义记号,tokenizer可能将其切分成低效甚至无意义的片段,显著增加模型理解与生成的难度。
50%待验证困惑度高度依赖tokenizer,不同分词器切分的token粒度不同,同一段文本的token数量不同,困惑度数值无法直接比较。
50%待验证偏移量的可靠性取决于tokenizer与字符索引的映射方式,若返回token索引而非字符索引则需要额外对齐步骤,尤其在多字节字符场景下。
50%待验证仓库的字符数与模型 token 数之间不存在通用换算比例,该比例是模型相关的,并随语言和代码风格漂移。
50%待验证用其他厂商的 tokenizer 库计算目标模型的 token 数会导致系统性偏差,因为不同模型使用不同的词表,且这种偏差从调用方角度不可观测。
50%待验证tokenizer 的词表规模、特殊 token 定义或上下文处理方式变化会导致部分预处理和后处理逻辑需要更新
50%待验证使用真实分词器计量使得人类 t/s 与模型 t/s 处于可比较的语境
50%待验证human-tps 使用真实的分词器(real tokenizers)而非按字符或单词计数来测量token速度
50%待验证token的切分逻辑因模型而异,中文、代码、标点的处理各不相同,一段英文可能被切成远多于单词数的token
50%待验证始终在线的tokenizer需要与被激活的专家争夺同一块内存资源,成为不可忽视的静态开销
50%