【理论篇】深入理解 BPE 分词:大模型时代的文本“拆字“艺术
一、先来"看见"分词​ 在讲任何理论之前,我们先打开一个工具tiktokenizer。这是一个基于 JavaScript 的在线分词可视化工具,在浏览器中实时运行。左侧输入文本,右侧立即显示分词结果,每个 token 用不同颜色高亮。1.1 Tiktokenizer介绍​ 这是一个开源的在线分词可视化工具,基于 OpenAI 的 tiktoken 库,用 JavaScript 在浏览器中实时运行,不调用任何 API。界面分为 System、User、Assistant 三个输入栏,对应 Chat API 的消息角色。你可以把系统提示、用户消息、模型回复分别贴进去,观察每部分各自被拆成了多少 token。三个栏的分词逻辑完全一样,分开只是方便你估算实际对话场景下的 token 消耗。1.2 举例说明​ 选择 GPT-4o 分词器,在 User 栏分别输入Hello, world!和你好,世界,你会看到这样的 token 序列:​ 仔细观察,有几个值得玩味的现象:标点和空格不是"免费的"Hello, world!变成了 4 个 token:Hello(13225)、,(11)、world(2375,注意前面带空格)、!(0)。逗号、感叹号各占一个 token,空格则被粘在了下一个词的开头。中文的切分粒度不同你好,世界变成了 3 个 token:你好(177519)、,(979)、世界(28428)。两个汉字被合并为一个 token,而英文Hello五个字母也才一个 token。同样的"一个 token",承载的信息量差异很大。这也是为什么中文 prompt 往往比英文更费 token。​ 这些现象说明一件事:大模型处理文本的第一步,就不是在"词"的层面上操作的。它使用的是一种介于字符和单词之间的切分方案—子词(subword)。而构建这套子词词表的核心算法,就是我们今天要讲的BPE(Byte Pair Encoding,字节对编码)。二、背景:为什么不能直接按词切分​ 在传统 NLP 中,英文按空格切分就能得到单词,中文用 jieba 等工具也能搞定。但大模型时代,这套方案撑不住了,原因有三个:词表爆炸英文有大量的派生词(running、runner、runs),中文有无穷的组合(“人工智能”、“人工降雨”),如果每个词都分配一个 ID,词表会膨胀到不可控。OOV(未登录词)问题训练时没见过的词怎么办?传统方法只能标记为UNK,直接丢失语义信息。多语言支持一个模型要同时处理中英日韩甚至代码,按语言各搞一套分词器根本不现实。BPE 的思路很巧妙:不以"词"为基本单位,而是通过数据驱动的方式,自动学习一套子词切分方案。高频词保留完整,低频词拆成有意义的碎片。一石三鸟,解决了上面全部问题。三、基础知识:三种分词粒度​ 在正式讲 BPE 之前,先理清三种分词粒度:粒度示例(“unhappiness”)优点缺点字符级u, n, h, a, p, p, i, n, e, s, s无 OOV序列过长,语义碎片化单词级unhappiness语义完整词表大,OOV 严重子词级un, happi, ness平衡词表大小和语义需要学习切分规则子词分词的核心思想一句话概括:高频的留着,低频的拆开。你可以在 tiktokenizer 中亲手验证:输入the, unhappines

相关新闻

高效获取抖音无水印视频:开源工具全场景应用指南

高效获取抖音无水印视频:开源工具全场景应用指南

高效获取抖音无水印视频:开源工具全场景应用指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾遇到这样的尴尬——会议记录时需要保存重要的视频片段,却被平台水印破坏了画…

2026/7/6 13:07:48 阅读更多 →
CefFlashBrowser:解决Flash数字遗产访问难题的轻量级技术方案

CefFlashBrowser:解决Flash数字遗产访问难题的轻量级技术方案

CefFlashBrowser:解决Flash数字遗产访问难题的轻量级技术方案 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 在现代浏览器全面终止NPAPI插件支持的背景下,大量教育…

2026/7/6 13:08:39 阅读更多 →
如何突破网盘限速?八大平台全支持的开源直链解析方案

如何突破网盘限速?八大平台全支持的开源直链解析方案

如何突破网盘限速?八大平台全支持的开源直链解析方案 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…

2026/5/17 6:46:22 阅读更多 →

最新新闻

ICM-42688-P与PIC24HJ256GP610在运动控制中的高效协同

ICM-42688-P与PIC24HJ256GP610在运动控制中的高效协同

1. ICM-42688-P与PIC24HJ256GP610的黄金组合解析在工业自动化和机器人控制领域,传感器与微控制器的协同工作能力直接决定了系统性能的上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS运动传感器,与Microchip的PIC24HJ256GP610微控制器形成的技术组合&…

2026/7/6 13:07:53 阅读更多 →
STM32与TPAFE0808实现多通道信号采集方案解析

STM32与TPAFE0808实现多通道信号采集方案解析

1. 项目背景与核心需求在工业自动化、医疗设备和精密仪器领域,多通道信号采集与系统监测一直是关键的技术挑战。传统方案往往需要复杂的模拟前端电路和多个分立元件,不仅增加了系统复杂度,还容易引入噪声和漂移问题。TPAFE0808这款8通道可编程…

2026/7/6 13:07:53 阅读更多 →
Unity MyFramework:框架里的代码简化技巧(三)

Unity MyFramework:框架里的代码简化技巧(三)

前两篇写了 MyFramework 里一些常用的代码简化技巧。 这一篇继续写第三组。 不过这次只写真正能让调用侧代码变短的东西。 也就是一眼能看到: 原本要写几行,现在一行就能表达清楚。 这类工具不是复杂系统。 它们更多是项目长期开发中沉淀出来的小函…

2026/7/6 13:03:49 阅读更多 →
终极指南:用DistroAV实现专业NDI网络音视频传输的完整方案

终极指南:用DistroAV实现专业NDI网络音视频传输的完整方案

终极指南:用DistroAV实现专业NDI网络音视频传输的完整方案 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi DistroAV(原名OBS-NDI)是一…

2026/7/6 13:03:49 阅读更多 →
AD 23 与 AutoCAD 2024 协同:DXF 板框导入的 5 项预处理与 1 个精度保障技巧

AD 23 与 AutoCAD 2024 协同:DXF 板框导入的 5 项预处理与 1 个精度保障技巧

AD 23与AutoCAD 2024高效协同:DXF板框导入的预处理全流程与精度控制实战在硬件开发领域,PCB工程师与结构工程师的协同效率直接影响产品开发周期。当结构工程师使用AutoCAD 2024完成机箱设计后,如何确保其提供的DXF文件能够精准导入Altium Des…

2026/7/6 12:57:42 阅读更多 →
测试转大模型:AI 测试工程师的能力跃迁,把学习路线落到项目证据

测试转大模型:AI 测试工程师的能力跃迁,把学习路线落到项目证据

《测试转大模型:AI 测试工程师的能力跃迁,把学习路线落到项目证据》看起来是个大话题,但真落到项目里,常常就是几个具体选择。下面我尽量按实际开发时会遇到的问题来讲。摘要这篇面向想进入 AI 测试和质量工程方向的软件测试工程师…

2026/7/6 12:55:41 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻