news 2026/2/3 9:46:26

大模型面试题57:是否了解LLM的分词器,LLM中的词表文件是如何生成的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型面试题57:是否了解LLM的分词器,LLM中的词表文件是如何生成的?

LLM就像一个只认识“自家字典”的外国翻译,分词器是“翻译助手”,负责把你说的话(自然语言)拆成“字典”里的一个个“小词条”(Token),再转换成数字让LLM看懂;而词表文件就是这本“字典”,存着所有LLM认识的“词条”和对应的数字编号。

一、 入门级:先搞懂「分词器」和「词表」的核心概念

1. 为什么LLM需要分词器?

你可能会问:“直接把每个字/单词当成一个单位不行吗?” 还真不行,核心问题有两个:

  • 问题1:词汇量无限(比如“元宇宙”“ChatGPT”这些新词,永远列不完),如果按“整词”存,字典会无限大,模型装不下;
  • 问题2:字符级拆分(比如把“hello”拆成h/e/l/l/o)会导致Token数量暴增,模型推理速度慢、训练成本高。

分词器的核心作用:用「子词(Subword)」平衡“词汇覆盖”和“Token数量”——既能处理新词(拆成已有子词),又能减少Token数量。

2. 分词器的3种核心拆分方式(小白一眼懂)

拆分方式例子(中文/英文)优点缺点
字符级“机器学习”→「机、器、学、习」;“unhappy”→「u、n、h、a、p、p、y」能处理所有新词,无未知词Token数量多,模型效率低
整词级“机器学习”→「机器学习」;“unhappy”→「unhappy」Token数量少新词/生僻词无法识别(直接标)
子词级(LLM主流)“机器学习”→「机器、学习」;“unhappy”→「un、happy」平衡前两者,新词可拆成子词需要训练词表,依赖语料质量

3. 词表文件到底是什么?

词表文件是分词器的“核心字典”,本质是Token和数字ID的映射表,比如LLaMA-2的词表片段:

<unk> 0 # 未知Token <s> 1 # 句子开头 </s> 2 # 句子结尾 , 3 # 逗号 . 4 # 句号 的 5 # 中文常用字 了 6 # 中文常用字 机器 7 # 子词 学习 8 # 子词

LLM只能理解数字,分词器做两件事:

  • 编码:文本 → 拆分成Token → 转换成ID(比如“机器学习”→7、8);
  • 解码:ID → 转回Token → 拼接成文本(比如7、8→“机器学习”)。

二、 进阶级:词表生成的核心——子词算法(大白话讲透)

词表文件不是“人工编的”,而是用子词算法从海量语料中自动生成的。主流算法有3种,其中BPE(字节对编码)是LLaMA、GPT等大模型的首选,我们重点讲BPE,其他两种简单对比。

1. 核心算法:BPE(Byte Pair Encoding)

BPE的核心逻辑:从最小的字符单元出发,不断合并语料中出现频率最高的字符对,直到达到目标词表大小

用一个极简例子,带你走一遍BPE生成词表的过程:

步骤1:准备初始语料(已清洗、分词)
["低温", "低压", "低温低压"]

先拆成最小单元(单个字),并统计每个字符的出现次数:

  • 低:4次(“低温”1次+“低压”1次+“低温低压”里的2次)
  • 温:2次
  • 压:2次
步骤2:迭代合并高频字符对

BPE的核心就是“找最常一起出现的两个字符,合并成新子词”,重复这个过程直到词表达标。

迭代次数找高频字符对合并成新子词词表内容(新增标红)更新后语料
1“低+温”(2次)低温低、温、压、低温[“低温”, “低 压”, “低温 低 压”]
2“低+压”(2次)低压低、温、压、低温、低压[“低温”, “低压”, “低温 低压”]
3“低温+低压”(1次)低温低压低、温、压、低温、低压、低温低压[“低温”, “低压”, “低温低压”]
步骤3:停止迭代

如果我们设定词表大小为6,此时词表已经满了,停止合并。最终词表就是上面的6个词条,这就是BPE生成词表的核心逻辑。

2. 其他主流子词算法(简单对比)

算法核心逻辑代表模型小白理解
BPE从下到上合并(字符→子词→整词)GPT、LLaMA、Baichuan简单粗暴,效率最高,适合大模型
WordPiece合并时计算“合并收益”(更严谨)BERT、ERNIE比BPE更精准,但速度稍慢
Unigram从上到下拆分(先假设大词表,再删低频Token)T5、ALBERT生成的词表更灵活,但训练成本高

三、 高阶:词表文件的完整生成流程(实操级)

实际工业界生成LLM词表,是一套标准化流程,不是只跑BPE就行。下面按步骤讲,还会给小白能上手的实操代码。

1. 完整流程(工业级)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 6:09:22

小白必看:WPS公式编辑器加载失败的最简单修复指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向新手的交互式修复向导&#xff0c;通过卡通动画和简单问答引导用户逐步解决MATHPAGE.WLL问题。功能包括&#xff1a;1) 可视化问题诊断&#xff1b;2) 分步骤修复指导…

作者头像 李华
网站建设 2026/2/3 7:26:33

AI智能实体侦测服务API集成教程:Python调用示例

AI智能实体侦测服务API集成教程&#xff1a;Python调用示例 1. 引言 1.1 学习目标 本文将带你从零开始掌握如何在 Python 项目中集成“AI 智能实体侦测服务”API&#xff0c;实现自动化中文命名实体识别&#xff08;NER&#xff09;。你将学会&#xff1a; 启动并访问基于 …

作者头像 李华
网站建设 2026/2/2 2:29:38

Windows版Redis企业级应用实战:电商缓存系统搭建

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商缓存系统Demo&#xff0c;包含&#xff1a;1) Windows Server 2019环境下的Redis 6.x集群部署脚本&#xff1b;2) ASP.NET Core商品API示例&#xff0c;演示Redis缓存…

作者头像 李华
网站建设 2026/2/3 0:15:38

比手动配置快10倍:Node.js环境变量管理技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个高效的Node.js环境变量管理工具链。要求&#xff1a;1) 使用zod进行运行时验证&#xff1b;2) 集成VS Code环境变量自动补全&#xff1b;3) 支持环境配置继承(如base→dev…

作者头像 李华
网站建设 2026/2/2 4:50:07

企业级PIP源配置最佳实践

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业级PIP源管理方案&#xff0c;包含&#xff1a;1. 内网私有PIP镜像搭建指南 2. 统一配置管理脚本(支持Ansible/Puppet) 3. 安全审计功能(记录包下载来源) 4. 多环境配置…

作者头像 李华
网站建设 2026/1/23 6:26:49

30分钟用AC自动机打造文献关键词提取工具

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个PDF文献关键词提取工具原型&#xff0c;功能包括&#xff1a;1.上传PDF自动解析文本 2.加载学科专业词典 3.AC自动机快速匹配 4.生成词云可视化 5.导出CSV报告。使用Pytho…

作者头像 李华