Lost in the Middle, and In-Between: Enhancing Language Models' Ability to Reason Over Long Contexts in Multi-Hop QA

model 2412.10079
long-contextmulti-hop-qalost-in-the-middleposition-biaschain-of-thought

Lost in the Middle, and In-Between — L2 #

George Arthur Baker, Ankush Raut, Sagi Shaier, Lawrence E Hunter, Katharina von der Wense | 2024-12 | arXiv Category: model | Tags: long-context, multi-hop-qa, lost-in-the-middle, position-bias, chain-of-thought

§1 TL;DR #

"Lost-in-the-middle"在多跳QA中呈现二维退化:LLM准确率不仅随证据绝对位置下降(U型),还随多个证据间的相对距离单调退化(lost-in-between)。CoT仅对instruction-tuned模型有效;上下文裁剪以准确率换鲁棒性,无已有方法同时解决两个维度。


§2 Q1 / Q2 / Q3 #

Q1 痛点 #

Liu et al. (2024) 在 single-hop QA 中发现了 "lost in the middle" 的 U 型位置偏置,但真实 RAG 场景需要多跳推理——$k$ 个证据文档分散在上下文不同位置,必须全部被检索并联合推理才能回答。多跳设定的位置组合空间为 $\binom{n}{k}$,$k=4, n=20$ 时已是 4845 种排列,使得已有缓解方案(reranking、permutation self-consistency、long-context fine-tuning)在计算上不可行。核心未解问题:多个证据之间的相对距离是否是独立于绝对位置的第二个退化变量?

Q2 方法 #

作者将 Liu et al. 的 single-hop perturbation 协议扩展为 multi-hop 版:在 3 个 MHQA 数据集(HotpotQA / 2WikiMultihopQA / MuSiQue-Ans)上,用 20 个文档构建 prompt,$k$ 个 gold 文档在 9 个预选位置组合中系统变化——5 个 adjacent(gold 紧邻,如 (1,2), (5,6), …)和 4 个 separated(gold 分散,如 (1,5), (5,10), …)。对文档表示做 3 种处理(原文 / BART-large-CNN 摘要 / LLaMA-2-7B 的 KG triple 抽取),prompt 模式叠加 standard 与 few-shot CoT,在 3 个模型(MPT-7B-8k-instruct、Llama-2-7B-longlora-8k-ft、GPT-3.5-turbo-1106)上评测 best-subspan accuracy。

核心技术壁垒:用 adjacent vs separated 二元对照作为控制变量,将"绝对位置的 U 形偏置"与"证据间距的单调退化"解耦。这种解耦是非平凡的——天真做法只画 U 形曲线,会把 (1,5) 和 (15,20) 都当 "两端" 统计平均,从而隐藏 between-distance 效应。通过固定 adjacent/separated 条件并横跨位置做配对比较,作者首次独立测出了 inter-evidence distance 的退化贡献。

Q3 结果 #

  1. "Lost-in-between" 跨模型稳定:在所有 (model, dataset) 配对中,adjacent 配置稳定优于 separated 1–7 pp(Figure 4 中 12 对柱子无反例),证实证据间距是独立退化变量。
  2. CoT 是双刃剑:instruction-tuned 模型(GPT-3.5, MPT-7B)从 CoT 获益;非 instruction-tuned 的 Llama-2-longlora 在 CoT 下崩溃至 ~0%(HotpotQA 51.9% → 0.6%),原因是 primacy bias 使模型 over-fit 到 few-shot exemplar 区域。
  3. 上下文裁剪的 trade-off:KG 和 Summary 能压平位置曲线(缓解 lost-in-middle),但绝对准确率掉 1/3–1/2(GPT-3.5 HotpotQA: full 73.9% → KG 54.3% → Summary 59.5%)。弱模型(Llama-longlora)反而从裁剪中受益。

  4. §3 架构 / 方法图 #

    本文为评测/诊断类工作,不发布新模型。下方展示实验方法论的总体架构。

    Figure 1: Single-hop vs Multi-hop QA document placement setups

    Paper's Figure 1, verbatim (caption: "Question Answering setups with documents containing relevant information (green) and distractor documents (gray) placed at different ordinal positions, with both Single-hop (1a) and Multi-hop (1b) questions.").

    Figure 1 是全文的概念基石。上半 (a) 复现 Liu et al. 的 single-hop 设定:1 个 gold 文档在 20 个位置间移动。下半 (b) 是本文的核心创新:$k$ 个 gold 同时存在,引入"距离 d"(两个 gold 之间的 distractor 数量)作为新的实验自由度。关键在于 (b) 右侧的 Distance=1 示例:相同位置区间(3,4 vs 3,5),仅因一个 distractor 插入 gold 之间,就构成了 "adjacent vs separated" 的对照条件。

    实验流水线 Mermaid #

    flowchart TB DS["3 MHQA Datasets
    HotpotQA (2-hop, 3703 Q)
    2WikiMultihopQA (2/4-hop, 6288 Q)
    MuSiQue-Ans (2/3/4-hop, 1209 Q)"] RED["Document Representation ×3
    1. Full Doc (avg 45–85 words)
    2. Summary (BART-large-CNN, ≤50 tok)
    3. KG Triples (LLaMA-2-7B extraction)"] POS["Position Generator
    n=20 slots, k=2..4 gold
    → 5 adjacent + 4 separated = 9 configs"] PROMPT["Prompt ×2
    A. Standard zero-shot
    B. Few-shot CoT (3-shot)"] MODEL["Models ×3
    MPT-7B-8k-instruct (ALiBi)
    Llama-2-7B-longlora (RoPE)
    GPT-3.5-turbo-1106 (16k)"] EVAL["best-subspan accuracy
    acc=1 if answer ⊆ output"] DS --> RED --> POS --> PROMPT --> MODEL --> EVAL

    评测模型对比 #

    ModelPos. encodingLong-ctx mechanismInst.-tunedContext角色
    MPT-7B-8k-instructALiBiALiBi 原生外推8k代表 ALiBi 路线
    Llama-2-7B-longlora-8k-ftRoPELongLoRA shifted-attention FT8k代表 RoPE-extension 路线
    GPT-3.5-turbo-1106闭源闭源16k代表闭源 SOTA

    三角对照跨越 (ALiBi vs RoPE vs 闭源) × (instruction-tuned vs 非 instruction-tuned) 两个设计轴,可分离位置编码与指令微调对偏置行为的独立贡献。

    model-specific §3 扩展说明 #

    N/A — 本文不发布新模型,不存在 tokenizer → embed → decoder → head 的架构画图需求。三个被评测模型均为公开 checkpoint 直接加载,其各自架构详见原始论文(Touvron et al. 2023; MosaicML 2023; OpenAI 2023)。


    §4 作者证明 #

    无形式化作者证明 — 仅实证。

    本文无定理/引理/形式化推导。唯一的数学内容是组合计数,用于论证实验空间大小:

    记号表 #

    符号含义取值
    $n$prompt 中总文档数20
    $k$gold 文档数(= hop 数)2, 3, 4
    $P = \{p_1, \dots, p_k\}$gold 文档位置集合$P \subset \{1, \dots, 20\}$
    $d$gold 文档间距$\p_i - p_j\- 1$(间隔的 distractor 数)
    $A_q$问题 $q$ 的 ground-truth 答案及 alias 集合
    $\hat{a}$模型输出

    方程物理意义 #

    $$\binom{n}{k} = \binom{20}{2}, \binom{20}{3}, \binom{20}{4} = 190, 1140, 4845$$

    物理意义:$k$ 个 gold 文档在 $n=20$ 个位置中的不同放法数。$k=4$ 时组合数接近 5000,逐一评测需要每条问题推理 5000 次——这是论文选择 9 个采样组合的直接理由。

    $$\text{acc}(q, P) = \mathbb{1}[\exists\, a \in A_q : a \subseteq \hat{a}]$$

    物理意义:best-subspan accuracy——只要模型输出 $\hat{a}$ 中包含任一合法答案字串,即判正。

    实证有效性检查 #

    1. 内部一致性:Figure 4 中 12 对 adjacent/separated 柱子方向一致(红 > 蓝),无反例——排除随机噪声。
    2. 跨模型泛化:3 个架构迥异的模型(ALiBi / RoPE-ext / 闭源)均呈现 adjacent > separated 模式。
    3. 跨数据集泛化:3 个数据集 × 多种 hop 设定均呈现相同方向。
    4. Temperature 控制:所有推理 $T=0$,GPT-3.5 使用 -1106 版本(deterministic output),消除采样方差。
    5. 控制变量有效性:adjacent vs separated 对照中,distractor 数量和顺序固定(来自 Contriever 检索的固定排序),唯一变化是 gold 位置。
    6. 效应量级合理:1–7 pp 差距与 Liu et al. single-hop 的位置效应量级一致,不存在反常放大。
    7. model-specific §4 扩展 #

      • Scaling-law fit: N/A — 不是模型发布论文。
      • Parameter breakdown: N/A — 使用已有模型,不涉及参数分析。
      • Capacity budget: N/A。

      §5 实验与数据 #

      数据集 #

      DatasetHopsQuestionsDocs/Q (原始)文档来源
      HotpotQA23,70320Wikipedia
      2WikiMultihopQA2, 46,28810 → 20 (Contriever 补充)Wikipedia + KB
      MuSiQue-Ans2, 3, 41,20920多源 + adversarial

      官方 test set 为私有排行榜,作者将 validation set 切半:前半作 validation、后半作 test。2WikiMultihopQA 原始每题仅 10 个文档,额外用 Contriever 检索 10 个 distractor 补齐到 20,对齐 Liu et al. 的 20-doc 协议。

      上下文裁剪效果 #

      DatasetFull (avg words)SummaryKG Triples
      HotpotQA692933
      2WikiMultihopQA452129
      MuSiQue-Ans853235

      裁剪把单文档长度压到原文 1/3–1/2,整 prompt 长度减少 50–70%。

      核心结果:Instruction-tuned 模型的位置曲线 #

      Figure 2: Position curves for instruction-tuned models across datasets and conditions

      Paper's Figure 2, verbatim (caption: "The performance impacts of varying the positions of relevant documents within instruction-tuned models' inputs, with context reduction techniques and Chain-of-Thought prompting. All positions are out of 20 total documents.").

      Figure 2 同时回答三个问题。(a) Full Doc + CoT(红虚线)几乎处处最优,但 U 型曲线仍清晰可见——CoT 提升绝对水平但不消除位置偏置。(b) KG 和 Summary 曲线(绿/蓝实线)最平坦,GPT-3.5 子图中 KG 近乎水平——验证缩短上下文确实抹掉了位置偏置。(c) 但 KG/Summary 的绝对水平比 Full Doc 低 15–30 pp——"准确率 vs 位置鲁棒性" trade-off 一图说尽。

      非 Instruction-tuned 模型的 CoT 崩溃 #

      Figure 3: Llama-2-7b-longlora collapse under CoT prompting

      Paper's Figure 3, verbatim (caption: "Experimental results for Llama-2-7b-longlora-8k-ft. Results for MuSiQue 3- and 4-hop splits are relegated to Appendix A due to exceedingly poor performance.").

      Figure 3 揭示了一个反直觉但工程上至关重要的失败模式。所有 +CoT 虚线(红/绿/蓝虚线)几乎贴在 0% 横轴上,而无 CoT 的实线还在 5–25% 区间。这表明 few-shot CoT 不是 "always-on" 增益:在非 instruction-tuned 模型上,few-shot exemplar 引发极端 primacy bias,模型退化为对示例的复述而非对上下文的推理。这解释了为何许多 RAG pipeline 加 CoT 后效果反降。

      Adjacent vs Separated:核心论点的直接证据 #

      Figure 4: Adjacent vs Separated accuracy for GPT-3.5 and MPT-7B

      Paper's Figure 4, verbatim (caption: "Average question-answering accuracy for full document prompts by distance setting for GPT and MPT models. Performance with adjacent evidence documents is generally higher than when evidence documents are separated by distractor documents.").

      Figure 4 是论文核心结论的最干净证据。6 个 (dataset, hop) 配置 × 2 个模型 = 12 对柱子中,红色 (adjacent) 全部高于蓝色 (separated),差距 1–7 pp。GPT-3.5 HotpotQA: adj ~49% vs sep ~44%(-5 pp);MPT HotpotQA: adj ~49% vs sep ~42%(-7 pp)。这确认 "lost-in-between" 不是噪声——它是跨模型、跨数据集的稳定现象,且独立于 "lost-in-the-middle" 的绝对位置效应。

      关键数字节选(GPT-3.5, HotpotQA 2-hop) #

      Condition(1,2)(5,6)(10,11)(15,16)(19,20)(1,5)(5,10)(10,15)(15,20)
      Standard76.771.171.472.873.973.870.070.271.1
      Standard+CoT79.373.975.175.676.677.572.971.874.1
      KG56.153.853.654.357.556.152.052.054.6

      前 5 列 (adjacent) 呈 U 形:两端 76.7/73.9 高,中间 71.4 低——经典 lost-in-middle。后 4 列 (separated):相同绝对位置区间下全部低于 adjacent 对照——这是 lost-in-between。比较 (1,2)=76.7 vs (1,5)=73.8:起点相同,第二个 gold 仅远 3 格就掉 2.9 pp。

      model-specific §5 扩展: Training Recipe #

      N/A — 本文不训练任何模型。三个 LLM 使用公开 checkpoint 直接推理(MPT via HuggingFace, Llama-2-longlora via HuggingFace, GPT-3.5 via OpenAI API)。BART-large-CNN 也是预训练好的;KG triple 抽取通过 in-context prompting 完成,无 fine-tuning。

      Stage说明
      Pre-training[论文未涉及] — 使用三方预训练好的 checkpoint
      SFT[论文未涉及] — MPT/GPT-3.5 已经 instruction-tuned; Llama-longlora 无 SFT
      Post-training[论文未涉及]
      Evaluation-time interventionCoT prompting (3-shot least-to-most) 和 context reduction (BART summary / KG triples)

      Hardest-to-replicate training trick: N/A(评测论文,不涉及训练)。最难复现的评测 trick 是位置采样策略:9 个组合的选取需要覆盖 adjacent/separated 对照且均匀覆盖 1–20 的位置区间,这在代码中通过 config.json 的硬编码位置数组实现。


      §6 论证链 #

      StepPremise (引用)ConclusionLoad-bearing?
      1Liu et al. 2024 在 single-hop QA 上发现 LITM U 形曲线(1 gold + N distractor 协议)(§2.1)LITM 真实但仅 single-hop 维度被刻画公认前提
      2真实 RAG 是 multi-hop,$k$ 个 gold 离散;位置组合 $\binom{20}{k}$ 最高 4845;reranking / perm self-consistency / long-ctx FT 在此组合空间下不可行 (§1, §2.2)LITM 在 multi-hop 维度需重新评估,旧方法救不了load-bearing motivation
      3设计 adjacent(gold 紧邻)vs separated(gold 分散)二元对照,固定 distractor 数量和顺序 (§4)实验可独立测出"证据间距"是否为独立退化变量load-bearing 实验设计基石
      4实测 3 模型 × 3 数据集 × 多 hop,adjacent 全部优于 separated 1–7 pp (Figure 4);Llama-longlora+CoT 崩溃至 ~0% (Figure 3)"lost-in-between" 跨模型稳定;CoT 在非 inst-tuned 模型上是灾难load-bearing 主结论
      5KG/Summary 压平位置曲线但绝对准确率掉 1/3–1/2 (Figure 2);弱模型(Llama-longlora)反从裁剪受益现有缓解策略都在"位置鲁棒 + 准确率"间 trade-off,留待后续decorative 负面结论

      已被论文自身封堵的常见反对 #

      • "是 distractor 太多吗?" → Step 3 的 adjacent vs separated 控制变量:相同 distractor 数量,仅 gold 间距变。
      • "是 hop 难度本身吗?" → 同 hop 数下的 adjacent vs separated 对照排除。
      • "reranking 能救吗?" → Step 2 的 $\binom{N}{k}$ 数学证否。

      真正可攻击的位置 #

      • Step 4 premise: 仅测 2023–2024 上半年模型,未测 GPT-4o / Llama-3.1-128k / Claude-3 等新一代长上下文模型。
      • Step 4 premise: 9 个位置组合可能不代表 $\binom{N}{k}$ 全空间(作者自己承认抽样限制)。
      • Step 4 premise: best-subspan accuracy 对长输出有偏——CoT 输出更长更易包含答案 substring,高分可能部分来自偏置而非真实推理。
      • Step 4 premise: Llama-longlora + CoT 崩溃可能是 prompt template 不匹配(Llama 无 instruct format),而非 primacy bias 本身。
      • Step 5 conclusion: 没有提出新算法,future work (dynamic CoT / external memory) 仅 hand-wave。

      §7 实现 cross-reference #

      代码来源:https://github.com/Spongeorge/long-context-multihop (MIT license)

      核心代码对照 #

      论文概念代码路径关键实现
      位置生成器 (§4)config.json; hotpot_config.json"positions" 数组硬编码 9 个位置组合,0-indexed
      文档排列scripts/make_qa_prompts.py:order_input() (~L40)遍历 0..total_len-1,在 gold_positions 处插入 gold,其余位置依序填 distractor
      Prompt 模板prompts/qa_standard_instruct.prompt (zero-shot); prompts/qa_3shot_cot_instruct.prompt (CoT)使用 {search_results}{question} 占位符
      模型推理 (MPT/Llama)scripts/get_mpt_responses.py (~L35–60)config.max_seq_len = 8192; temperature=0; max_new_tokens=256; load_in_8bit=True; torch_dtype=torch.bfloat16
      主入口run_experiment.py:main()遍历 config 中 datasets × positions,调用 make_qa_prompts.py 生成 prompt → get_mpt_responses.py 推理

      关键实现细节 #

      1. 0-indexed vs 1-indexed 的 off-by-one:代码中 config.json 使用 0-indexed 位置([0,1], [4,5], …),对应论文中的 1-indexed (1,2), (5,6), …。复现时需注意此转换——make_qa_prompts.py:order_input()while i < total_len 循环从 0 开始。
        1. MPT 推理使用 8-bit 量化get_mpt_responses.pyload_in_8bit=True — 论文未显式提及 MPT 推理精度为 INT8。这可能对边缘位置的准确率有微小影响,但 adjacent vs separated 的相对比较不受影响(两者使用相同推理配置)。
          1. 2WikiMultihopQA 的 Contriever 补充 distractor 在代码中通过 data/base/2wiki_2ndhalfvalid_adtldocs.json(文件名中 adtldocs = additional docs)已预处理好,不在 runtime 检索。
          2. 核心技术壁垒详述 #

            本文的"壁垒"不在于模型或算法,而在于实验设计的解耦能力order_input() 函数的实现看似简单(20 行 Python),但其背后的 adjacent/separated 对照设计是论文全部 claim 的唯一支撑。如果不做这个解耦——比如只画 U 形曲线——就会把 between-distance 效应混入 absolute-position 效应,无法得出"lost-in-between 是独立退化维度"的结论。

            model-specific §7 扩展: Quantization Checklist #

            N/A — 论文不讨论量化。唯一相关细节:get_mpt_responses.py 中 MPT 推理使用 load_in_8bit=True(INT8 weight quantization via bitsandbytes),论文未显式声明。


            §8 Serving Deployment Considerations #

            本文非模型发布,以下为论文结论对 RAG serving 的直接推论。
            • Evidence packing 优化:Figure 4 的 adjacent > separated 结论直接可操作——RAG serving 框架应在 retrieval 后增加 "evidence-clustering reranker",按主题/实体相似度将 multi-hop chain 中的 gold 段落聚簇相邻。
            • CoT 的条件使用:Figure 3 表明 CoT 在非 instruction-tuned 模型上是灾难;serving pipeline 应根据模型类型有条件地启用 CoT(仅对有 instruction tuning 的模型开启)。
            • 上下文长度 vs 信息密度:Table 2 的裁剪数据表明,50% 的 prompt 长度减少换来 15–30 pp 的准确率损失;prefill 省下的计算量被准确率下降抵消——对强模型(GPT-3.5 级别),full doc 仍是更优选择。
            • Prefix caching 友好性:20-doc prompt 的前缀(instruction + few-shot examples)在同一 batch 的不同位置组合间完全相同,适合 prefix caching(vLLM/SGLang 的 RadixAttention 可直接复用)。

            §9 Open Questions #

            LLM-specific 角度 #

            • 规模饱和点:在 GPT-4o / Llama-3.1-128k / DeepSeek-V3 / o1 系列上重做实验,看新一代模型(更好的位置编码 + 更大的训练数据)是否仍受 between-distance 影响。如果 128k context 模型不再有此退化,说明"lost-in-between"是模型能力不足的症状而非注意力机制的固有缺陷。
            • 跨模态迁移:多模态模型(GPT-4V, Gemini)在多图推理中是否有类似的"中间图片被忽略"现象?图片 token 的位置偏置可能比文本更严重(图片 token 数远多于文本段落)。
            • 硬件亲和性:位置偏置的根源可能在 attention 计算的数值精度——FP8/FP4 quantization 是否会放大中间位置的 attention score 衰减?在 low-bit serving 场景下,lost-in-between 效应可能更加显著。
            • 位置编码的根本改进:是否存在一种位置编码/attention 变体(Differential Transformer、CoPE、Hyena 等)能在保持长上下文外推性的同时消除 between-distance 退化?这是把"lost-in-between 是模型属性还是任务属性"问到底。
            • 训练侧修复:用 RL (如 GRPO) 在多跳任务上直接奖励 chain robustness(对 evidence 位置排列不变),是否比 inference-time 缓解更根本?

            Appendix: 模型架构细节图 #

            N/A — 本文为评测论文,非模型发布。不存在官方推理/训练代码中的模型架构可供提取。三个被评测模型(MPT-7B、Llama-2-7B、GPT-3.5)的架构图应分别参见各自的原始论文 L2 笔记。