Token基础概念
概述
本章介绍Token的基本概念、计算方法和实际应用,这是理解和使用大语言模型的基础知识。
核心内容
什么是Token
定义 Token是文本被分割后的最小单位,可以是单词、子词或字符。
与字符的区别 一个Token可能对应一个单词、一个字符,或一个单词的一部分。
示例
- 英文:"hello world" → ["hello", " world"] (2个tokens)
- 中文:"你好世界" → ["你", "好", "世界"] (3个tokens)
Tokenizer(分词器)
作用 将原始文本转换为token序列,是模型处理文本的第一步。
常见类型
BPE(Byte Pair Encoding) 通过合并高频字节对来构建词表,GPT系列使用。
WordPiece 类似BPE,BERT等模型使用。
SentencePiece 支持多种分词算法,可直接处理原始文本。
字符级分词 将每个字符作为一个token,词表小但序列长。
Token计算
估算方法
- 英文:约4个字符 ≈ 1个token
- 中文:约1-2个汉字 ≈ 1个token
- 代码:因语言而异,通常比自然语言更密集
计算工具
- OpenAI Tokenizer
- Tiktoken库
- 各模型提供的在线工具
Token与成本
API计费 大多数LLM API按token数量计费。
价格因素
- 输入token价格
- 输出token价格(通常更高)
- 模型版本和性能
成本优化
- 精简提示词
- 使用更短的示例
- 选择合适的模型
Token与上下文窗口
窗口限制 上下文窗口以token为单位计算。
输入输出分配 总token数 = 输入token + 输出token
实际应用 需要为输出预留足够的token空间。
Tokenization的影响
多语言支持 不同语言的token效率不同,影响成本和处理能力。
特殊字符处理 代码、公式等特殊内容的tokenization可能不够高效。
隐私考虑 某些敏感信息可能在tokenization过程中暴露。
小结
Token是大语言模型处理文本的基本单位,理解Token的概念和计算方法对于有效使用LLM至关重要。掌握Token相关知识有助于优化成本、管理上下文窗口,并更好地理解模型的工作方式。