PabJev-4b / docs /VALIDATION.md
roudone's picture
Upload PabJev-4b (qwen3.5 4b base, short150 best step-150 decision model)
2a4e414 verified
|
Raw History Blame Contribute Delete
5.12 kB

发布包验收记录

日期:2026-10-24
模型:PabJev-4b,short150 best(step 150)
基础模型展示名称:qwen3.5 4b
实测环境:单张 NVIDIA A800-SXM4-80GB(测试使用 GPU 2),Python 3.12.12、PyTorch 2.13.0+cu130、vLLM 0.30.0、Transformers 5.19.0、PEFT 0.21.2。

本次验收从独立发布目录重新加载权重并启动,未借用原服务的进程。原 GPU 1 在线服务未被停止或修改;测试使用独立的 18102/30002 端口,结束后仅关闭发布包自己的进程。

1. 权重、配置与代码闭包

  • 发布包 12 个运行时权重/配置/tokenizer 文件与当前在线 short150 merged bundle 逐字节一致。
  • 原始 short150 best checkpoint 的 4 个 pointer 张量与发布文件 逐值一致且均为 FP32。
  • 原始 adapter SHA256 为 af706b9bd88dff8c6f25613fd2a89231636834b2ce03afea64ded77010d63554,与发布 provenance 一致。
  • merged backbone:723 个张量、3 个分片、9,078,615,568 bytes(约 8.455 GiB);index 与每个 safetensors header 一致。
  • verify_bundle.py 通过:step=150、head_dim=256、32 层中 8 full + 24 linear、jev_prompt_attention=bidirectional、T=1、不量化。
  • vLLM 日志确认 FlashAttention 2、Triton/FLA GDN prefill、8 个 full-attention 层双向以及紧凑 </opt>+<decide> 读出。
  • 本地 runtime import 检查无缺失模块;评分不再需要原训练目录。
  • jevscore.py 与训练评分模块字节一致;独立提取的 legacy_metrics 与原训练函数在全部 231 条参考样本上输出完全相同。
  • 发布元数据仅做展示名称和路径清理;backbone 权重、结构配置、tokenizer 和 pointer 未因此改变。

2. CPU 自检

python service/selftest.py:13/13 通过,覆盖:

  1. 231 条数据、金标和题型数量;
  2. 113/118 pseudo-sealed 划分;
  3. 无概率时 Calibration=0;
  4. pointer FP32 公式;
  5. 发布 pointer 严格加载;
  6. 结构特殊 token 防伪造;
  7. 全部 231 条编码和读出位置对齐;
  8. reliability 使用桶内真实均值;
  9. 自定义三题型样例格式;
  10. 参考 rows 重算 Intelligence/Calibration/Accuracy;
  11. step-150 训练参照;
  12. 模型与注意力契约;
  13. 两次参考运行的标签/概率确定性。

Python AST、所有 JSON/JSONL 语法、三个 shell 脚本语法以及 verify_install.py 也均通过。

3. 启动与请求

完整执行 service/start.sh:

  • 启动总耗时:110 秒;
  • 权重契约检查通过;
  • 端到端 smoke 返回 left,两个概率和为 1,紧凑读出为 3 行;
  • representative warmup:5 种输入形状 × 2 轮,共 10 次请求全部通过;
  • 再次执行启动命令时,只复用健康契约完全匹配的实例;
  • service/stop.sh 仅停止本包 PID/进程组。

额外请求验收:

  • examples/all_types.json:choice/noul/score 多问题均返回完整概率,usage 为 119 expanded tokens、10 个紧凑 hidden rows;
  • 自造 64×64 红色 PNG:返回 choice=red,验证单图 processor、decision template 和多模态 vLLM 链路;
  • examples/custom.jsonl:3/3 概率有效、3/3 argmax 正确,pseudo-sealed 关闭,且未错误附加原 JevBench training parity。

4. 从发布包重跑的完整 JevBench

条件:并发 1、T=1、BF16 backbone、FP32 pointer、不量化、231/231 概率有效。

指标 发布包实测
Overall Accuracy 0.883117(204/231)
choice / noul / score Accuracy 0.892086 / 0.864865 / 0.888889
Intelligence 51.3356
Calibration 90.7539
ECE / fidelity 0.071062 / 0.886139
invalid / timeout 0 / 0
请求 wall time 16.537 s
请求 QPS 13.9687
p50 / p95 / p99 latency 0.0575 / 0.1377 / 0.1851 s
total elapsed(含初始化、评分与写盘) 16.625 s

训练 parity:总体及三题型 Accuracy、Intelligence 差值均为 0;Calibration +0.0913,ECE -0.002177,fidelity -0.000351。

与原最佳参考运行的逐题比较

package_vs_reference.json 记录:

  • n_common=231;
  • n_label_mismatch=0;
  • n_probability_shape_mismatch=0;
  • probability_max_abs=0.0;
  • probability_mean_of_row_mean_abs=0.0。

因此,本次不是只核对汇总分数,而是从发布目录重跑后做到了 231 条完整概率逐项零差异。wall time/QPS 会随缓存和机器负载变化,不作为逐位一致性指标。

5. 验收证据文件

reference_results/package_validation/:

  • startup.json:完整启动配置和 110 秒耗时;
  • smoke.json:启动冒烟响应;
  • jevbench_c1.json:本次从发布包重跑的完整 231 条汇总与逐题概率;
  • package_vs_reference.json:与 reference_results/short150_c1.json 的逐项比较;
  • custom.json:三条自定义数据的功能验收。

原始参考运行、并发 4 结果、重复性比较和温度校准 sidecar 位于 reference_results/ 其他文件。本地 logs/、run/、outputs/、测试图片和 PID 不属于上传内容,已由 .gitignore、.hfignore 和归档规则排除。