基础

分词 (Tokenization)

将文本拆分为较小单元(token)——完整单词、子词、字符或字节——并映射为整数 ID 的过程,是语言模型处理文本的第一步,直接影响成本和上下文窗口大小。

分词(tokenization)大型语言模型处理文本的第一步——将原始文本拆分成称为 token 的更小单元的过程。一个 token 可以是一个完整的单词、一个子词(前缀或后缀)、单个字符,甚至几个字节。每个 token 随后从模型固定的词表(通常包含 30,000 到 200,000 个条目)中获得一个唯一的整数 ID。

几乎所有现代 LLM 都采用某种形式的 子词(subword) 分词:

  • Byte-Pair Encoding (BPE) — GPT 模型使用,从单个字节开始,合并最常见的字节对
  • WordPiece — BERT 系列使用,与 BPE 相似但合并准则不同
  • SentencePiece / Unigram — Llama、T5 及许多多语言模型使用,直接在原始文本上工作,无需事先按空格切分
  • Tiktoken — OpenAI 的 BPE 实现,用于 GPT-3.5/4/5

分词直接影响成本和上下文窗口:API 按 token 计费,上下文窗口也以 token(而非字符)为单位衡量。英文文本通常每个单词约消耗 0.75 个 token;克罗地亚语、德语或中文相同内容可能消耗 1.5–3 倍的 token——所以中文请求不仅在语言上更具挑战,价格也更高。

分词之后,每个 ID 都被映射为一个嵌入向量,进入模型的 Transformer 层。

来源

另见