← 返回书架人工智能 · 交互式 Wiki
评估、诊断与复现入门专题讲解学习主线 5 / 6

保存完整状态以后,用 复现差异定位实验逐边界比较初值、输入、隐藏状态与更新。

ENGINEERING EXTENSION / ARTIFACTS

模型工件:配置、权重与恢复状态

权重只是其中一部分。config 与模型实现共同定义结构和计算规则,tokenizer 决定输入的 ID,safetensors 分片承载参数, generation config 决定推理行为,训练 checkpoint 还要保存优化器、scheduler、RNG 与数据游标。

01

一个部署模型目录里有什么?

点击文件,查看它在训练、推理与恢复中的责任。不同框架文件名会变,但依赖关系基本不变。

MODEL CONFIG

定义权重形状与前向规则

config 与模型实现共同定义结构和计算规则。宽度、词表等不匹配可能在加载时暴露;RoPE 频率、Norm epsilon、注意力窗口等即使不改变权重形状,也可能改变输出。

部署需要

必须

恢复训练需要

结构侧必须;还需数据/优化器状态

常见故障

权重可加载也不证明配置兼容;核对配置与实现版本,再用固定输入比对 logits。

{
  "hidden_size": 4096,
  "num_hidden_layers": 32,
  "num_attention_heads": 32,
  "num_key_value_heads": 8
}
02

config 中哪些字段决定模型结构?

这些字段能解释参数量、显存与推理行为。可据此核对配置与权重是否匹配。

hidden_size残差宽度 d

注意力/MLP 接口宽度,影响矩阵与激活形状。

num_hidden_layersblock 堆叠次数 L

参数量、激活与 KV 层数都按 L 增长。

num_attention_headsquery heads

决定并行 head 数和 Q/O 投影宽度。

num_key_value_headsKV heads

决定 K/V 投影和推理 KV Cache 大小。

intermediate_sizeFFN 宽度

dense 或每 expert MLP 的中间维度。

vocab_size词表大小

embedding 行数、LM head 宽度和 softmax 成本。

rope_thetaRoPE 频率尺度

影响位置旋转的频率尺度及长上下文行为。

tie_word_embeddings输入/输出共享

省参数,但输入查表与输出预测统计互相耦合。

03

推理加载与训练恢复各需要什么

文本推理需要结构、权重及匹配的 tokenizer/模板;恢复原训练轨迹还依赖优化器、调度器、随机数和数据位置。

DEPLOYMENT BUNDLE

推理所需

  • config + architecture code
  • tokenizer / chat template / special tokens
  • safetensors shards + index
  • generation config / stopping
  • precision / quantization metadata
TRAINING CHECKPOINT

继续训练还要

  • 模型权重与 optimizer state
  • scheduler / step / grad accumulation
  • RNG / data sampler cursor
  • data mixture / tokenizer / shard hashes
  • parallelism / precision / kernel config

恢复要和未中断基线比较:从同一 checkpoint、数据位置与随机状态各走相同步数,比较 loss、grad norm、LR 与参数差异。改变硬件、并行切分或非确定性 kernel 后,不一定逐位一致,需声明数值容差。优先在 optimizer step 边界保存;在累积中途保存还必须包含已累积梯度及进度。

EXPERIMENT / RESUME

恢复之后,能否继续同一条参数轨迹?

运行八步小型 Transformer 训练,在指定更新边界保存状态。完整恢复与遗漏状态各自从保存点继续;对照连续运行的相同步数,观察第一次偏差。

模型复用整层反传页的两位置、hidden=2、FFN=3、三类词表 block,训练全部权重和两个 RMSNorm 的缩放参数。四个固定样本按顺序循环,每次输入加入 [−0.05,0.05) 的小扰动;随机源使用明确的整数状态。

优化器为 AdamW:β₁=0.9、β₂=0.99、ε=10⁻⁸、衰减 0.01;η=0.015/(1+0.15u),u 是此前完成的更新数。只有末位置监督,输入本身不作为可训练参数。所有读数来自实际前向、解析反传与更新。

四个训练样本与输入扰动规则
样本两位置输入(扰动前)末位置目标 ID

初始随机状态 s=20261027。每次更新状态为 s′=(1664525×s+1013904223) mod 2³²,得到均匀数 u=s′/2³²,再用 0.05×(2u−1) 扰动一个输入元素。按矩阵行顺序消费四个随机数,保存时记录最后的整数状态;样本顺序为 A→B→C→D→A。

连续训练与断点恢复

真实小模型更新 · 双精度 · 固定数据

保存发生在 optimizer step 完成后,没有待累积梯度。RNG 使用 32 位线性同余状态,每条样本消费四个随机数;不复现 PyTorch RNG。

保存边界
首次参数偏差(容差 10⁻¹²)
恢复后各步的最大参数差
总步数样本:基线 / 恢复LR:基线 / 恢复Loss:基线 / 恢复梯度范数:基线 / 恢复更新后参数差
保存状态与恢复瞬间的状态
状态保存值恢复值

权重经 JSON 序列化再恢复;Adam m/v 与步数同时保存。相同运行环境下完整恢复逐值一致。遗漏数据游标若刚好落在循环边界,本例可能仍一致;这只反映四样本顺序循环的条件。

相同 loss 只验证了当前前向

清空 Adam 状态时,第一次恢复前向仍可能得到相同 loss 和梯度。动量与偏置校正不同会改变随后的参数更新,偏差从更新后开始显现。

随机状态需要与消费位置一致

相同种子能重建随机序列,恢复训练还需要回到该序列的正确位置。本例保存 RNG 整数状态;真实数据 worker、设备和随机算子可能拥有不同随机源。

数据游标与采样器各有职责

本例无 shuffle,仅记录已读样本数。实际训练还可能需要 epoch、采样器置换、worker 进度、数据版本和累积窗口位置,才能解释后续读取的样本。

比较读数必须使用同一时点

表格先记录输入、学习率、loss 与梯度范数,再执行更新,最后比较参数。恢复瞬间的参数相同只是起点,应继续比较后续轨迹。

CPU LAB / REPRODUCIBLE RUN

在本机运行同一训练与恢复实验

项目提供零额外依赖的 Node CPU 实验。它运行连续基线,写出 checkpoint,再为每种恢复方式启动一个新进程,与页面使用的计算逐项核对。

npm run lab:cpu
# 可指定一份新的输出目录
npm run lab:cpu -- --out-dir /tmp/embedding-cpu-lab

输出包含 checkpoint.json、uninterrupted.json、六种 resume-*.json 和 report.json,记录输入、随机状态、loss、梯度范数、参数、运行环境与首次偏差。默认每次创建新的时间戳目录。完整恢复断言失败会以非零状态退出。

这个实验使用本站的 JavaScript 小模型和解析梯度,主要验证计算与状态恢复。它不下载预训练模型,也不代表 PyTorch、CUDA AMP 或真实分布式训练的性能与泛化结果。缓存对照另用位置页的四维 Attention 配置。

带完整序列任务的工件对照见小模型学习与恢复实验;同 checkpoint、输入与 RNG 的定向回放见真实故障实验。

04

工件链的最小版本清单

数据顺序、tokenizer、并行和精度设置都会影响复现,需要与代码版本一同保存。

DATAshard + mixture + cursor

内容哈希、采样顺序与已消费位置。

TOKENtokenizer + template

vocab、normalization、special tokens、EOS。

MODELconfig + init + revision

结构、初始化来源、代码 commit。

RUNseed + precision + optimizer

学习率、accumulation、并行、kernel。

EVALsuite + contamination

测试版本、切片、judge 与指标。

EXPORTquantization + index

合并/转换、归一化、服务与回滚点。

NEXT / RUN IT ACROSS DEVICES

当一张卡放不下:并行、精度、activation 与通信如何组合?

进入训练系统深入 →

适用范围与一手资料

恢复实验实际训练两位置小型 Transformer,四条固定样本、输入扰动、明确 AdamW 和 LR;JSON 保存参数、优化器、RNG 与游标。Node CPU 实验另启进程恢复。该例不验证 PyTorch、GPU 或跨硬件逐位复现。

公式与机制的原始依据 · 4 项
知识目录
搜索知识库