跳转至

Predicting LLM Output Length via Entropy-Guided Representations

会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=3loQDtveWI
代码: 待确认
领域: LLM效率
关键词: 输出长度预测, 推理调度, token 熵, 软标签回归, RL 采样

一句话总结

本文不再训练独立的辅助模型来预测 LLM 输出长度,而是直接复用主模型自身的隐藏状态,用 token 熵加权池化(EGTP)做静态预测、用逐步细化(PLP)应对 RL 采样这类"一对多"的随机生成,并发布了首个含长序列/CoT/RL 数据的长度预测基准 ForeLen,在其上把最强基线的 MAE 平均再降 29.16%,端到端吞吐显著提升。

研究背景与动机

领域现状:在 LLM 服务和强化学习采样中,吞吐主要靠批处理(batching)拉上去——把多个请求并行执行,摊薄调度和访存开销。但同一个 batch 里不同请求的生成长度差异极大,由于张量形状必须对齐,短序列要被 padding 到最长的那条,形成明显的"木桶效应":大量算力浪费在无效的 padding 上。如果能在推理前或推理早期估出每个请求的输出长度,就能做"长度感知调度",把长度接近的请求拼成更均匀的 batch,直接削掉这部分浪费。

现有痛点:已有的长度预测方法基本都是挂一个微调过的轻量辅助模型(如 DistilBERT、OPT),只看 prompt 来预测长度。这套设计有三个硬伤:(i)随机"一对多"场景失效——在 GRPO 这类 RL 采样里,同一个 prompt 反复采样会得到长度差异巨大的多个候选,任何只依赖 prompt 的静态估计都不可靠;(ii)精度与泛化差——这些预测器通常在 LMSYS 这种少长序列、少复杂推理的数据上训练,到真实的长文本/推理场景就崩;(iii)额外开销——每个请求都要单独跑一个预测模型,而没有复用主模型早已算出来的丰富隐藏状态。

核心矛盾:长度信号其实已经"藏在"主模型内部——既然 LLM 自己能决定何时吐出 <eos>,那么与最终长度相关的信号必然隐式编码在它的内部激活里。但现有做法绕开主模型、另起炉灶,既贵又不准。

本文目标:(1)零额外大模型、复用主模型激活做高精度静态长度预测;(2)能在随机采样下逐步给出可靠估计;(3)补齐一个真正有挑战性的评测基准。

核心 idea:用主模型自身的隐藏状态 + token 熵做长度预测——静态用熵加权池化(EGTP),动态用逐解码步细化(PLP),而不是再训一个外挂预测器。

方法详解

整体框架

方法的目标是:给定一个 prompt(以及随机采样时已生成的部分 token),尽可能准地估计 LLM 还要生成多长,从而喂给长度感知调度器。整条 pipeline 完全寄生在主模型的前向计算上:主模型前向时,每个输入 token 既留下隐藏状态 \(h_i\),又能从下一 token 分布算出熵 \(H_i\)EGTP 用熵作为注意力权重,把这串隐藏状态加权聚合成一个向量 \(h\);这个 \(h\) 送进一个软标签分布回归头,同时输出分类分布与回归值,给出静态长度估计。对于 RL 采样这种"同一 prompt 长度乱飞"的随机场景,PLP 在每个解码步把已生成 token 的隐藏状态也拼进来,反复刷新对"剩余长度"的预测。三个贡献模块串成一条静态/动态双路:静态路一次性预测,动态路逐步细化。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入:prompt"] --> B["主模型前向<br/>复用隐藏状态 hᵢ + token 熵 Hᵢ"]
    B --> C["EGTP 熵引导池化<br/>按熵加权聚合为单向量 h"]
    C --> D["软标签分布回归头<br/>分类+回归联合输出长度"]
    D -->|静态一次性预测| E["输出:长度估计<br/>→ 长度感知调度器"]
    D -->|RL 随机采样·逐步细化| F["PLP 渐进式长度预测<br/>每步拼入已生成 token 预测剩余长度"]
    F --> E

关键设计

1. EGTP 熵引导 token 池化:用"模型最犹豫"的 token 决定长度

要把一串隐藏状态 \(\{h_1,\dots,h_n\}\) 压成一个能预测长度的向量,传统的 mean / max 池化会稀释或丢掉关键信息。作者的观察是:高熵 token——也就是模型对"下一步生成什么"最不确定的位置——恰恰是预测输出长度最关键的信号。他们用基于梯度的归因验证了这一点:把某 token 隐藏状态对 MSE 损失的梯度 L2 范数 \(I_t=\lVert\nabla_{h_t}\mathcal{L}_{\text{MSE}}\rVert_2\) 当作重要性,发现 token 熵与重要性显著正相关(Pearson \(r=0.451\))。

基于此,EGTP 不再均匀对待所有 token:先对每个输入 token 从其下一 token 分布算熵 \(H_i=-\sum_{v\in V}P(v\mid x_{<i})\log P(v\mid x_{<i})\),再用 softmax 把熵转成权重 \(w_i=\dfrac{\exp(H_i)}{\sum_{j=1}^n\exp(H_j)}\)(文中提到可用温度 \(\alpha\) 调节分布锐度,⚠️ 公式以原文为准),最后加权求和 \(h=\sum_{i=1}^n w_i h_i\)。这样聚合出的表示自适应地聚焦在 prompt 里最"信息量大"的部分,比 mean/max 给出质量更高的长度特征,且几乎零额外开销——熵和隐藏状态都是主模型前向的副产品。

2. 软标签分布回归头:既像分类抗离群、又像回归懂距离

长度预测本质是回归任务,但长度分布是重尾的,标准 MSE 对离群点极敏感;而退化成"长度分桶分类"又丢掉了"预测值和真值差多远"这个关键的距离概念。本文设计的预测头同时拿到两者的好处。

做法是把连续长度目标 \(y\) 转成软概率分布当监督信号:先把长度空间离散成 \(K\) 个桶,真值落在第 \(i\) 桶时不用 one-hot,而是让第 \(j\) 桶的概率随它到第 \(i\) 桶的距离指数衰减,\(p_j=\dfrac{\exp(-\lvert j-i\rvert)}{\sum_{k=1}^K\exp(-\lvert k-i\rvert)}\)。模型在特征 \(h\) 上并行产出两个输出:一个是 \(K\) 维分类分布 \(\hat p\)(softmax 得到),一个是把分布求期望得到的回归值 \(\hat y=\sum_{i=1}^K\hat p_i\cdot c_i\)\(c_i\) 为第 \(i\) 桶中心)。训练用联合损失 \(\mathcal{L}=\lambda\mathcal{L}_{\text{CE}}(p,\hat p)+(1-\lambda)\mathcal{L}_{\text{MSE}}(y,\hat y)\),文中取 \(K=20\)\(\lambda=0.95\)。CE 项让预测分布对齐软标签、提供稳定且梯度友好的监督,MSE 项直接压最终连续预测的误差、保证回归精度——两者互补让头部对重尾长度更鲁棒。

3. PLP 渐进式长度预测:让随机采样也能被调度

静态预测在 RL 采样里天然失效——同一 prompt 采样出的多个候选长度差异巨大,开生成前的单次预测注定不准。PLP 利用 LLM 的自回归本性,把"一次预测"改成"每步预测":在第 \(t\) 个解码步,它的目标不是预测总长,而是预测剩余还要生成多少 token \(y^{(t)}_{\text{rem}}\)

具体地,PLP 把 prompt 特征 \(h\) 与已生成 token 的隐藏状态 \(\{h'_1,\dots,h'_t\}\) 拼接成动态输入 \(z_t=\text{Aggregate}(h,\{h'_1,\dots,h'_t\})\)(Aggregate 就是简单 concat),再过同一个软标签回归头得到剩余长度 \(\hat y^{(t)}_{\text{rem}}\)。训练时对所有时间步求平均损失 \(\mathcal{L}_{\text{PLP}}=\frac{1}{T}\sum_{t=1}^T\mathcal{L}(y^{(t)}_{\text{rem}},\hat y^{(t)}_{\text{rem}})\),其中 \(\mathcal{L}\) 就是设计 2 的联合损失。随着生成推进,已生成 token 越来越多、信息越充分,预测也越来越准,从而让调度策略可以在生成过程中动态调整资源分配——这是此前静态方法根本做不到的能力。

4. ForeLen 基准:第一个面向"难场景"的长度预测评测

现有预测器之所以"看起来还行",部分是因为只在 LMSYS 这种长度短、推理简单的数据上评测。作者构建并发布 ForeLen,专门覆盖三类挑战性场景:长序列(取自 LongBench / ZeroSCROLLS / IFEval,用 Qwen2.5 与 Llama3.2 系列生成)、复杂推理 CoT(Qwen2.5 与 DeepSeek-R1-Distill 生成),以及动态 RL 采样(从真实 GRPO 训练管线收集,prompt 取自 GSM8K / MATH / MBPP / LiveCodeBench / CRUXEval / MMLU-STEM 六个数学与代码数据集,每个 prompt 分组采样 \(K=4\) 记录候选及长度)。数据严格沿用各源数据集官方 train/val/test 划分,保证验证/测试 prompt 在训练期不可见。ForeLen 的长度分布比 LMSYS 更宽、尾更长(图 1a),正是在这种分布上各类静态基线才暴露出泛化短板。

损失函数 / 训练策略

统一用设计 2 的联合损失 \(\mathcal{L}=\lambda\mathcal{L}_{\text{CE}}+(1-\lambda)\mathcal{L}_{\text{MSE}}\)\(\lambda=0.95\)\(K=20\) 桶)。优化器 AdamW、学习率 2e-5、最多 10 个 epoch、batch size 16、随机种子 42。实验在单张 V100 上完成。

实验关键数据

主实验

评测指标为平均绝对误差 MAE(越低越好),在 LMSYS 与 ForeLen 两套基准上对比 SSJF-Reg/MC、S3、PiA、TPV、TRAIL、LTR-C 等基线。

基准 / 场景 指标 EGTP(本文) 最强基线 提升
LMSYS · GPT-4 MAE 87.32 96.03 (S3) 9.1%
LMSYS · Claude-2 MAE 68.33 77.03 (LTR-C) 11.3%
ForeLen · Qwen2.5-3B 平均 MAE 110.75 146.42 (TRAIL) 24.4%
ForeLen · Qwen2.5-7B 平均 MAE 103.47 137.96 (TRAIL) 25.0%
ForeLen · Llama3.2-1B 平均 MAE 105.08 151.80 (TRAIL) 30.8%
ForeLen · Llama3.2-3B 平均 MAE 101.53 157.88 (TRAIL) 35.7%

跨所有模型平均,EGTP 比最强基线降 MAE 29.16%、比常用的 SSJF-Reg 降 55.09%。

端到端系统性能

把各预测器接入 vLLM 后端 + Shortest Job First 调度器:

场景 方法 吞吐 ↑ 平均 JCT ↓ Padding 比 ↓
Long Sequence EGTP 131.05 4.20 0.18
Long Sequence TRAIL(次优) 129.58 9.45 0.51
Reasoning EGTP 194.21 8.21 0.09
Reasoning LTR-C(次优) 150.57 9.30 0.14

EGTP 在长序列场景把 padding 比从 0.51 砍到 0.18(近 3 倍降低)、JCT 减半还多;推理场景 padding 比仅 0.09。

消融实验

池化方式 Reasoning Long Seq RL 平均 MAE
EGTP(本文) 133.57 81.60 95.24 103.47
Max Pooling 137.88 122.74 98.46 119.69
Last Token 139.09 135.44 105.39 126.64
Average Pooling 142.40 173.85 149.92 155.39

关键发现

  • 熵引导池化是核心收益来源:EGTP 平均 MAE 103.47,显著优于次优的 Max Pooling(119.69),且在长序列任务上优势最大(81.60 vs 122.74),印证高熵 token 确实承载了最关键的长度信号。
  • PLP 在 RL 场景增益最大:随着观测步数从 0 增到 32,RL 任务 MAE 从 95.24 一路降到 80.86,长序列从 81.60 降到 67.11;都呈"前几步快速下降后趋稳"的收敛模式,说明已生成 token 能有效细化预测。
  • 预测精度直接转化为系统收益:更准的长度估计让调度器拼出更均匀的 batch,padding 浪费大幅下降,吞吐与 JCT 随之改善。

亮点与洞察

  • "长度信号已在隐藏态里"这一假设很干净:既然模型自己知道何时停,长度信息必然内蕴于激活,于是预测无需外挂模型、近乎零成本——这是把"重用主模型副产物"用到极致的范例。
  • 熵当注意力权重的 trick 可迁移:把 token 熵(不确定性)作为聚合权重的思路,可用于任何"需要从变长序列里挑关键 token 聚合成单向量"的任务,不止长度预测。
  • 软标签回归头兼顾抗离群与距离感知:距离衰减软标签 + 分类/回归双头 + 联合损失,是处理重尾连续目标的实用配方,可复用到价格/时长等重尾回归。
  • 把"静态预测"改成"逐步剩余量预测"是应对随机采样的关键转变,专门补上了 RL"一对多"采样这块此前没人正经评测的空白。

局限与展望

  • 实验主要在 V100 单卡、Qwen2.5 / Llama3.2 等中小模型(≤7B)上完成,更大规模模型与多卡并行下的收益与开销尚待验证。
  • EGTP 依赖能拿到 next-token 分布算熵,对只给隐藏态、不暴露 logits 的封闭部署可能受限。
  • PLP 每步都要过一次预测头,虽轻量但在超长生成上累计开销与"何时停更新"的取舍仍需权衡;横向比较时不同任务难度/长度分布不可直接比 MAE 大小。
  • 温度 \(\alpha\)、桶数 \(K\)\(\lambda\) 等超参的跨模型稳健性,正文只给了固定值,泛化性有待更系统的敏感性分析。

相关工作与启发

  • vs SSJF-Reg / S3 / TRAIL 等外挂预测器:它们另训一个 DistilBERT/OPT 级别的辅助模型、只看 prompt 做静态预测;本文复用主模型激活、零额外大模型,且在 ForeLen 上 MAE 普遍低一截,RL 场景更是它们的盲区。
  • vs PagedAttention / continuous batching 等服务优化:那些工作减的是请求间空闲与显存碎片,解决不了运行中 batch 内 padding 浪费;本文与之正交——预测长度让调度器拼更均匀的 batch,直接削 padding,是对现有服务架构的补充。
  • vs 把长度预测当纯回归或纯分类:纯 MSE 对重尾敏感、纯分桶丢距离;本文软标签分布头同时拿下抗离群与距离感知。

评分

  • 新颖性: ⭐⭐⭐⭐ 复用主模型激活 + 熵引导池化 + 逐步剩余预测的组合切入角度新颖,尤其补上 RL 采样这块空白
  • 实验充分度: ⭐⭐⭐⭐ 覆盖多模型/多场景 + 端到端系统 + 消融,自建 ForeLen 基准;但模型规模偏中小
  • 写作质量: ⭐⭐⭐⭐ 动机—假设—方法链条清晰,公式与图表配套
  • 价值: ⭐⭐⭐⭐ 直接服务于 LLM 高效推理与 RL 采样调度,落地性强且基准可复用