当我们使用大模型时,一般使用token来计费,例如deepseek-chat的收费标准就是百万token输入0.5到2元。那到底什么是token?大模型为什么要使用token来进行输入输出的?听我娓娓道来。
一、小明的果然
我经常讲一个冷笑话来说明token的含义。老师让小明用“果然”造句,小明张嘴就来“小明先吃水果然后喝凉水”,老师正准备说不对,小明继续说“果然拉肚子”。那如果我们把这句话喂给大模型,大模型看到的是什么呢?借助https://tiktokenizer.vercel.app/这个网站我们可以看到大模型的输入:
对于我们人类而言,输入的是“小明先吃水果然后喝凉水,果然拉肚子”,一共16个字,一个逗号。对于DeepSeek-R1而言,它看到的是12个token,“59495, 1735, 2670, 22946, 4272, 6643, 10760, 1172, 303, 19200, 3082, 28550”,其中“水果=22946”,“然后=4272”,“果然=19200”。那么其他大模型呢?我们再看看qwen的:
果然不一样,qwen2.5-72B看到的是13个token,其中“水果=104618”,“然后=101889”,“果然=105850”。为啥qwen比DeepSeek多了一个token,原来它把小明看成了两个token,而DeepSeek认为小明是一个完整的token。
看到这里,想必大家明白了,token就是把自然语言变成一个数字,那为什么要变成一个数字呢?
二、token的目的是语言可计算
别看大模型似乎啥都懂,你问他天文地理,自然科学它都能拽上几句,但实际上大模型完全是一个没有意识的神经网络。所谓神经网络就是一堆神经元连在一起,给它一个输入,它必定给你一个输出。那么,这个输入最好是什么形式的呢?数字!换句话说,就是token,或者可以叫它的中文名字,词元。现在我们理解了,token就是把自然语言变成一串数字,那么立刻就会面临三个问题。
第一个问题,怎么分词? 从分词的角度看来,世界上的语言可以分成两种,有空格和没空格的。中文没有空格,需要人为把词从句子里面分出来,英文有空格,单词之间用空格分开。所以对于中文这种语言来说,要额外做一个分词的操作,如何分词呢?不同的研究者有不同的解决方案,最通用的解决方案是把常用的词放到一个词表里面,然后查表分词,当然也可以通过一个神经网络来分词。分词后我们就会发现,水果、然后、果然都被分成了一个个的词。
第二个问题,哪个词变成哪个数字? 也就是从自然语言到token是怎么映射的?查表!查表!计算机程序大部分的时间都是在查表。不同的大模型会根据自己的思路建立不同的token映射表,也叫词汇表,这个表会把所有的词语都映射成一个不重复的数字。根据 DeepSeek 公开的模型技术文档(如 DeepSeek-R1-Lite-Preview 技术报告),其分词器词汇表大小为 102,400。该词汇表支持中英文混合训练,包含常见汉字、英文单词、子词(subword)以及特殊符号,适用于多语言场景。与之对比,GPT-4 的词汇表大小约为 100,264,DeepSeek 的词汇表设计与之规模接近,但针对中文进行了优化(例如对汉字的覆盖率更高)。我们看看GPT-4的token:
第三个问题,为什么要把词语变成token? 因为这样才方便计算,也就是“语言可计算”。对于自然语言处理而言,字符串毕竟是一个没有边界的词汇表,虽然所有的英文字符和中文字都有对应的编码,例如ASCII或者GBK,但是词语的组合是无穷无尽的,面对这种情况,神经网络是难以处理的。因此大家才会选择把token从句子中提取出来,固定一个范围,便于后续的处理。
三、token与自然语言的数量对比
对于英文而言,token不仅仅是一个单词,有的单词包含多个token,因为一些大模型会把ing、ed、re等词缀单独作为一个token来处理。英文单词与 Token 的对应关系并非固定值,而是取决于分词器(Tokenizer)的设计和单词本身的常见程度。DeepSeek 使用的分词器基于 Byte-Pair Encoding (BPE),这是一种常见的子词分词方法,其核心逻辑是:
常见单词保留为完整 Token:如高频词 the, and, is 会直接映射到单个 Token。
罕见单词拆分为子词:低频词或长单词会被分解为多个子词(Subword),例如:
unbelievable → un + believe + able(3个 Token)
tokenization → token + ization(2个 Token)
特殊字符与大小写:标点符号(如 , . ?)通常作为独立 Token。
英文大小写可能被规范化(如统一为小写),具体取决于分词器配置。
根据实际测试和类似模型(如 GPT)的经验,英文单词与 Token 的对应关系大致如下:平均每个英文单词 ≈ 1.2–2.5 个 Token;而中文与token的对应关系大致是1个Token通常对应1.5–1.8个汉字,这个仅仅是估算,实际值与大模型的类型以及分词器的种类相关。
然后我让deepseek写了一段代码来试试,16个汉字一共生成了13个token,比例大概1个token对应1.23个汉字。
四、token之后是什么?
目前来说,在线的大模型都是以token来计费的,例如DeepSeek算是很便宜了:
那么把自然语言转换为token之后是否就能够直接输入大模型了?答案是否定的,因为token的下一步是embedding,就是把token变成一个高维向量,那就是后面的故事了,有空再讲。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!