news 2026/6/11 21:17:27

大模型面试题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/6/6 9:13:00

Qwen2.5-7B避坑指南:云端GPU解决环境配置难题

Qwen2.5-7B避坑指南&#xff1a;云端GPU解决环境配置难题 引言 作为一名开发者&#xff0c;当你满怀期待地准备在本地部署Qwen2.5-7B大模型时&#xff0c;是否遇到过这样的场景&#xff1a;好不容易下载完几十GB的模型文件&#xff0c;却在CUDA版本、PyTorch兼容性、依赖库冲…

作者头像 李华
网站建设 2026/5/31 3:57:45

用Tailwind CSS快速原型设计:1小时打造管理后台

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速构建一个管理后台界面原型&#xff0c;包含&#xff1a;左侧垂直导航菜单(图标文字)&#xff0c;顶部状态栏(搜索框、通知图标、用户头像)&#xff0c;主要内容区显示数据统计…

作者头像 李华
网站建设 2026/6/9 1:31:01

告别Charles!新一代AI抓包工具效率提升10倍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个智能化的抓包效率工具&#xff0c;具备以下特点&#xff1a;1.自动识别和分类API接口 2.智能去重相似请求 3.自动生成接口调用关系图 4.一键导出Postman集合 5.支持自定义…

作者头像 李华
网站建设 2026/6/10 20:06:04

Python 3.8新特性如何提升你的开发效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用快马平台创建一个演示项目&#xff0c;展示Python 3.8以下新特性的使用场景和效率提升&#xff1a;1. 海象运算符(:)在循环和条件判断中的应用 2. 仅位置参数(/)的使用 3. f-s…

作者头像 李华
网站建设 2026/6/10 20:58:15

Python小白也能懂的pymysql入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 编写一个面向初学者的pymysql教程脚本。内容要包括&#xff1a;1) pymysql的安装方法&#xff0c;2) 如何连接MySQL数据库&#xff0c;3) 执行简单查询并获取结果&#xff0c;4) 插…

作者头像 李华
网站建设 2026/6/7 5:04:13

Qwen3-VL与GPT-4V对比:多模态能力评测

Qwen3-VL与GPT-4V对比&#xff1a;多模态能力评测 1. 引言&#xff1a;为何需要多模态模型的深度对比&#xff1f; 随着AI在视觉理解、自然语言处理和跨模态推理方面的飞速发展&#xff0c;多模态大模型已成为推动智能代理、自动化交互和复杂任务执行的核心引擎。当前&#x…

作者头像 李华