# FlashTrace 实验 3:长/短 CoT 对比(case study) 本目录提供一个「长/短 CoT」的最小可复现实验: - 从 RULER `niah_mq_q2 (1024)` 中分别筛出: - short-CoT:短推理 + `\box{}` 最终答案 - long-CoT:长推理 + `\box{}` 最终答案 - 只跑 `attnlrp`(hop0)并只计算 token-level `recovery@10%`(gold 来自 `needle_spans`)。 - 落盘 trace(npz + manifest)到 `exp/exp3/output/`,格式对齐 `exp/exp2/run_exp.py` 的 trace 习惯。 ## 1) 采样与过滤(生成 + judge) 默认读取: `data/ruler_multihop/1024/niah_mq_q2/validation.jsonl` 需要一个 OpenAI-compatible 的 chat API(默认 `http://localhost:4000/v1`)以及 API key。 ```bash export FLASHTRACE_API_KEY=... # 或 OPENAI_API_KEY python exp/exp3/sample_and_filter.py \ --tokenizer_model /opt/share/models/Qwen/Qwen3-8B/ \ --min_long_thinking_tokens 512 \ --max_short_thinking_tokens 256 ``` 输出(默认): - `exp/exp3/data/niah_mq_q2_short_cot.jsonl` - `exp/exp3/data/niah_mq_q2_long_cot.jsonl` 说明: - 默认各采 1 条;可用 `--max_short` / `--max_long` 分别指定数量(`--max_pairs` 是两者的兼容别名)。 ## 2) 归因与 recovery(AttnLRP hop0) ```bash python exp/exp3/run_exp.py \ --model qwen-8B \ --model_path /opt/share/models/Qwen/Qwen3-8B/ \ --cuda 3,4,5,7 ``` 输出: - recovery CSV:`exp/exp3/output/recovery///attnlrp_1_examples.csv` - trace:`exp/exp3/output/traces////ex_*.npz` + `manifest.jsonl` - 汇总 JSON:`exp/exp3/output/recovery/summary_.json` 常用参数: - `--top_fraction`:recovery 的 top fraction(默认 0.1) - `--attnlrp_neg_handling drop|abs` - `--attnlrp_norm_mode norm|no_norm`