Token Lab搜索

← 全部教程
开发者教程 / 01

Token 与 Tokenizer:从文本到模型输入

理解 Token 的含义,观察真实编码,并验证完整解码能否还原原文。

Token 不是单词

语言模型接收的是 Token ID,而不是直接接收一串单词。Tokenizer 按词表与编码规则把文本映射成整数。常用词可能只占一个 Token,陌生名称可能被拆成多个;空格、标点与换行也参与编码。

BPE 使用训练得到的合并规则构造子词单元。可视化片段是一种调试视图,不等同于语言学意义上的分词。

学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

  • 理解层:写明假设、形状/单位和一个反例。
  • 实现层:复算数值例子并检查边界。
  • 研究层:在匹配预算下比较一个替代方法。

运行可复现的例子

选择 cl100k_base,准确输入 Hello, world!,保留逗号与空格。结果是 4 个 ID:9906、11、1917、0。点击色块查看对应片段,再删除逗号或改变大小写,比较序列如何变化。

切换为 o200k_base 后,词表改变,ID 或计数也可能改变。ID 只有结合编码才有意义,因此导出时应同时保留编码名称与 ID。

import { encode, decode } from
  'gpt-tokenizer/encoding/cl100k_base';

const text = 'Hello, world!';
const ids = encode(text);
// [9906, 11, 1917, 0]
console.log(ids.length); // 4
console.log(decode(ids) === text); // true
在工具中尝试 →

接入应用前如何验证

对完整序列解码,并与原文比较。单个 Token 可能截断一个 UTF-8 字符,所以单独显示为替换字符;这不意味着完整序列无法还原。

本工具计算文本编码,不模拟完整 API 请求。角色标记、工具定义、媒体等都可能增加 usage。将本地结果与 API 返回的实际用量对照,再决定预算和计费逻辑。

参考资料与实现

MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

整段 decode(encode(text)) 应恢复原文。单 token 可拆开 UTF-8 序列,不能要求各 token 独立解码无损。

已复核共享代码、英文数学解释及多语言关键数值段落;不代表完成逐字翻译校对。

Unicode 文本 → UTF-8 字节 → 合并词表 → token ID → 计数 → 整段解码 → 往返验证
机制图:从上到下跟踪每次变换。

运行前:预测一个边界情况

整段 decode(encode(text)) 应恢复原文。单 token 可拆开 UTF-8 序列,不能要求各 token 独立解码无损。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node tokens-and-tokenizers.mjs. npm install gpt-tokenizer@4.1.0

import { encode, decode } from
  'gpt-tokenizer/encoding/cl100k_base';

const text = 'Hello, world!';
const ids = encode(text);
// [9906, 11, 1917, 0]
console.log(ids.length); // 4
console.log(decode(ids) === text); // true

测试与迁移

整段 decode(encode(text)) 应恢复原文。单 token 可拆开 UTF-8 序列,不能要求各 token 独立解码无损。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围