AI认知篇6:详解Token

这是我的agent系列文章的第5篇,该系列分为三部分:

  • AI认知篇:详细讲解相关基础概念
  • AI实践篇:分享诸如skills怎么写、怎么ai coding、怎么写好prompt等的最佳实践
  • AI八股篇:分享我自己整理的应付大模型应用开发岗位必备的八股笔记(后端与agent2手抓学习专栏

一、巴别塔困境:为什么大模型看不懂人话?

要理解 Token,首先得明白大模型到底是个什么东西。

尽管现在的 AI 能写诗、 coding、做数学题,表现得像个人类,但它的“大脑”本质上是一个巨大的数学函数。它只认识数字(向量),完全不认识文字、图片或声音。如果你直接把一段中文或英文文本扔给大模型,对它来说,这就像是一堆毫无意义的乱码,无法进行任何矩阵运算。

这就产生了一个根本性的矛盾:人类用自然语言交流,而机器只处理数字。

为了解决这个“巴别塔”式的沟通障碍,我们需要一个中间的“翻译官”。这个翻译官负责两件事:

  1. 编码(Encoding):把人类看得懂的文本,切分成最小的单元,并转换成机器看得懂的数字 ID。
  2. 解码(Decoding):把模型计算出来的数字 ID,还原回人类看得懂的文本。

这个“翻译官”就是 Tokenizer(分词器),而被切分出来的最小单元,就是 Token

核心结论:大模型从未真正“阅读”过文字。它看到的永远是一串类似 [45, 1024, 89, 332] 这样的数字序列。它生成的每一个字,本质上都是在预测下一个数字是什么。Token,就是连接人类语义世界与机器数学世界的唯一桥梁。

二、Token 是如何诞生的?BPE 算法的魔法

Token 不是程序员手动定义的字典(比如规定 "apple" 是一个 Token,"banana" 是一个 Token)。如果是手动定义,面对人类海量的词汇和新造词,这本字典将无穷大且永远无法维护。

现代主流大模型(如 GPT-4, Llama 3, Qwen 等)的 Tokenizer,大多是基于一种名为 BPE(Byte Pair Encoding,字节对编码) 的算法训练出来的。

BPE 的核心思想非常朴素且优雅:统计频率,合并高频。它通过不断寻找数据中出现频率最高的字符组合,将它们“粘合”成一个新的单元,从而实现对文本的高效压缩。

1. 从零开始的训练过程

让我们通过一个极简的例子,模拟 BPE 算法是如何“炼”成一个分词器的。

假设我们的训练语料库只有这么几个单词:"hug", "pug", "pun", "bun", "hugs"

第一步:字符级初始化

最初,词汇表里只有单个字符。算法先把所有单词拆成单字列表:

  • h, u, g
  • p, u, g
  • p, u, n
  • b, u, n
  • h, u, g, s

此时,表示 "hug" 需要 3 个 Token。

第二步:统计频率,寻找“最佳搭档”

算法遍历整个语料,统计相邻字符对出现的次数:

  • "u" + "g":出现了 3 次(在 hug, pug, hugs 中)
  • "u" + "n":出现了 2 次(在 pun, bun 中)
  • "h" + "u":出现了 2 次
  • ...

显然,"u" 和 "g" 是出现频率最高的搭档。

第三步:合并,创造新 Token

算法决定将 "u" 和 "g" 合并成一个新的单元 "ug",并将其加入词汇表。现在,单词的表示变成了:

  • h, ug (2 个 Token)
  • p, ug (2 个 Token)
  • p, u, n (3 个 Token,未变)
  • b, u, n (3 个 Token,未变)
  • h, ug, s (3 个 Token)

看,"hug" 和 "pug" 的表示长度缩短了,压缩效率提升。

第四步:迭代,直到满足条件

算法不会停歇。基于新的单元列表,它再次统计频率。这次可能会发现,"h" + "ug" 经常一起出现(在 "hug" 和 "hugs" 的开头)。于是,算法将 "h" 和 "ug" 合并成 "hug",加入词汇表。

现在的表示:

  • hug (1 个 Token!)
  • p, ug (2 个 Token)
  • hug, s (2 个 Token)

这个过程会重复成千上万次。

  • 常见的短单词(如 "the", "is", "a")会很快被合并成一个 Token。
  • 常见的词根(如 "ing", "tion", "pre")也会成为独立 Token。
  • 最终,我们会得到一个包含 3 万到 10 万个单元的词汇表。这个词汇表就是大模型的“世界观”。

关键洞察:BPE 算法是一种有损压缩。它优先保证高频内容的压缩率(常用词变短),而低频内容(生僻词、乱码)则保留为多个字符。这也解释了为什么大模型对常用语理解深刻,而对生僻怪诞的内容反应迟钝——因为在它的“词汇表”里,后者只是零散的碎片。

三、实战现场:当你输入一句话时发生了什么?

当训练好的 Tokenizer 面对用户的新输入时,它不再进行统计合并,而是执行最大匹配原则(Longest Match First)。它会拿着那本厚厚的词汇表,试图在输入文本中找到最长的匹配项。

场景演示

假设我们的词汇表里有以下单元(注意空格的处理):["I", " love", " AI", " lo", "ve", "r", " art", "ist"]注:在英文 BPE 中,空格通常作为前缀附着在单词前面,以区分 "love"(动词)和 "love"(名词后缀等情况),这里简化演示。

案例 A:完美匹配

输入:"I love AI"

  1. 扫描 "I" -> 匹配成功。
  2. 扫描 " l

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

内容包含: 1.后端八股大全:多一句没有少一句不行的最精简八股整理,完全可以应付校招八股拷打! 2.速成项目话术:目前有魔改苍穹外卖项目话术(额外扩展了很多技术亮点),能速成拿去面试,后面会更新agent开发等等热门高质量项目话术 3.智力题超详细题解汇总; 4.面试时非技术问题话术整理,绝对震惊面试官一年; 5.算法lc hot100全题系列题解:绝对通俗易懂。 欢迎订阅!

全部评论

相关推荐

去年秋招的时候面过几场AI面,大部分是在牛客上面试的,有的是自研的平台上面试。首先是AI会说明面试的流程,然后开始自我介绍,AI会根据自我介绍的内容选择它感兴趣的部分提问,根据你的回答进行追问,就和真人一样。之前面的AI面,基本都会问一些八股或者开发的场景问题,根据你的回答,AI会深挖拷打。和真人面试官相比,AI 面的提问逻辑更 “精准”——完全围绕你简历和自我介绍里的关键词展开,不会有闲聊式的铺垫,一旦抓到你提到的技术点,就会顺着往下刨根问底,直到把你问到知识盲区才会罢休。比如你自我介绍里提了一句 “参与过 Spring Boot 项目开发”,AI 大概率会先问 “Spring Boot 的自动配置原理是什么”,你答完之后,紧接着就是追问 “@EnableAutoConfiguration 注解的作用是什么?它和 @ComponentScan 的区别是什么?”;如果你提到 “用 Redis 做过缓存优化”,那 “缓存穿透、缓存击穿、缓存雪崩的区别和解决方案”“Redis 分布式锁的实现方式”“Redisson 和自研分布式锁的优劣对比” 这些问题会连环砸过来,一个都跑不掉。除了技术八股,场景化问题也是 AI 面的高频考点,而且题目都很贴近实际开发。比如 “如果你的接口出现了超时问题,你会怎么排查?”“MySQL 慢查询的优化步骤是什么?从索引、SQL 语句、配置三个方面说”“高并发场景下如何保证接口的幂等性?”,这些问题不是靠死记硬背就能答好的,需要你结合实际项目经验梳理出清晰的解决思路。还有一个很有意思的点,AI 面会特别关注你提到的项目细节。比如你说 “负责用户模块的开发”,它会问 “用户模块的表结构是怎么设计的?为什么这么设计?”“用户登录的鉴权流程是什么?有没有考虑过安全问题?”;如果你说 “做过性能优化”,它会追着问 “优化前的性能指标是什么?优化后提升了多少?用了什么工具做的性能测试?”,全程逻辑严密,不会放过任何一个模糊的表述。甚至有些 AI 面还会加入代码题环节,直接在平台上给出一道算法题或编程题,比如 “写一个快速排序算法”“用 Java 实现一个简单的线程池”,要求你在规定时间内完成并运行通过,和线下笔试的代码题难度差不多。总的来说,AI 面的问题没有什么 “套路”,核心就是 “你写了什么,它就问什么”。它不会像真人面试官那样可能因为时间紧张跳过某些问题,而是会把你简历里的每一个技术点都挖透,以此检验你的知识掌握程度和项目真实性。所以准备 AI 面的关键,就是把自己写在简历上的每一个技术点、每一个项目细节都梳理清楚,确保问到任何相关问题都能对答如流。
查看13道真题和解析
点赞 评论 收藏
分享
答案很明确:能驾驭 AI、而非被 AI 替代的岗位,才会活得越来越滋润。在互联网赛道里,那些靠重复执行、模板化操作的岗位正在被挤压,但需要深度思考、业务洞察、工程落地能力的岗位,反而会在 AI 加持下价值倍增。大模型应用 / Agent 开发工程师这是当前互联网行业需求最旺盛的岗位之一。核心工作不是训练大模型,而是基于 LangChain、FastGPT 等框架,把大模型能力落地到具体业务场景 —— 比如搭建电商智能客服、企业内部知识库问答、代码生成助手。需要掌握 Python、向量数据库(Milvus/Chroma)、API 封装、工程化部署能力,后端开发者转型有天然优势。AI 能生成基础代码,但如何把大模型和业务系统(比如电商订单系统、CRM 系统)打通,如何解决幻觉问题、保障服务稳定性,这些都需要人来把控。AI 工程化 / 基础设施工程师大模型的推理、部署、优化离不开底层基建。这类岗位负责搭建大模型训练 / 推理平台,优化 GPU 资源利用率,解决模型部署的延迟、成本问题,比如用 vLLM、TensorRT-LLM 加速推理,用 K8s 管理集群资源。需要熟悉云计算、容器化、分布式系统,懂深度学习框架(PyTorch/TensorFlow)的底层逻辑。AI 能做算法优化,但大规模、高可用的 AI 基础设施搭建,必须靠人来完成。资深架构师(后端 / AI 方向)架构师的核心价值是 “做决策”—— 面对复杂业务场景,判断该用哪种技术方案,如何平衡性能、成本、稳定性。比如设计一个支持百万级并发的 AI 对话系统,需要架构师决定用什么中间件、如何做负载均衡、如何设计缓存策略。AI 能提供方案参考,但最终的架构选型、风险评估、技术兜底,只能靠人的经验和全局视野。说到底,AI 时代的互联网职场,淘汰的是 “只会做重复工作的人”,奖励的是 “会用 AI 放大自己能力的人”。与其焦虑被替代,不如主动拥抱 AI,把它变成自己的 “职场加速器”。
AI时代,哪个岗位还有“...
点赞 评论 收藏
分享
1.基本信息,学校学了哪些课程?2.你实习主要负责哪些内容?请概括一下。3.你主要是负责后端开发,是吗?4.你实习项目的整体技术架构是什么样的?你了解的多吗?5.你负责的模块里,有没有你认为比较有意思 / 有难点的点,分享一下。6.我看你有 MCP 相关的大模型应用实践,是做过小案例还是完整项目?7.请你解释一下这个 Text to SQL 项目 / 论文里的核心技术实现。8.NL2SQL 的模型是你自己做的训练吗?9.针对复杂 SQL 场景,怎么防止模型生成不安全的查询、全表扫描、大量数据返回的问题?10.目前只支持生成查询类的 SQL 吗?11.生成的 SQL 主要是针对结构化数据吗?12 AI 辅助开发这块,你用过哪些工具?13.你了解 Skill 的相关规范吗?14.你自己有写过哪些方面的 Skill 吗?15.如果让你设计一个功能 Skill,你有什么设计思路?16.讲一下 Java 并发操作中的 CAS 底层实现原理,以及相关的原子类。17.Java 并发包中有哪些实现的原子类?18.多线程并发编排这块你用得多吗?19.多线程并发编排这块你用得多吗?20.能举几个并发编排里常用的方法吗?21.设计模式这块,挑一两个大概讲一讲。只有一次面试,面完5分钟HR打电话说通过了,一问薪资6.5k,跑路了跑路了,有点哈人~
查看20道真题和解析
点赞 评论 收藏
分享
评论
6
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务