Download docs/VALIDATION.md from roudone/PabJev-4b: direct link, hf CLI and curl.
- Browser
- Download file 5.12 kB
-
https://huggingface.co/roudone/PabJev-4b/resolve/main/docs/VALIDATION.md
- Command line
-
hf download hf://roudone/PabJev-4b/docs/VALIDATION.md
-
curl -L -o VALIDATION.md https://huggingface.co/roudone/PabJev-4b/resolve/main/docs/VALIDATION.md
发布包验收记录
日期: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 通过,覆盖:
- 231 条数据、金标和题型数量;
- 113/118 pseudo-sealed 划分;
- 无概率时 Calibration=0;
- pointer FP32 公式;
- 发布 pointer 严格加载;
- 结构特殊 token 防伪造;
- 全部 231 条编码和读出位置对齐;
- reliability 使用桶内真实均值;
- 自定义三题型样例格式;
- 参考 rows 重算 Intelligence/Calibration/Accuracy;
- step-150 训练参照;
- 模型与注意力契约;
- 两次参考运行的标签/概率确定性。
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 和归档规则排除。