Token
Token 的基本概念
在大模型(如GPT系列)中,token是文本处理的最小单位。模型将输入的文本分割成token序列,每个token对应一个唯一的整数ID,用于模型的内部处理。例如,英文单词"apple"可能被编码为一个token,而较长单词或短语可能被拆分为多个token。
Token 的分割方式
- 英文及拉丁语系文本:通常按单词或子词分割。例如:
- "unhappiness" → "un", "happiness"(子词分割)。
- 标点符号和空格可能作为独立token。
- 中文文本:通常以单字或常见词语为单位。例如:
- "人工智能" → "人工", "智能"(常见词语组合)。
- 其他语言:依赖语言的书写系统,可能按字符或音节分割。
Token 数量的影响
- 输入长度限制:模型对token序列长度有上限(如GPT-3最多2048个token)。超出部分会被截断。
- 计算成本:处理更多token需要更高的计算资源。
- 计费标准:许多API服务按token数量计费
tokenizer
tokenizer的基本概念
tokenizer(分词器)是将文本拆分为token(词元)的工具或算法。它是自然语言处理(NLP)中的预处理步骤,负责将原始文本转换为模型可处理的离散单元。
tokenizer的核心功能
- 文本拆分:将句子或段落拆分为token序列。
- 映射到ID:将每个token转换为模型词汇表中的唯一数值ID。
- 处理特殊字符:处理标点、大小写、未登录词(OOV)等。
- 添加控制token:如
[CLS]
、[SEP]
(用于BERT等模型)。
关键结论
tokenizer是工具,token是工具输出的结果,二者是流程中的不同环节。