flashtrace / exp /exp3 /README.md
wenbopan's picture
Sync FlashTrace package from GitHub
55b60a8

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。

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)

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/<dataset>/<model>/attnlrp_1_examples.csv
  • trace:exp/exp3/output/traces/<dataset>/<model>/<run_tag>/ex_*.npz + manifest.jsonl
  • 汇总 JSON:exp/exp3/output/recovery/summary_<model>.json

常用参数:

  • --top_fraction:recovery 的 top fraction(默认 0.1)
  • --attnlrp_neg_handling drop|abs
  • --attnlrp_norm_mode norm|no_norm