本页章节
INITIALIZATION / RESIDUAL / WIDTH TRANSFER
初始化与宽度:把坐标尺度和学习率一起核对
初始化决定前向与反向从什么尺度开始,残差与 Norm 决定尺度怎样穿过深度。宽度迁移还要明确输入、隐藏权重、readout 和 optimizer 的规则,再用未参加选择的宽度检验实际训练结果。
前向、反向和参数位移要分别记录
线性层的 fan-in 是每个输出求和的输入坐标数量。在独立、零均值的近似下,输出方差随 fan-in 和权重方差的乘积变化;训练后权重与激活会相关,初始化的独立性计算不能直接代替更新后的测量。
hidden 梯度是标量目标对当前中间张量的导数;参数梯度是对权重的导数,两者形状和单位不同。参数位移与坐标位移另用更新前后的差值测量。深度页记录 sequence-mean CE 的导数,宽度页记录分类 CE;初始化与更新 1/4 次的读数分开展示。
μP 用一套输入、隐藏层与 readout 规则
本实验以 n₀=16 为基础宽度,m=n/n₀。输入维度 8 和类别数 3 固定;base/delta 模型只提供哪些维度随 n 变化的形状信息,不参与训练。μP 使用作者 set_base_shapes、mup.init.normal_、MuReadout 与 MuAdam;SP 使用实际 fan-in 的正态初始化和普通 Adam。
| 参数 | SP 初始化方差 | μP 初始化方差 | μP 实际 Adam LR | 前向因子 |
|---|---|---|---|---|
| input.weight:n×8 | 2/8 | 2/8;一个无限维 | η | 1 |
| hidden.weight:n×n | 2/n | 2/n;两个无限维 | η/m | 1 |
| readout.weight:3×n | 1/n | 1/n₀;一个无限维 | η | MuReadout 输入乘 1/m |
| 三个 bias | 全部为 0 | 全部为 0 | η | bias 本身的前向因子为 1 |
作者包首次 set_base_shapes 会把默认 readout 权重与 bias 乘 √m;本脚本随后按上表重新初始化,设置形状先于自定义初始化和 optimizer。恢复已有参数时使用 rescale_params=False,重复转换会改变模型。MuAdam 1.0.0 只对两个无限维的隐藏权重除 m;本实验 decay=0、β=(.9,.999)、ε=10⁻⁸、不裁剪。
初始 μP readout 非零且零均值时,输出可能随宽度缩小;作者将它解释为有限宽度暂态。检查重点包括更新后的各层坐标和 readout。基础宽度下两种参数化使用相同初始化、数据流和 optimizer 数值,重合是预期的。
读取一份实际初始化与宽度报告
默认数据是完整报告中的精简字段:已冻结 LR 的坐标、六个参数的账本、逐层尺度和测试结果。可完整报告(GitHub)↗或原始工件,再导入 report.json 查看相同来源的数据。每次实验建立新目录;已有报告拒绝覆盖。
uv pip install --python .venv-framework/bin/python --no-deps -r scripts/dynamics-requirements.txt
.venv-framework/bin/python scripts/test-training-dynamics.py
node --test scripts/test-training-dynamics.mjs
node scripts/run-dynamics-lab.mjs --out-dir artifacts/dynamics-lab-my-run --write-page-data
等待实测快照初始化。
固定 CPU 单线程、PyTorch 2.9.0、NumPy 2.3.4、mup 1.0.0。经过时间包含评估、探针与保存,可能受并行任务影响,不作为吞吐对比。文件只在本地浏览器读取;结构校验不认证外部文件真伪。
同一基础 LR 下,坐标随宽度怎样变化?
固定两层隐藏 MLP 的真实坐标
同 16 条验证输入 · 未拟合曲线| 参数化 / 宽度 | 坐标均值 | seed min…max | seed 数 | 基础 LR |
|---|
基础 LR 只由宽度 16 选择
合成任务为 8 维高斯输入,标签由固定 8→12→3 ReLU teacher 的 argmax 产生,256 条训练、128 条验证和128 条独立测试。每个候选使用 80 次 batch=32 更新。选择规则是宽度 16 的三个 seed 最终验证 CE 均值最小;宽度 32/64 的扫描只作诊断。宽度 128 在选择冻结后仅运行选定 LR,没有在该宽度搜索候选。
| 宽度 / 用途 | 基础 LR | 三 seed 验证 CE / nats | 选择状态 |
|---|
目前网格最佳值在上边界 .03。它是已测候选中的最佳值,最优值可能在网格之外;这项结果不足以确定连续 LR 最优点。坐标检查、有限候选选择与独立测试是三种证据,分别保留。
检查某次运行的初始化与实际 LR
| 参数 | 形状 | 无限维数 | 目标 / 实测初始方差 | group / 实际 LR | readout 输入因子 |
|---|
深度、Norm 和残差在共享 decoder 中单独比较
逐层激活与反向尺度
同八条训练序列 · 初始化 / 四次更新| 层 | 激活 RMS | seed min…max | hidden 梯度 RMS | FFN 输出权重梯度 RMS |
|---|
Norm 为 affine LayerNorm,γ=1、β=0、ε=10⁻⁵;共享 core 权重以 std=.02 的正态分布初始化,bias 为 0,固定正弦位置编码,GELU FFN,未绑定输出权重。四次更新只探测早期轨迹,不足以评估收敛或提出最优残差配方。
Xiong 等分析的简化设置使用单头、d×d 矩阵、Q/K 零初始化和高斯输入。这里的多头、因果 mask、固定位置编码与 std=.02 初始化不同,因此本页测量不能直接复述其定理边界,更不能推出所有 Pre-LN 网络、optimizer 和预算都无需 warmup。
把已冻结 LR 放到保留宽度
| 参数化 / 宽度 | 测试 CE 均值 / nats | seed min…max | 测试分类正确率 |
|---|
宽度 128 的测试结果在 LR 选择完成后读取;它检验这份固定任务、有限宽度、三个 seed 与 80 次更新配方。作者参数化规则及坐标检查有机制依据,本表是否改善仍由实测决定。MLP 的结果与固定宽度 decoder 的深度探针分开解释,不能从这里推出 Transformer 深度迁移或普遍泛化保证。
资料的核对范围与下一步证据
2026-10-28 已读取 Microsoft μP 作者 README 的参数形状、初始化、optimizer、恢复与坐标检查说明;逐行读取安装的 mup 1.0.0 的 layer、optim、shape、init 和 infshape,并核对 tag v1.0.0 的 layer/optim 字节一致。读取 Tensor Programs V 附录 B 的参数分类与表 8/9、D.1 坐标检查和 D.2 初始输出暂态;读取 Xiong 等第 3/4 节的 Norm 架构与初始化分析。完整标题、作者、URL、包和源码 SHA-256 记录于实施说明与本地报告。
工程上先排查单位、损失分母、参数组和 readout,再检查训练预算、验证稳定性与保留宽度。LR 网格边界、seed 波动、不同任务与 optimizer 都需要独立证据;此页保留有限实验的结果和范围。
适用范围与一手资料
固定宽度的 decoder 深度/Norm/残差实验与固定深度的 MLP 宽度实验分别进行。记录初始化与更新后尺度、多个 seed、实际参数组与 readout 因子;μP 坐标检查与保留宽度的学习率验证只解释所测任务和预算。
公式与机制的原始依据 · 4 项
- Microsoft μP · v1.0.0 author implementation固定作者实现的 readout、参数组、初始化与 base shapes;README 与安装源文件的实际核对范围见本轮尺度实验实施说明
- Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer (2022)μP 参数化与跨宽度超参数迁移的条件和实验
- On Layer Normalization in the Transformer Architecture (ICML 2020)PMLR 119:10524–10533;摘要与出版信息已核对,正文假设与本轮实验的对应范围见尺度实验实施说明
- PyTorch 2.9 · Autograd mechanics本项目框架对照固定 PyTorch 2.9.0;冻结、计算图与 no-grad 的语义,2026-10-27 核对