LLM 扫盲:什么是 Tokens?

作者:mCell日期:2025/12/2

同步至个人网站:LLM扫盲: 什么是tokens

072

LLM 基础:什么是 Tokens?

GPT 5.1 发布已经有一段时间了,LLM(大语言模型)的能力边界再一次被拓宽。对于应用开发者而言,虽然模型越来越智能,但 API 的计费逻辑和底层限制依然没有变:Token 始终是那个核心计量单位。

很多人对 Token 有误解,认为它等同于字符(Character)或单词(Word)。这种误解往往导致两个问题:一是预估 API 成本时出现较大偏差,二是无法精确控制 Prompt 的上下文长度,导致模型“失忆”。

今天,我们再来系统地梳理一下 Token 的概念。

机器如何阅读文本?

计算机只能处理数字,不能直接处理文本。因此,当我们向 LLM 发送一段话时,必须经历一个转码过程。

  1. 输入文本:人类语言。
  2. Tokenization(分词):将文本切分成一个个具备语义的最小单位(Token),并转换为数字 ID。
  3. 模型计算:模型对这些数字 ID 进行预测和计算。

Token 就是这个中间层的最小单位。

为什么不直接用“汉字”或“单词”做单位?

  • 字符粒度太细:如果用字符(如 a, b, c),语义太稀疏,模型计算量会呈指数级上升。
  • 单词粒度太粗:人类语言词汇量太大,且不断有新词产生,这会导致模型的词表(Vocabulary)过于庞大。

因此,LLM 采用的是 Sub-word(子词) 方案:常用的词是一个 Token,不常用的词拆分成多个 Token。

Token 的切分原理

Token 的切分规则并非一成不变,不同模型使用的编码器(Encoding)不同,结果也不同。

英文与中文的差异

  • 英文:通常一个单词是一个 Token,但复杂的词会被拆分。例如 smart 是一个,但合成词或生僻词会被拆解。
  • 中文:在 GPT-3 时,中文非常“吃亏”,一个汉字往往需要 2-3 个 Token。

到了现在的 GPT-5.1,Token 编码(如 o200k_base 或更新的编码集)对多语言进行了深度优化。 目前,绝大多数常用汉字,1 个汉字 = 1 个 Token。只有极少数生僻字或复杂的古文,才会被拆解。

这意味着,同样的预算,现在能处理的中文内容比两三年前多了将近一倍。

代码演示(Node.js)

光说概念比较抽象,我们直接看代码。

在 Web 开发或 Node.js 环境中,我们通常使用 npm 包 @dqbd/tiktoken 来在本地计算 Token 数,这比每次调用 API 估算要快得多,也更省钱。

安装:

1npm install @dqbd/tiktoken
2

代码示例:

1import { encoding_for_model } from "@dqbd/tiktoken"
2
3// 获取 GPT-5.1
4const enc = encoding_for_model("GPT-5.1")
5
6const text = "AI技术"
7
8// 将文本转换为 Token ID 数组
9const tokens = enc.encode(text)
10
11console.log(tokens)
12// 输出可能是: Uint32Array(2) [ 12345, 67890 ]
13// 解释:'AI' 是一个 Token,'技术' 作为一个常用词可能被编码为一个 Token,或者两个汉字各一个。
14
15console.log("Token Count:", tokens.length)
16
17// 记得释放内存
18enc.free()
19

71

通过这种方式,你可以在发送请求前,精确地知道这段文本会消耗多少 Token。

Token 的实际影响

理解 Token 主要为了解决两个现实问题。

计费(Cost)

API 计费公式通常是:(Input Tokens + Output Tokens)× 单价

值得注意的是,随着模型迭代(如 GPT-5.1),推理成本虽然在下降,但 Output(生成内容)的价格通常依然高于 Input(输入内容)。

  • Input:你发给模型的 Prompt。
  • Output:模型生成的回答。

如果你的业务场景是“读长文、写摘要”,成本相对可控;如果是“读短句、写长文”,成本会显著增加。

上下文窗口(Context Window)

这是 Token 最关键的物理限制。

虽然 GPT-5.1 的上下文窗口已经非常大(通常在 128k 甚至 200k tokens 以上),但它依然不是无限的。

  • 早期模型:GPT-3.5 只有 4k context(约 3000 汉字),稍微聊几句就得“遗忘”前面的对话。
  • 当前模型:128k context 意味着你可以一次性把几本长篇小说塞给模型。

但是,“能塞进去”不代表“效果好”。虽然 Token 容量变大了,但输入的内容越多,模型对中间信息的“注意力”(Attention)可能会被稀释。因此,开发者依然需要利用 RAG(检索增强生成)等技术,精简输入给模型的 Token,这不仅是为了省钱,更是为了提高回答的准确率。

四、 总结

  1. Token 是计费和计算的单位:它介于字符和单词之间。
  2. 中文效率已大幅提升:在 GPT-5.1 时代,中英文的 Token 效率差距已大大缩小,基本可以按 1 字 = 1 Token 估算。
  3. 开发者应当在本地计算:使用 @dqbd/tiktoken 等库在本地预计算 Token,是控制成本和上下文管理的最佳实践。

理解 Token,是开发 LLM 应用的第一步,也是从“用户”进阶为“开发者”的必修课。

(完)


LLM 扫盲:什么是 Tokens?》 是转载文章,点击查看原文


相关推荐


Flutter的核心优势
小a彤2025/12/11

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。#### Flutter:开发效率神器详解 Flutter作为Google推出的跨平台开发框架,凭借其高效的开发体验和出色的性能表现,成为众多开发者的首选。其核心优势在于"一次编写,多端运行"的核心理念,同时提供超过2000个现成的Widget组件库和强大的工具链,显著提升开发效率达30%-50%。 Flutter的核心优势 跨平台一致性 Flutter使用自绘引擎(Skia)直接渲染UI,完全避免了平台原生控件的依赖,确


python+django/flask+vue基于spark的西南天气数据的分析与应用系统
Q_Q5110082852025/12/19

目录 项目介绍本项目具体实现截图开发技术大数据类设计开发的基本流程是:论文大纲结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 项目介绍 系统功能 数据采集与清洗:系统通过爬虫技术从多个天气预报网站抓取西南地区的实时天气数据,并通过Spark SQL对数据进行并行计算,提取关键气象指标,并进行多维度分析,如空气质量、降水量、风速等。 数据处理与分析:系统利用Spark对天气数据进行分布式存储与处理,通过数据分析,实时展示西南地区的空气质量、温度变化、降水量、风


旮旯c语言三个任务
宇宙超级无敌暴龙战士2025/12/29

#include <stdio.h> // 任务1:计算数组元素和 int getArrSum(int arr[], int len) { int sum = 0; for (int i = 0; i < len; i++) { sum += arr[i]; } return sum; } // 任务2:获取数组最大值 int getArrMax(int arr[], int len) { int max = arr[0]; f


多模态大模型有哪些模态?
智泊AI2026/1/6

“多模态”中的“模态”(modality),即指各类数据形式或信息来源。在多模态大模型中,典型模态涵盖以下类别: 更多AI大模型学习视频及资源,都在智泊AI。 文本模态‌: 涵盖自然语言文本、经语音识别转换的文本内容等。 图像模态‌: 指视觉图像数据,例如照片、插画、艺术作品等。 视频模态‌: 包含动态影像序列,如短视频、影视片段、监控录像等。 音频模态‌: 指声学信号数据,如人声、音乐、环境音效等。 其他模态‌: 还包括如环境传感器读数、生理信号、指纹、虹膜等非传统信息形式。 多模态模型的


Spring设计模式与依赖注入详解
callNull2026/1/14

📚 前言 这是我之前写 项目时的一些理解和感悟, 我喊了AI帮我润色了一下语言文字,发出来了,希望对大家有用 在学习Spring框架时,经常会遇到@Configuration、@Bean、@Service、@Resource等注解,以及各种设计模式的应用。本文通过具体的代码示例(MailConfig和MailService),深入浅出地解释这些概念,帮助理解Spring的核心机制。 🎯 核心问题 问题1:为什么需要@Configuration和@Bean? 问题2:为什么没有注解的类也能被@


Verifier-state pruning in BPF
mounter6252026/1/22

The BPF verifier works, on a theoretical level, by considering every possible path that a BPF program could take. As a practical matter, however, it needs to do that in a reasonable amount of time. At the 2025 Linux Plumbers Conference, Mahé Tardy an


abigen使用教程 - go版本
Warson_L2026/2/1

在 Web3 后端开发中,abigen 是一个至关重要的工具。它能根据 Solidity 合约生成的 ABI(应用二进制接口)自动生成 Go 语言代码,让你像调用普通 Go 函数一样调用智能合约。 以下是详细的 abigen 使用教程。 第一步:安装 abigen 工具 abigen 是 go-ethereum 项目的一部分。你可以通过以下命令安装: # 安装最新版 abigen go install github.com/ethereum/go-ethereum/cmd/abigen@lat


Claude Code Agent Teams:3个AI同时写代码,底层原理和主流框架对比
易安说AI2026/2/10

大家好,我是易安,AI超级个体,大厂程序员二孩奶爸。 Claude Opus 4.6 带来了 Agent Teams 功能,可以让多个 Claude Code 实例并行工作。我用它做了个小项目,踩了一些坑,也顺便把底层原理和市面上几个主流多 Agent 框架做了个对比。这篇文章干货比较多,建议收藏。 Agent Teams 到底是什么 简单说就是一个 Lead Agent 可以 spawn 出多个 Teammate Agent,每个 Teammate 是一个完全独立的 Claude Code 会


【Python练习五】Python 正则与网络爬虫实战:专项练习(2道经典练习带你巩固基础——看完包会)
纯.Pure_Jin(g)2026/2/18

第一题 题目: 使用正则完成下列内容的匹配 匹配陕西省区号 029-12345匹配邮政编码 745100匹配邮箱 lijian@xianoupeng.com匹配身份证号 62282519960504337X 代码: import re # 1. 匹配陕西省区号 029-12345 pattern_area = r'^029-\d{5}$' # 精确匹配 029- 开头,后接5位数字 test_area = '029-12345' print("区号匹配:", re.match(pattern_


一文搞懂激活函数!
aicoting2026/2/27

推荐直接网站在线阅读:aicoting.cn 在深度学习中,激活函数(Activation Function)是神经网络的灵魂。它不仅赋予网络非线性能力,还决定了训练的稳定性和模型性能。那么,激活函数到底是什么?为什么我们非用不可?有哪些经典函数?又该如何选择? 所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏! 1. 什么是激活函数,为什么需要激活函数 激活函数的核心作用就是为神经网络引入非线性。 为什么需要非线性? 想象一下,如果

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客