# Ark批量打标限流自愈器
候选 id:`ark-batch-labeling-autotune`
## Ark 批量打标限流自愈器:诊断流程样例
### 场景
stage1 用 128 并发跑 27,194 条 session,结束后结果为 21,449 成功、5,745 失败,失败日志集中出现 Ark TPM 429。
### 输入
- `run_dir`: `output/ark_label_stage1_2026_xx_xx/`
- `raw`: 主跑产出的 `raw_results.jsonl`
- `config`: 包含 stage、model、concurrency、max_input_chars、retry 参数的 yaml
- `source`: 原始 session 表,用于核对总行数和重建失败行输入
### 检查步骤
1. 统计 `total_rows / ok_rows / error_rows / empty_response_rows / override_rows`。
2. 按错误类型聚合,确认失败主因是 `429`,而不是 prompt 解析、schema 校验或输入缺字段。
3. 估算 token 压力:按输入长度分位数和并发计算是否容易超过 TPM。
4. 检查 clean 规则:同一 row 只要历史上有一次 ok,就不能被后续 timeout/429 覆盖。
5. 生成 repair plan:只抽失败行,建议并发从 128 降到 48;如果 p95 输入过长,建议把原声截断到 4,500 字符。
6. 补跑后 finalize:再次核对 `ok_rows + accepted_override_rows == total_rows`,并输出残留失败清单。
### 成功信号
- `error_rows = 0`,或仅剩少量可解释的 `empty_response` 且已进入人工 override 表。
- `clean.csv`、`summary.xlsx`、标签汇总和代表 case 均成功生成。
- 诊断报告明确记录主跑并发、补跑并发、截断策略和最终闭合口径。
### 失败信号
- 429 比例持续高于阈值,降并发后仍无法下降。
- 同一 row 的成功结果被后续失败记录覆盖。
- finalize 后 `ok_rows + override_rows < total_rows`,说明仍有未处理缺口。
### 建议输出
- `doctor_report.md`: 给人看的诊断结论和调参建议。
- `repair_plan.json`: 给脚本执行的补跑参数。
- `only_errors_input.csv`: 只包含失败行的补跑输入。
- `manual_override_candidates.csv`: 少量空响应或不可自动判定行。