Skip to content
Back to skills

Quant Tuning Score Dit

ASecurity

Aggregate DiT inference outputs into per-dimension VBench metrics via AISBench. Run after the quant-tuning-evaluate DiT workflow produces a directory of mp4s and the user supplies a VBench-1.0-mini JSON + pre-populated cache dir. Single mode (Standard).

  • 32 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 23, 2026
toolspythonbashgit

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 6 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add kali20gakki/msAgent --skill quant-tuning-score-dit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Quant Tuning Score Dit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Quant Tuning Score Dit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kali20gakki-quant-tuning-score-dit/badge)](https://www.skillsdirectory.com/skills/kali20gakki-quant-tuning-score-dit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: quant-tuning-score-dit
description: Aggregate DiT inference outputs into per-dimension VBench metrics via AISBench. Run after the quant-tuning-evaluate DiT workflow produces a directory of mp4s and the user supplies a VBench-1.0-mini JSON + pre-populated cache dir. Single mode (Standard).
license: Apache-2.0
metadata:
  version: 0.1.0
  domain: quantization
  framework: msmodelslim
  protocol: script
  skill_class: tool
  gating:
    model_family: dit
    enabled_by_default: false
    state: experimental
  aliases:
    - dit-score
    - dit-aggregate
    - vbench-evaluate-dit
  keywords:
    - vbench
    - aisbench
---

# Skill: DiT 调优评分(VBench)

对 `quant-tuning-evaluate` DiT 扩展节产出的 `<subdir>/<idx:04d>.mp4` 视频目录打分:通过 AISBench-VBench 1.0 给出逐维度分数 + Quality / Semantic / Total 加权总分;可选与 FP baseline 对比。

## 调用模式(重要)

**本 Skill 是 tool/script,不是 subagent。**

- ✅ 调:`execute python scripts/score.py --infer-outputs ... ...`
- ❌ 不能:`Task(subagent_type="quant-tuning-score-dit", ...)` —— "quant-tuning-score-dit" 是 **skill 标识符**,**不**是 subagent_type,不能塞进 Task 工具。走 Task 会撞「subagent_type 不在允许的清单内」错误。
- 本文档下文里出现的「路由/委派/接手」等措辞是沿用 orchestrator 的术语,意思就是「orchestrator 在合适的时机 `execute` 调本 skill 的脚本」,**不是**真的起一个同名 subagent。

## 调用流程

orchestrator 每轮末按 `model_family=dit` 调本 Skill 的 score.py 脚本时:

```
1. 跑 scripts/check_vbench_cache.py
   ↓ 拿 candidates
   把 candidates 逐字呈现给用户,等用户确认
   ↓ 用户确认路径
2. 读 NPU 卡号(见下方"显卡配置") → 拼到命令前 → 跑 scripts/score.py ...
   ↓ JSON 输出
3. 把 ok/scores/overall_score 写进 history.yaml
```

**显卡配置(NPU):** VBench 打分需给 `ais_bench` 子进程指定 NPU 卡号。

- **卡号取自现有流程**:从 orchestrator 的 `device_indices` / `history.yaml` / `run_manifest.json` / 用户对话上下文里拿到当前轮次使用的物理卡号(如 `[0]` → `"0"`)。**不要凭空假设、不要 export 到环境变量里等子进程继承**。
- **直接拼在命令前**(不是 `export`,不是写在脚本头部):

  ```bash
  ASCEND_RT_VISIBLE_DEVICES=0 python scripts/score.py \
      --infer-outputs ... --full-json-dir ... --vbench-cache-dir ...
  ```

- 单卡优先(一般取 `device_indices` 的第一个值),避免多卡通信开销。
- 如果拿不到卡号,先 `npu-smi info` 查一下,挑一张空闲卡。

**transformers 版本兼容(NPU 场景):** VBench 打分依赖的 AISBench 链路在 `transformers >= 4.50` 上可能不兼容;建议使用 `< 4.50`(如 `4.42.3`)。

- **打分前**:先检查当前 transformers 版本,若 `>= 4.50` 则临时降到 `4.42.3`(如 `pip install transformers==4.42.3`)。
- **打分后**:切回用户原本的版本(记下切换前的版本号,跑完恢复)。
- **切换失败不勉强**:装不上 / 切不回去都不要阻塞主流程,记一行 warning 后继续;只在真正触发 AISBench 兼容错误时才回头处理。
- 推荐命令顺序:

  ```bash
  ORIG_VER=$(python -c "import transformers; print(transformers.__version__)")
  python -c "from packaging.version import Version; import transformers, sys; sys.exit(0 if Version(transformers.__version__) >= Version('4.50') else 1)" \
    && pip install transformers==4.42.3 || true

  ASCEND_RT_VISIBLE_DEVICES=0 python scripts/score.py ...

  pip install "transformers==${ORIG_VER}" || echo "warn: failed to restore transformers ${ORIG_VER}"
  ```

**禁止跳过 precheck,禁止命中候选后静默选用第一条,禁止 ok=false 后未经授权下载。**

## CLI 契约

orchestrator 调本 skill 时,**通过 `execute` 跑** `scripts/score.py`(脚本形式),例如:

```bash
python scripts/score.py \
    --infer-outputs     {workdir}/infer_outputs/round_N \
    --full-json-dir     <VBench_kmeans_info*.json> \
    --vbench-cache-dir  <用户提供的路径> \
    [--baseline-outputs {workdir}/baseline_outputs/round_N] \
    [--score-dimensions dim1,dim2,...] \
    [--max-num-workers N] \
    [--baseline-tolerance 0.05] \
    [--round N] \
    [--timeout-sec 7200] \
    [--output-json {workdir}/history/scores_round_N.json]
```

输出 shape(msagent-io v1):

```json
{
  "protocol": "msagent.subagent_io",
  "subagent_type": "quant-tuning-score-dit",
  "status": "ok",
  "output": {
    "ok": true,
    "round": 2,
    "scorer": "vbench",
    "scores": {
      "subject_consistency": 0.842,
      "background_consistency": 0.913,
      "aesthetic_quality": 0.612,
      "motion_smoothness": 0.978
    },
    "quality_score": 76.4,
    "semantic_score": 0.0,
    "overall_score": 61.1,
    "loss_vs_baseline": 1.2,
    "is_satisfied": true,
    "baseline_overall_score": 59.9,
    "duration_sec": 1834.5,
    "commands": [{"name": "vbench_score", "command": "ais_bench ..."}],
    "inference_params": {  // 来自 {infer_outputs}/run_manifest.json(如有)
      "round": 2,
      "vbench_args": ["--task", "t2v-A14B", ...],
      "auto_env_overrides": {...}
    }
  }
}
```

失败时 `status: failed`、`error.code` 是稳定字符串(见 `references/aisbench_vbench.md` 错误码表)。退出码:`ok` → 0;`failed` → 2。

## 实现路径

```
score.py (单进程)
  ├─ patch_config.py     → 改写 AISBench 模板三处变量
  ├─ subprocess:         ais_bench <patched> --mode eval --max-num-workers N
  ├─ 解析 {work_dir}/results/{model_abbr}/vbench_<dim>.json
  ├─ 解析 summary/summary_*.txt 的 vbench_quality / semantic / total
  ├─ 可选: 同样的流程对 --baseline-outputs 再跑一次
  └─ 读 {infer_outputs}/run_manifest.json 填 inference_params
```

**Quality / Semantic / Total 不本地重算**——直接读 AISBench `VBenchSummarizer` 官方值。

## AISBench 输出布局(自动识别)

不同 AISBench 版本 / 配置会把结果写到不同的目录布局,score.py 通过 `_resolve_output_dirs(work_dir)` 自动探测,按以下顺序匹配:

| 优先级 | 布局 | 触发条件 |
|---|---|---|
| 1 | `{work_dir}/results/` + `{work_dir}/summary/` | 旧版配置或显式把 `output_dir` 重定向到 work 根 |
| 2 | `{work_dir}/outputs/default/<latest-ts>/{results,summary}/` | AISBench 默认配置;多次跑会累积多个时间戳目录,**取最新** |
| ✗ | — | 都不存在 → `error.code = "AISBENCH_NO_OUTPUT"` |

两种布局并存时走优先级 1(路径更短、好排障)。回归覆盖见 `scripts/test_score_paths.py`(6 个用例)。

## 约束

- **不下载权重**:错误信息引导 orchestrator 跑 `check_vbench_cache.py` 把候选呈现给用户
- **环境错误可定位**:stderr 被分类为 `ENV_DECORD_MISSING` / `ENV_DETECTRON2_MISSING` / `ENV_TORCH_MISSING` / `ENV_CUDA_MISMATCH` 等,每条都附官方 doc URL:`https://github.com/AISBench/benchmark/blob/master/docs/source_zh_cn/extended_benchmark/lmm_generate/vbench.md`
- **错误即停**:评分失败立即回传 `failed`
- **不修改 AISBench 上游**:纯消费者
- **错误码稳定**:错误码字符串不能改

## 参考

- 错误码表 / KI 速查:`references/aisbench_vbench.md`
- 缓存预检:`scripts/check_vbench_cache.py`
- AISBench VBench 官方文档:<https://github.com/AISBench/benchmark/blob/master/docs/source_zh_cn/extended_benchmark/lmm_generate/vbench.md>
- Orchestrator 路由:`quantization-accuracy-tuning-orchestrator/SKILL.md`

Files in this skill

  • SKILL.md7.5 KB
  • references/aisbench_vbench.md7.6 KB
  • scripts/check_vbench_cache.py4.7 KB
  • scripts/patch_config.py7.7 KB
  • scripts/score.py21.1 KB
  • scripts/test_score_paths.py4.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in tools →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.