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

动态分词器 / 联合训练 验证报告(命题 P10)

把框架"尚未验证的下一步"做成可证伪实验:在同等总算力下,训练中途改变分词器(课程式 / 域漂移自适应)能否击败固定分词器?

一、实验设计(关键:消除 embedding 手术)

所有条件用同一 V_MAX=6001 的 embedding(8.36M 参数,FRSMASH v3.6,4 层)。改变分词器 = 改变"哪些 token ID 出现在数据里",靠新增的restrict_to(merge_indices)(保持 master ID 一致)实现——换阶段时 embedding 行不错位、无需手术。这是对"动态分词"最干净的可实现近似。

  • TEST 1(静态数据):英文 18M 字符,1000 步。固定 500/1500/full vs课程500→1500→3000→full(各 250 步)。
  • TEST 2(域漂移 A→B):A=前 10M 字符(前几本书),B=后 6M(不同书),600 步 A + 400 步 B。
    • frozen:1500 merges 贯穿 A→B(为 A 定大小、冻进 B)
    • oracle:full merges 贯穿(上界,一开始就见 B 词表)
    • dynamic:A 阶段用 1500,在 A→B 边界扩到 full(适应 B)

公平双轴:BPC(bits/char,分词器无关)作公共度量。

二、结果(lower = better)

TEST 1(静态数据,1000 步)

条件final BPC
static_full1.7731
static_1500 (V*)1.8013
static_5001.8138
curriculum1.8569(最差)

TEST 2(A→B 漂移,最终 B 集 BPC)

条件final B-val BPC
oracle1.8093
frozen1.8468
dynamic1.9085(最差)

三、裁决

❌ 命题 P10(“动态/联合分词 > 固定分词”)—— 在本规模被证伪

  • TEST 1:课程式扩词表是最差(1.857 > 全部固定)。把 1000 步预算劈成 4 段、每段换一套分词,模型在每次切换都要"重学"新分词;不如一开始就用最终分词训满。
  • TEST 2:在 A→B 边界切换分词器反而比冻结更差(dynamic 1.909 > frozen 1.847)。切换瞬间,新增的 ~4500 个 embedding 行是随机初始化、从未训练,模型得用 B 阶段的 400 步去现学它们——切换扰动 > 适应收益
  • 两种情况下都是oracle(一开始就选对词表、贯穿训练)最优

机理:分词器切换是一次"离散扰动",其重学成本在本规模(8M/1000步)压过了任何适应性好处。框架设想的收益需要这些扰动不存在或可微才可能显现。

四、边界与未排除的可能性(诚实保留)

本结果证伪的是最简形态的动态分词(中途硬切词表)。框架更强的形态未被检验,仍可能成立:

  1. 可微/软分词(Gumbel、VQ-VAE 直通估计):消除离散切换扰动——本实验未实现。
  2. 更平滑的渐进式 merge 添加(每 N 步加几个,而非一次性扩到 full):可能降低扰动。
  3. 更强的分布漂移(英→代码、英→中):本实验的 A/B 是同为 Gutenberg 的不同书,漂移温和,"B 需要新词表"的压力小,动态的潜在收益本就有限。强漂移下动态或可翻盘。
  4. 更大规模 / 更长训练:8M/1000 步欠训练,重学成本占比偏高;大模型或能吸收切换扰动。

五、对 LLM 实践的结论

  • 当下结论(可直接用):别在中途换分词器。预训前用 α≈1 定好词表、贯穿全程,是目前可证最优的策略(oracle 总赢)。"动态分词器"作为工程实践,暂无可证收益
  • 对框架的意义:这是对原理论的第次硬修正——前三次(分形维 D 失效、MDL 最小≠临界、双轴权衡)下调了"临界最优",本次直接证伪了"动态优于静态"的最简形态。框架要 salvage 动态分词,必须证明可微/渐进版本能避免切换扰动——那是下一步(如果要做)的明确技术目标,而非再讲一遍叙事。

复现

# F:\rwkv\.venv: python dyn_experiment.py # ~7 条件, ~5 分钟 # Python3.14: python analyze_dyn.py # 出 dyn_results.png

输出:dyn_runs/log_*.jsonsummary.jsondyn_results.png

http://www.jsqmd.com/news/1131360/

相关文章:

  • 国产 AI 编程助手六强争霸:2026 开发者选型全攻略
  • Copilot够用吗?LLM人机协作能力诊断三维度
  • 基于TOTP协议自建企业级双因素认证系统:从原理到实战
  • 基于YOLO26的文档表格识别技术解析与实践
  • 熵权法实战:结合TOPSIS模型解决供应商评价问题(附2021国赛C题Python代码)
  • LLM Agent企业级落地指南:核心组件、架构设计与避坑实践
  • RAG不是加个数据库:四种工业级架构选型指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 刷脸取盘机技术解析与应用实践
  • STM32与M95M04 EEPROM的嵌入式存储方案
  • MySQL 8.0 INFORMATION_SCHEMA 实战:4种表结构查询SQL的完整对比与性能分析
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析
  • TRE、FRE、FLE 辨析:医学图像配准 3 大误差指标详解与选用指南
  • 用C#编写语音自动朗读机器人
  • 高精度计时系统设计与实现:CS2200-CP与MKV42F微控制器应用
  • SAM2模型解析:图像分割新突破与实战指南
  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • Kali Linux下利用Docker Compose快速搭建Joomla 3.7.0 SQL注入漏洞靶场
  • Windows Hypervisor Platform (WHP) 原理解析:VMWare 15.5.5 如何从 VMM 切换到用户态
  • 2024年AI视频生成与多模态数据集技术解析
  • 基于Si4731与STM32F207的嵌入式音频系统开发指南
  • 2024主流AI大模型架构深度解析:从Transformer到MoE,应用选型与工程部署指南
  • YOLOv5结合注意力机制提升小目标检测精度
  • 深度估计新范式:像素级扩散模型与语义引导优化
  • YOLOv12改进:RIS-PiDiNet主干网络提升旋转目标检测
  • 一键搞定20+种Android固件:Firmware Extractor让解包变得如此简单
  • 深度解析wxauto:Windows微信自动化完整技术实现指南
  • 无感FOC控制原理与Python仿真实践
  • Java突变测试实战:Pitest与JUnit整合提升测试有效性
  • Android应用上架Google Play避坑指南:避免被标记为恶意软件的实战策略