Merge pull request #10 from xzh25/docs/record-final-tag-c500 docs: record final tag C500 validation
Merge pull request #10 from xzh25/docs/record-final-tag-c500
docs: record final tag C500 validation
面向 vLLM-MetaX 的量化 checkpoint 静态预检工具。在模型进入 C500 加载流程前, metax-model-preflight lint 读取 config.json、权重索引和 safetensors header, 提前报告 GPTQ/AWQ 权重结构及目标张量并行契约中的确定问题。
metax-model-preflight lint
config.json
它不会在主路径加载权重、导入 vLLM/torch、探测 GPU 或运行推理;默认也不会联网下载 模型。一次静态 PASS 只说明已覆盖的 checkpoint 契约成立,不是 C500 部署认证。
PASS
要求 Python 3.10 或更高版本。v0.1.0 从固定 tag 安装,不依赖 PyPI:
v0.1.0
git clone --branch v0.1.0 --depth 1 \ https://github.com/xzh25/metax-model-preflight.git cd metax-model-preflight python -m pip install .
需要参与开发时再从 main 建立工作分支,并使用 python -m pip install -e ".[dev]"。MetaX runtime、vLLM-MetaX、torch 和 mcoplib 不属于静态 lint 的依赖。
main
python -m pip install -e ".[dev]"
对准备以 TP2 运行的本地 Qwen2 GPTQ/AWQ checkpoint 执行检查:
metax-model-preflight lint /path/to/model \ --tensor-parallel-size 2 \ --target-vllm-version 0.20.0
命令直接输出结论、稳定 rule ID、事实说明和处理建议。自动化场景使用机器可读输出:
metax-model-preflight lint /path/to/model \ --tensor-parallel-size 2 \ --target-vllm-version 0.20.0 \ --format json > lint-report.json
如需先验证命令行为,可生成不含第三方权重的合成 checkpoint:
python examples/create_synthetic_fixture.py /tmp/mxpf-model \ --profile clean --family gptq metax-model-preflight lint /tmp/mxpf-model \ --tensor-parallel-size 2 \ --target-vllm-version 0.20.0
合成样例用于验证解析与规则边界,不构成真实模型在 C500 上可运行的证据。
量化模型的配置、packed tensor shape、分组参数和目标 TP 切分之间可能存在确定性冲突。 直接启动 vLLM-MetaX 时,这类问题需要经过进程初始化、设备占用和模型加载流程后才会暴露。 本项目把可由 checkpoint metadata 与已审阅源码契约判定的部分提前到静态阶段:
默认不执行 checkpoint 内的 Python 代码,不物化 tensor payload,也不修改、转换或重新量化 模型。远端模型只有已经存在于 Hugging Face 缓存时才会被解析;缺失 snapshot 必须通过 --allow-download 显式允许下载。
--allow-download
Route B 的稳定静态规则面限定如下:
architectures[0]=Qwen2ForCausalLM
model_type=qwen2
0.17.0
0.18.0
0.19.0
0.20.0
X.Y.Z
+local
.qweight
.qzeros
.scales
2/4/8
desc_act
qweight/qzeros
scales
4
zero_point
version
qwen2-linear-input-partition-v1
MXPF-WEIGHT-001
MXPF-WEIGHT-002
MXPF-WEIGHT-003
静态 PASS 还要求 num_hidden_layers 可核验,并且每层 Qwen2 的 q_proj/k_proj/v_proj/o_proj/gate_proj/up_proj/down_proj 七组量化投影完整。缺少整层 或完整投影组时保持 UNKNOWN,不会只根据已经出现的 tensor group 推断 checkpoint 完整。这里的“完整”只指七组量化投影;embed_tokens、norm、lm_head 等非量化权重 不在当前完整性检查范围内。
num_hidden_layers
q_proj/k_proj/v_proj/o_proj/gate_proj/up_proj/down_proj
UNKNOWN
embed_tokens
lm_head
无论 TP1 还是 TP>1,稳定 lint 要得到 PASS 都必须取得一个落在上述范围内的精确目标 版本。显式 --target-vllm-version 优先;未传入时,工具只通过 Python distribution metadata 观察已经安装的 vLLM 版本,不导入 vLLM。目标版本缺失、格式不稳定或未覆盖时 返回 UNKNOWN。
--target-vllm-version
版本未覆盖、架构不适用、格式无法识别、tensor 覆盖不完整或事实无法核验时,工具返回 UNKNOWN,不会从相近版本或相似模型推断兼容。完整规则与来源见 Route B 规则目录。
GPTQ 的非空 dynamic、modules_in_block_to_quantize、lm_head,以及 AWQ 的非空 modules_to_not_convert 尚未被检查器建模,因此返回 UNKNOWN。checkpoint_format 的已识别拼写只是本工具的审阅边界,不是 upstream vLLM 或 MetaX 发布的穷尽官方枚举。
dynamic
modules_in_block_to_quantize
modules_to_not_convert
checkpoint_format
官方源码关系审计显示,vLLM-MetaX 通过 adapter 插件接入同版本 upstream vLLM,并复用 其 from_config、get_config_filenames 和 create_weights 实现,不是包含完整量化 实现的独立 fork。因此 0.17.0—0.20.0 表示静态源码契约范围;仓库引用的真实 C500 runtime 证据目前只对应 0.17.0。无论版本是否在静态范围内,lint PASS 都只表示静态 契约成立。
from_config
get_config_filenames
create_weights
lint PASS
PASS / FAIL / UNKNOWN
静态规则和 lint 聚合结论严格使用三态:
lint
0
FAIL
1
3
UNKNOWN 既不是成功,也不是失败;CI 可以选择阻断它,但不应将其改写为 FAIL。 命令行参数错误由 argparse 返回 2;可处理的输入或系统错误返回 64,未预期的内部 错误返回 70。高级 doctor 为兼容既有证据流使用 PASS=0、FAIL=2、 UNKNOWN=3,调用方不要复用 lint 的退出码映射。
2
64
70
doctor
PASS=0
FAIL=2
UNKNOWN=3
mx-smi
--probe-hardware
不涉及 GPU 的高级证据包:
metax-model-preflight doctor /path/to/model \ --output-dir /path/to/new-evidence
默认 doctor 仍不调用 mx-smi。C500 最小运行必须同时指定 --probe-hardware --run-runtime,并设置 METAX_PREFLIGHT_ENABLE_GPU=1;该路径只适合 已准备好 MetaX 官方运行栈的受控 GPU 环境。runtime 成功只适用于报告记录的精确模型、 软件、硬件和参数组合。
--probe-hardware --run-runtime
METAX_PREFLIGHT_ENABLE_GPU=1
已有证据可独立复核 Schema、manifest、摘要和 staleness inputs:
metax-model-preflight check-report /path/to/evidence/report.json
VALID / STALE / UNKNOWN 是报告有效性,不是部署状态。完整语义见 状态与最终判定。
VALID / STALE / UNKNOWN
export-support 从既有 doctor 报告派生适合 Issue 或支持工单的较小副本:
export-support
metax-model-preflight export-support /path/to/evidence \ --output-dir /path/to/new-support-bundle
输出目录必须不存在,原证据不会被修改。派生包只包含:
new-support-bundle/ ├── report.json ├── report.txt └── manifest.json
默认策略删除内部扩展、主机和用户身份、绝对路径、credential-like 值以及 runtime stdout/stderr/traceback,不复制原始日志。它不是通用数据防泄漏系统,公开提交前仍需人工 检查三个文件。字段与边界见 支持材料导出。
本项目提供“加载前静态判定 + 可选高级证据流”,明确不做以下工作:
这是由社区维护的非官方工具,不代表 MetaX、vLLM-MetaX、mcoplib 或 kernel 团队的兼容性 认证。
src/
tests/
schemas/
data/
cases/
examples/
docs/
scripts/
tools/
tools/remote/
constraints/
.github/
根目录中的 pyproject.toml 定义包和工具配置;CONTRIBUTING.md、MAINTAINERS.md、 SECURITY.md 与 CHANGELOG.md 分别定义协作、维护、安全和版本记录; MetaX_Model_Preflight_项目说明书.md 保存项目范围与验收基线。运行生成的 evidence/、artifacts/、日志、虚拟环境和模型权重均不进入 Git。
pyproject.toml
CONTRIBUTING.md
MAINTAINERS.md
SECURITY.md
CHANGELOG.md
MetaX_Model_Preflight_项目说明书.md
evidence/
artifacts/
长期维护者为 @xzh25。Bug、规则提案和脱敏支持材料通过 GitHub Issues 提交;行为变更 通过 Pull Request 进入。
贡献新的稳定规则或扩大版本/模型范围时,必须同时提供来源、适用边界、规则生命周期以及 PASS / FAIL / UNKNOWN 三类测试。GPU 相关变更还必须记录精确模型 revision、软件栈、 硬件参数与外部证据摘要,且不能把模型权重或敏感原始材料提交到仓库。
具体流程见 CONTRIBUTING.md,维护范围见 MAINTAINERS.md,敏感问题按 SECURITY.md 报告。
Apache License 2.0。
面向 vLLM-MetaX 的 Qwen2 GPTQ/AWQ checkpoint 静态预检工具,提供严格 PASS / FAIL / UNKNOWN 结果与可复核证据。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MetaX Model Preflight
面向 vLLM-MetaX 的量化 checkpoint 静态预检工具。在模型进入 C500 加载流程前,
metax-model-preflight lint读取config.json、权重索引和 safetensors header, 提前报告 GPTQ/AWQ 权重结构及目标张量并行契约中的确定问题。它不会在主路径加载权重、导入 vLLM/torch、探测 GPU 或运行推理;默认也不会联网下载 模型。一次静态
PASS只说明已覆盖的 checkpoint 契约成立,不是 C500 部署认证。安装
要求 Python 3.10 或更高版本。
v0.1.0从固定 tag 安装,不依赖 PyPI:需要参与开发时再从
main建立工作分支,并使用python -m pip install -e ".[dev]"。MetaX runtime、vLLM-MetaX、torch 和 mcoplib 不属于静态 lint 的依赖。最短使用路径
对准备以 TP2 运行的本地 Qwen2 GPTQ/AWQ checkpoint 执行检查:
命令直接输出结论、稳定 rule ID、事实说明和处理建议。自动化场景使用机器可读输出:
如需先验证命令行为,可生成不含第三方权重的合成 checkpoint:
合成样例用于验证解析与规则边界,不构成真实模型在 C500 上可运行的证据。
解决的问题
量化模型的配置、packed tensor shape、分组参数和目标 TP 切分之间可能存在确定性冲突。 直接启动 vLLM-MetaX 时,这类问题需要经过进程初始化、设备占用和模型加载流程后才会暴露。 本项目把可由 checkpoint metadata 与已审阅源码契约判定的部分提前到静态阶段:
默认不执行 checkpoint 内的 Python 代码,不物化 tensor payload,也不修改、转换或重新量化 模型。远端模型只有已经存在于 Hugging Face 缓存时才会被解析;缺失 snapshot 必须通过
--allow-download显式允许下载。v0.1.0 精确支持契约
Route B 的稳定静态规则面限定如下:
architectures[0]=Qwen2ForCausalLM,且model_type=qwen20.17.0、0.18.0、0.19.0、0.20.0X.Y.Z,可附带+localbuild 后缀;按规范化后的精确版本选择契约.qweight、.qzeros、.scales;别名和大小写变体不纳入稳定契约2/4/8、desc_act为 bool、I32qweight/qzeros、F16/BF16/F32scales4、zero_point为 bool、I32qweight/qzeros、F16/BF16/F32scales;version不参与稳定契约qwen2-linear-input-partition-v1MXPF-WEIGHT-001、MXPF-WEIGHT-002、MXPF-WEIGHT-003静态
PASS还要求num_hidden_layers可核验,并且每层 Qwen2 的q_proj/k_proj/v_proj/o_proj/gate_proj/up_proj/down_proj七组量化投影完整。缺少整层 或完整投影组时保持UNKNOWN,不会只根据已经出现的 tensor group 推断 checkpoint 完整。这里的“完整”只指七组量化投影;embed_tokens、norm、lm_head等非量化权重 不在当前完整性检查范围内。无论 TP1 还是 TP>1,稳定 lint 要得到
PASS都必须取得一个落在上述范围内的精确目标 版本。显式--target-vllm-version优先;未传入时,工具只通过 Python distribution metadata 观察已经安装的 vLLM 版本,不导入 vLLM。目标版本缺失、格式不稳定或未覆盖时 返回UNKNOWN。版本未覆盖、架构不适用、格式无法识别、tensor 覆盖不完整或事实无法核验时,工具返回
UNKNOWN,不会从相近版本或相似模型推断兼容。完整规则与来源见 Route B 规则目录。GPTQ 的非空
dynamic、modules_in_block_to_quantize、lm_head,以及 AWQ 的非空modules_to_not_convert尚未被检查器建模,因此返回UNKNOWN。checkpoint_format的已识别拼写只是本工具的审阅边界,不是 upstream vLLM 或 MetaX 发布的穷尽官方枚举。官方源码关系审计显示,vLLM-MetaX 通过 adapter 插件接入同版本 upstream vLLM,并复用 其
from_config、get_config_filenames和create_weights实现,不是包含完整量化 实现的独立 fork。因此0.17.0—0.20.0表示静态源码契约范围;仓库引用的真实 C500 runtime 证据目前只对应0.17.0。无论版本是否在静态范围内,lint PASS都只表示静态 契约成立。PASS / FAIL / UNKNOWN静态规则和
lint聚合结论严格使用三态:lint退出码PASS0FAIL1UNKNOWN3UNKNOWN既不是成功,也不是失败;CI 可以选择阻断它,但不应将其改写为FAIL。 命令行参数错误由 argparse 返回2;可处理的输入或系统错误返回64,未预期的内部 错误返回70。高级doctor为兼容既有证据流使用PASS=0、FAIL=2、UNKNOWN=3,调用方不要复用lint的退出码映射。静态
lint与高级doctorlint(主入口)doctor(高级证据流)mx-smi硬件探测--probe-hardware不涉及 GPU 的高级证据包:
默认
doctor仍不调用mx-smi。C500 最小运行必须同时指定--probe-hardware --run-runtime,并设置METAX_PREFLIGHT_ENABLE_GPU=1;该路径只适合 已准备好 MetaX 官方运行栈的受控 GPU 环境。runtime 成功只适用于报告记录的精确模型、 软件、硬件和参数组合。已有证据可独立复核 Schema、manifest、摘要和 staleness inputs:
VALID / STALE / UNKNOWN是报告有效性,不是部署状态。完整语义见 状态与最终判定。导出可分享的支持材料
export-support从既有doctor报告派生适合 Issue 或支持工单的较小副本:输出目录必须不存在,原证据不会被修改。派生包只包含:
默认策略删除内部扩展、主机和用户身份、绝对路径、credential-like 值以及 runtime stdout/stderr/traceback,不复制原始日志。它不是通用数据防泄漏系统,公开提交前仍需人工 检查三个文件。字段与边界见 支持材料导出。
设计边界
本项目提供“加载前静态判定 + 可选高级证据流”,明确不做以下工作:
这是由社区维护的非官方工具,不代表 MetaX、vLLM-MetaX、mcoplib 或 kernel 团队的兼容性 认证。
仓库目录索引
src/tests/schemas/data/cases/examples/docs/scripts/tools/tools/remote/提供默认 dry-run 的远端编排constraints/.github/根目录中的
pyproject.toml定义包和工具配置;CONTRIBUTING.md、MAINTAINERS.md、SECURITY.md与CHANGELOG.md分别定义协作、维护、安全和版本记录;MetaX_Model_Preflight_项目说明书.md保存项目范围与验收基线。运行生成的evidence/、artifacts/、日志、虚拟环境和模型权重均不进入 Git。文档入口
v0.1.0最终标签 C500 复验(2026-07-27)贡献与维护
长期维护者为 @xzh25。Bug、规则提案和脱敏支持材料通过 GitHub Issues 提交;行为变更 通过 Pull Request 进入。
贡献新的稳定规则或扩大版本/模型范围时,必须同时提供来源、适用边界、规则生命周期以及
PASS / FAIL / UNKNOWN三类测试。GPU 相关变更还必须记录精确模型 revision、软件栈、 硬件参数与外部证据摘要,且不能把模型权重或敏感原始材料提交到仓库。具体流程见 CONTRIBUTING.md,维护范围见 MAINTAINERS.md,敏感问题按 SECURITY.md 报告。
License
Apache License 2.0。