深入理解大语言模型(5)-关于token

到目前为止对 LLM 的描述中,我们将其描述为一次预测一个单词,但实际上还有一个更重要的技术细

节。即 LLM 实际上并不是重复预测下一个单词,而是重复预测下一个 token 。对于一个句子,语言模型会

先使用分词器将其拆分为一个个 token ,而不是原始的单词。对于生僻词,可能会拆分为多个 token 。

这样可以大幅降低字典规模,提高模型训练和推断的效率。例如,对于 "Learning new things is fun!" 这

句话,每个单词都被转换为一个 token ,而对于较少使用的单词,如 "Prompting as powerful

developer tool",单词 "prompting" 会被拆分为三个 token,即"prom"、"pt"和"ing"。

json 复制代码
# 为了更好展示效果,这里就没有翻译成中文的 Prompt
# 注意这里的字母翻转出现了错误,吴恩达老师正是通过这个例子来解释 token 的计算方式
response = get_completion("Take the letters in lollipop \
and reverse them")
print(response)

The reversed letters of "lollipop" are "pillipol".

但是,"lollipop" 反过来应该是 "popillol"。

但 分词方式也会对语言模型的理解能力产生影响 。当您要求 ChatGPT 颠倒 "lollipop" 的字母时,由于分词器

(tokenizer) 将 "lollipop" 分解为三个 token,即 "l"、"oll"、"ipop",因此 ChatGPT 难以正确输出字

母的顺序。这时可以通过在字母间添加分隔,让每个字母成为一个token,以帮助模型准确理解词中的字

母顺序。

json 复制代码
response = get_completion("""Take the letters in \
l-o-l-l-i-p-o-p and reverse them""")
print(response)

p-o-p-i-l-l-o-l

因此,语言模型以 token 而非原词为单位进行建模,这一关键细节对分词器的选择及处理会产生重大影

响。开发者需要注意分词方式对语言理解的影响,以发挥语言模型最大潜力。

❗❗❗ 对于英文输入,一个 token 一般对应 4 个字符或者四分之三个单词;对于中文输入,一个

token 一般对应一个或半个词。不同模型有不同的 token 限制,需要注意的是,这里的 token 限制是输

入的 Prompt 和输出的 completion 的 token 数之和,因此输入的 Prompt 越长,能输出的

completion 的上限就越低。截至2023年,ChatGPT3.5-turbo 的 token 上限是 4096。

相关推荐
阿里云大数据AI技术6 分钟前
AI 时代,零售商超如何用多模态数据"看见"每一排货架?
人工智能
一RTOS一16 分钟前
【无标题】
人工智能·鸿道实时操作系统·国产嵌入式操作系统选型·智算控一体
cian_24 分钟前
我把 Anthropic 官方的 Claude Cookbook 拆成了 30+ 个能直接跑的例子
人工智能
秦先生在广东27 分钟前
`claude-video /watch`:给 Claude 装上“眼睛“看视频的工程实现与边界分析
人工智能
极客猴子40 分钟前
会议记录APP怎么选 2026年实测功能对比与使用指南
人工智能·xcode
秦先生在广东43 分钟前
Impeccable:给 AI 编码 Agent 装上设计判断力的工具包
人工智能
hnsoyon43 分钟前
智慧城市方案强调预防供水在线监测系统预警水质异常
人工智能·智慧城市·智慧城市方案·供水在线监测系统
Nontee221 小时前
开源 AI 模型到底该不该禁?Anthropic 的一场"不情愿的澄清",撕开了硅谷最深的裂痕
人工智能
无敌秋1 小时前
无线接入网 RAN
人工智能
小林AI Flow1 小时前
数据标注遇到边界样本怎么办?先写规则再做一致性检查
人工智能·数据标注·人工智能训练师·ai训练师