SumRank: Aligning Summarization Models for Long-Document Listwise Reranking¶
1. 问题与动机¶
大语言模型(LLM)在列表式段落重排序任务中表现优异,但直接将其应用于长文档重排序时面临两大挑战:
- 有效性问题:长文档大幅增加上下文长度,降低 LLM 重排器的排序性能
- 效率问题:自注意力机制的二次复杂度导致推理延迟急剧上升
现有方法主要聚焦短段落(约 100 词)的重排序,对长文档(数千词的完整网页)关注不足。传统处理长文档的策略包括截断(truncation)和分块(chunking),但截断会丢失文档后半部分的关键证据,分块则破坏全局语义连贯性。
2. 核心方案:Summarize-then-Rank¶
SumRank 提出先摘要后排序(Summarize-then-Rank)的范式:
- 逐点摘要器 $\pi_\theta$:将每个长文档 $d_i$ 压缩为查询感知的摘要 $s_i = \pi_\theta(d_i, q)$
- 列表式重排器 $R_\phi$:对摘要集合 $\mathcal{S} = \{s_1, ..., s_n\}$ 执行列表式重排序
关键创新在于:摘要器不是为人类阅读而训练的通用摘要模型,而是专门为下游排序任务优化的模型,通过排序指标(NDCG@10)驱动的强化学习使摘要保留排序所需的关键匹配信号。
推理时采用滑动窗口策略(窗口大小 $w=20$,步长 $sz=10$)将局部排序聚合为全局排列 $\pi$。
3. 三阶段训练框架¶
3.1 冷启动 SFT(Stage 1: Cold-Start SFT)¶
将摘要生成能力从强教师模型蒸馏到轻量学生模型:
- 教师模型:Qwen2.5-72B-Instruct
- 学生模型:Qwen2.5-3B-Instruct / Qwen2.5-7B-Instruct
- 训练数据:从 MS MARCO 数据集构建的 40k 实例蒸馏数据集
- 训练配置:5 个 epoch,学习率 $5 \times 10^{-6}$,4 张 NVIDIA A800 (80GB)
SFT 损失为标准自回归交叉熵:
$$\mathcal{L}_{\text{SFT}}(\theta) = -\frac{1}{T}\sum_{t=1}^{T}\log \pi_\theta(y_t^* | X, y_{\lt t}^*)$$
其中 $y_{\lt t}^*$ 为教师模型生成的 golden summary 的前缀 token 序列。
3.2 RL 数据构造(Stage 2: RL Data Construction)¶
为强化学习阶段构建候选文档列表 $\mathcal{L}_D$:
- 使用初始检索器(BM25)获取 top-$N$ 候选列表 $\mathcal{R}_q$
- 确保列表同时包含正例和负例文档;若缺少则注入 $k$ 个缺失文档 $\mathcal{D}_k^*$:
$$\mathcal{L}_D = \text{Shuf}(\mathcal{R}_q[1:N-k] \cup \mathcal{D}_k^*)$$
- 使用冷启动模型 $\pi_{\text{SFT}}$ 为每个文档生成静态背景摘要列表:
$$\mathcal{L}_S = \{s_i \mid s_i \sim \pi_{\text{SFT}}(\cdot | X_i), \forall D_i \in \mathcal{L}_D\}$$
数据规模:从 MS MARCO 采样 2500 条 query,$N=10$,$k=1$。
3.3 GRPO 排序对齐(Stage 3: Rank-Driven Alignment via GRPO)¶
使用 Group Relative Policy Optimization (GRPO) 将摘要器与排序目标对齐。
目标选择与 Rollout:对每个查询 $q$,随机选取一个目标文档 $D_t$,生成 $G$ 个候选摘要 rollout $Y = \{y_1, y_2, ..., y_G\}$。
混合评估列表:将每个 rollout $y$ 替换静态摘要列表中第 $t$ 个位置的摘要,构建混合列表:
$$\hat{\mathcal{L}}_S = \{s_1, ..., s_{t-1}, y, s_{t+1}, ..., s_N\}$$
这一设计将生成成本从 $\mathcal{O}(N \times G)$ 降至 $\mathcal{O}(G)$,使长文档 RL 可行。
奖励设计:由 LLM 重排器(Qwen2.5-72B-Instruct)对 $\hat{\mathcal{L}}_S$ 执行列表式重排序,计算 NDCG@10 作为奖励信号 $R(y)$。
引入词汇匹配指示器 $M(y) \in \{0, 1\}$(检测摘要是否包含 "No Relevant Information Found" 等拒绝短语),综合奖励函数为:
$$r(y) = \begin{cases} R(y), & \text{if } D_t = D^+ \\ 1.0, & \text{if } D_t \neq D^+ \wedge M(y) = 1 \\ R(y) - \lambda, & \text{if } D_t \neq D^+ \wedge M(y) = 0 \end{cases}$$
其中 $\lambda = 0.25$ 为惩罚因子,防止模型对无关文档生成虚假对齐摘要。
优化目标:对每个 rollout 的奖励 Z-score 归一化得到优势值 $\hat{A}_i = (r_i - \mu_Y)/\sigma_Y$,最大化 GRPO 目标:
$$\mathcal{J}_{\text{GRPO}}(\theta) = \frac{1}{|G|}\sum_{i=1}^{|G|}\frac{1}{|y_i|}\sum_{t=1}^{|y_i|}\min\left(\rho_{i,t}(\theta)\hat{A}_{i,t}, \text{clip}(\rho_{i,t}(\theta), 1 \pm \epsilon)\hat{A}_{i,t}\right) - \beta D_{\text{KL}}$$
其中: $$\rho_{i,t}(\theta) = \frac{\pi_\theta(y_{i,t} \mid X, y_{i,\lt t})}{\pi_{\text{old}}(y_{i,t} \mid X, y_{i,\lt t})}$$ $$D_{\text{KL}} = D_{\text{KL}}(\pi_\theta \| \pi_{\text{SFT}})$$
训练配置:$G=8$ rollouts,5 个 epoch,学习率 $1 \times 10^{-6}$,KL 惩罚 $\beta = 0.001$。3B 模型用 2 张 A800,7B 模型用 4 张 A800。RL 框架使用 verl (Hybridflow)。
4. 实验设置¶
数据集与指标¶
- 数据集:TREC Deep Learning 19-23(DL19, DL20, DL21, DL22, DL23),源自 MS MARCO
- 评估指标:NDCG@10 和 MAP@100
- 候选文档:BM25 检索的 top-100 文档
- 下游重排器:Qwen2.5-32B-Instruct,滑动窗口 $w=20$,步长 $sz=10$
Baselines¶
| 类别 | 方法 |
|---|---|
| Rule-based | BM25, FirstP-128/256/512 |
| Seq2Seq 摘要 | BART-summarizer, LED-summarizer, PEGASUS |
| LLM 摘要 | Qwen2.5-3B-Instruct, Qwen2.5-7B-Instruct |
| 本文方法 | SumRank (3B), SumRank (7B) |
5. 实验结果¶
5.1 主实验结果(Table 1)¶
TREC DL 19-23 上 BM25 top-100 重排序结果(NDCG@10 / MAP@100):
| Methods | DL19 NDCG | DL19 MAP | DL20 NDCG | DL20 MAP | DL21 NDCG | DL21 MAP | DL22 NDCG | DL22 MAP | DL23 NDCG | DL23 MAP | Avg. NDCG | Avg. MAP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BM25 | 51.76 | 24.34 | 52.86 | 37.93 | 51.16 | 21.26 | 29.93 | 8.01 | 29.46 | 10.46 | 43.03 | 20.40 |
| FirstP-128 | 64.41 | 27.94 | 61.60 | 42.33 | 66.84 | 24.94 | 40.82 | 10.11 | 42.39 | 14.07 | 55.21 | 23.88 |
| FirstP-256 | 65.22 | 27.53 | 61.07 | 41.60 | 67.56 | 24.68 | 40.66 | 10.46 | 41.58 | 13.94 | 55.22 | 23.64 |
| FirstP-512 | 65.94 | 27.54 | 61.25 | 41.29 | 67.20 | 24.78 | 39.82 | 10.11 | 41.14 | 13.92 | 55.07 | 23.53 |
| BART-summarizer | 62.05 | 26.79 | 61.48 | 41.29 | 67.53 | 25.14 | 40.07 | 10.13 | 41.66 | 14.32 | 54.56 | 23.53 |
| LED-summarizer | 59.80 | 24.77 | 57.82 | 38.80 | 67.22 | 25.06 | 40.18 | 10.11 | 41.36 | 14.11 | 53.28 | 22.57 |
| PEGASUS | 62.02 | 26.66 | 60.83 | 41.29 | 67.53 | 25.13 | 40.46 | 10.13 | 41.84 | 14.28 | 54.54 | 23.50 |
| Qwen2.5-3B-Instruct | 58.97 | 27.32 | 54.45 | 37.05 | 63.67 | 23.90 | 37.17 | 9.50 | 35.52 | 12.70 | 49.96 | 22.09 |
| Qwen2.5-7B-Instruct | 59.72 | 25.88 | 62.03 | 42.45 | 66.15 | 24.40 | 35.40 | 9.15 | 40.24 | 13.50 | 52.71 | 23.08 |
| SumRank (3B) | 67.06 | 28.53 | 62.99 | 42.83 | 68.09 | 25.43 | 42.22 | 10.67 | 43.76 | 14.85 | 56.82 | 24.46 |
| SumRank (7B) | 67.30 | 28.81 | 62.95 | 42.66 | 69.30 | 25.96 | 42.74 | 10.96 | 44.31 | 14.95 | 57.32 | 24.67 |
关键发现:
- SumRank (7B) 在全部五个数据集上均取得 SOTA,SumRank (3B) 紧随其后且超越所有 baseline
- 截断方法(FirstP-256)利用了网页的 "lead bias"(关键信息倾向于出现在开头),是出乎意料的强基线,但截断丢失了文档中后部的重要证据
- Seq2Seq 摘要模型(BART、LED、PEGASUS)为人类阅读而训练,会过滤掉排序所需的关键词和细节匹配信号,性能甚至不如简单截断
- 零样本 LLM 摘要(Qwen2.5-3B/7B-Instruct)无法满足排序任务的严格要求;但经过 SumRank 训练流程后,3B 模型即可超越未对齐的 7B 基线
5.2 消融实验(Table 2)¶
SumRank (3B) 在 TREC DL 19-23 上的平均 NDCG@10:
| 模型变体 | TREC Avg. | $\Delta$ |
|---|---|---|
| SumRank (3B) 完整模型 | 56.82 | - |
| 训练策略消融 | ||
| w/o Cold-Start SFT | 55.88 | -0.94 |
| w/o Rank-Driven GRPO | 54.92 | -1.90 |
| 数据构造消融 | ||
| Truncation FirstP128 | 54.88 | -1.94 |
| Truncation FirstP256 | 54.92 | -1.90 |
| Update per epoch | 56.32 | -0.50 |
关键发现:
- 去除 GRPO 对齐阶段影响最大(-1.90),说明仅靠 SFT 不足以完全对齐排序目标
- 去除冷启动 SFT 同样有害(-0.94),因为 RL 需要良好的初始化基础
- 用截断原文替代生成摘要作为非目标文档的背景(-1.94/-1.90),说明原始文档前缀含噪声且缺乏排序信号
- 每轮更新背景摘要反而降低性能(-0.50),静态背景摘要提供了更稳定的参考框架
5.3 效率分析(Table 3)¶
| Method | NDCG@10 | Latency (s/query) |
|---|---|---|
| Qwen2.5-72B-Instruct | 56.99 | 83 |
| SumRank (3B) | 56.82 | 1.95 |
| SumRank (7B) | 57.32 | 6.98 |
关键发现:
- SumRank (3B) 接近 72B 上界(56.82 vs 56.99),同时实现 42 倍加速(1.95s vs 83s),模型小 24 倍
- SumRank (7B) 超越 72B 上界(57.32 vs 56.99),同时保持近 12 倍加速
- 即使是 FirstP-128/256 等截断方法,因为直接将长文本送入重排器,延迟也显著高于 SumRank
- SumRank 的摘要步骤几乎不增加额外开销,因为摘要压缩后大幅减少了下游重排器的输入长度
5.4 排序延迟对比¶
Figure 3 展示了五个 TREC DL 数据集上各方法的延迟(秒/查询):
- FirstP 系列和 Seq2Seq 摘要器延迟高(约 6-20 秒),因为仍需将较长文本送入重排器
- SumRank (3B) 在所有数据集上保持最低延迟(约 2 秒)
- SumRank (7B) 延迟略高但仍远低于其他方法
6. 局限性¶
- 受限于计算资源,未在更大开源 LLM(14B、32B)上实验
- 依赖两阶段 "Summary-then-Rank" 流程,需部署和维护摘要与排序两个独立模型
- 未来计划探索统一的端到端架构,同时压缩文档并输出相关性分数
7. 总结¶
SumRank 提出了一种面向长文档列表式重排序的摘要模型对齐方法。通过三阶段训练流程(冷启动 SFT + RL 数据构造 + GRPO 排序对齐),轻量摘要模型能够生成高密度的排序相关特征摘要,为下游 LLM 重排器提供精确匹配信号。在 TREC DL 19-23 上,SumRank (7B) 以 6.98 秒/查询的延迟超越了 83 秒/查询的 72B 模型,证明了任务感知的小模型对齐可以超越大规模计算。