tiktoken
OpenAI开发的分词库,基于BPE算法,用于ChatGPT等模型的文本分词
核心事实
时间轴 (近 90 天)
tiktoken 的 README 给出平均值约为每个 token 4 字节文本。
OpenAI 的分词器是开源的,JavaScript 中可用 js-tiktoken 在任何环境(包括浏览器)运行,Python 中对应 tiktoken 包。
将 tiktoken 的导入放在构造函数内部而非模块顶部,可实现优雅降级:导入模块本身不需要依赖,ImportError 只在请求无法满足的功能时才出现。
绝不要用启发式方法向客户计费或执行硬性上下文限制,涉及后果的场景必须使用 tiktoken。
tiktoken 是编译包,会下载词表文件,在轻量库、无网络 CI 环境或受限环境中并不总是合适。
工厂函数的 auto 模式优先使用精确的 tiktoken 计数,静默降级到启发式方法。
tiktoken 的 encode 在处理包含特殊 token 的文本时会报错,除非传递 disallowed_special=()。
ttok 是一个基于 OpenAI 开源 tiktoken 库构建的命令行工具,用于统计文本的 token 数量。
tokenizer 指的是将文本切分为 token 的完整算法流程,而 encoding 是 OpenAI 在 tiktoken 中给每一套具体 tokenizer 规则起的名字,如 cl100k_base、o200k_base、p50k_base。
tiktoken 本身并不内置所有模型的完整列表,只内置 encoding。
还有 10 条时间轴事件
全部知识事实 (20)
Token是大语言模型处理文本的基本单位,大约对应0.75个英文单词或1.5个汉字
90%已验证GPT系列使用tiktoken(基于BPE编码)进行Token化
80%已验证OpenAI提供了开源工具tiktoken,开发者可以在调用API前预先估算Token数量
80%已验证OpenAI从GPT-2开始使用BPE的变体,GPT-4的cl100k_base词汇表包含约10万个token
65%已验证OpenAI使用tiktoken分词器进行Token计量
65%已验证同样的中文文本在不同大模型服务商处消耗的 Token 数量可能相差 30%-50%
65%待验证LLaMA 3的分词器从SentencePiece升级为基于tiktoken的BPE分词器,词表大小扩展至128,256
90%待验证OpenAI's GPT series uses the tiktoken library, with vocabulary sizes typically ranging between 50,000 and 100,000 Tokens
85%待验证OpenAI 使用 tiktoken 分词算法,Google 使用 SentencePiece 分词算法
60%待验证tiktoken 的 README 给出平均值约为每个 token 4 字节文本。
50%待验证OpenAI 的分词器是开源的,JavaScript 中可用 js-tiktoken 在任何环境(包括浏览器)运行,Python 中对应 tiktoken 包。
50%待验证工厂函数的 auto 模式优先使用精确的 tiktoken 计数,静默降级到启发式方法。
50%待验证tiktoken 的 encode 在处理包含特殊 token 的文本时会报错,除非传递 disallowed_special=()。
50%待验证tiktoken 是编译包,会下载词表文件,在轻量库、无网络 CI 环境或受限环境中并不总是合适。
50%待验证绝不要用启发式方法向客户计费或执行硬性上下文限制,涉及后果的场景必须使用 tiktoken。
50%待验证将 tiktoken 的导入放在构造函数内部而非模块顶部,可实现优雅降级:导入模块本身不需要依赖,ImportError 只在请求无法满足的功能时才出现。
50%待验证tiktoken 本身并不内置所有模型的完整列表,只内置 encoding。
50%待验证ttok 是一个基于 OpenAI 开源 tiktoken 库构建的命令行工具,用于统计文本的 token 数量。
50%待验证tokenizer 指的是将文本切分为 token 的完整算法流程,而 encoding 是 OpenAI 在 tiktoken 中给每一套具体 tokenizer 规则起的名字,如 cl100k_base、o200k_base、p50k_base。
50%待验证tiktoken是OpenAI开源的tokenizer库,cl100k_base是用于GPT-3.5/4系列的编码方案,其分词结果与Anthropic Claude自研分词器存在差异,通常相差个位数到十几个百分点
50%