当前位置: 首页 > news >正文

读了 GPT-4 分词器源码才明白:为什么 tiktoken 宁可丢掉合并树,也要采用“只读字典”的扁平设计?

tiktoken 的源码里藏着一个让人困惑的事实:当你调用tiktoken.get_encoding("cl100k_base")拿到 GPT-4 的分词器时,你拿到的不是一张合并规则表,而是一个{bytes: int}的字典——每个 key 是一段字节序列,每个 value 是一个整数 rank。没有任何地方告诉你"字节序列 A 和字节序列 B 合并成了字节序列 C"。

打开 minbpe 的gpt4.py,第 29 行有一个函数叫recover_merges()——函数名本身就透着一股不寻常的味道:为什么需要"恢复"合并规则?按理说,一个训练好的 BPE 分词器应该直接存储它的合并规则表才对,就像 minbpe 自己的BasicTokenizer.save()存的那样。但 tiktoken 偏偏不这么做。它只存了合并的结果(parent token 的字节和 rank),却丢掉了合并的过程(哪两个 children 合并成了这个 parent)。

这就像一个编译器只给你.o目标文件,不给你.cpp源文件——你能从目标文件里反推出源文件吗?在一般情况下不能,但在 BPE 合并树这个特定问题上,可以。而gpt4.py的前 46 行代码,就是这个逆向工程的完整实现。

更有意思的是,这段逆向工程代码还揭露了 GPT-4 分词器的一个怪癖——它对最基础的 256 个字节 token 做了一次排列

http://www.cnnetsun.cn/news/2607795.html

相关文章:

  • GPU编程能效优化:从数据传递到源码级能耗感知实践
  • 从搜索引擎到推荐系统:TF-IDF算法在Python中的实战场景全解析
  • 不只是小乌龟:用Gazebo和UUV Simulator打造你的第一个水下机器人仿真项目
  • 深入Unity动画底层:拆解Playable Graph与ScriptPlayable,实现自定义动画逻辑
  • 从开题到定稿零障碍!用 okbiye 搞定毕业论文全流程
  • 手把手教你用ModBus RTU控制汇川SV660P伺服电机(附CRC16校验C代码)
  • 2026微信小游戏开发者大会发布最新数据,各类型小游戏表现亮眼!
  • 智能制造的关键入口:从传统视觉到AI智能体视觉(系列)
  • 终极指南:如何在Android手机上解锁微信双设备登录,实现工作生活分离
  • 缠论量化框架chan.py:3大核心技术突破实现自动化交易革命
  • ChatGPT旅行规划辅助必须关闭的4个默认参数,否则行程可靠性下降67%(NIST旅行数据可信度白皮书实证)
  • 迭代扰动粒子滤波:突破重采样瓶颈,实现并行化贝叶斯状态估计
  • Azure云服务智能工具与数据库定价优化实战指南
  • 浏览器里的飞行实验室:零门槛玩转无人机日志分析
  • 如何用Python命令行工具突破百度网盘下载限速:完整实战指南
  • 多速率信号处理源码深度剖析
  • Analog Devices ADSP-TS201SABPZ060:TigerSHARC 600MHz DSP技术规格与设计参考
  • 向量数据库与RAG管道:本质区别与构建健壮系统的五大核心代价
  • 全双工大规模MIMO中联合波束成形与天线选择的自干扰抑制技术
  • 五子棋AI对战平台搭建指南:整合强化学习模型与PyGame可视化界面
  • 分数阶Sigma-Delta调制器设计与实现【附代码】
  • CentOS7 / Ubuntu 双系统静态IP永久配置实战(生产标准配置)
  • 保姆级避坑指南:在讯为RK3588开发板上从零构建Ubuntu 20.04.5桌面系统(含WiFi/蓝牙驱动配置)
  • 多核CPU上H.264视频编码并行优化:条带划分与混合通信实战
  • MoveIt2实战解析:从架构革新到实时运动规划
  • STC89C52单片机实战:用4个按键玩转数码管(显示、滚动、秒表一键切换)
  • NVM文件系统设计:原理、挑战与性能优化实践
  • 避坑指南:STM32CubeMX USART中断收发数据,这些HAL库回调函数细节千万别搞错
  • 【2024财务AI合规红线】:ChatGPT预测模型能否进财报附注?监管备案清单+模型可解释性验证工具包
  • 开源大模型实战:从DeepSeek看模型部署、微调与成本优化