您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
输出感知的指令遵循编码
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
输出感知的指令遵循编码
bgsgkj751003
2026-07-20
IP归属:北京
152浏览
# InstEmb: Instruction-Following Embeddings through Glimpses of the Future ## 摘要 大语言模型已经在文本生成任务中展现出很强的细粒度指令遵循能力:面对同一段输入,只要指令发生变化,模型通常能够生成侧重点不同、语义目标不同的回答。然而,当 LLM 被用于生成文本向量时,现有 embedding 方法往往仍主要依赖输入最后一个 token 的 hidden state,难以完整捕捉输出序列中分布式存在的语义信号。 本文提出 **InstEmb**,一种面向指令遵循场景的 embedding 框架。InstEmb 的核心思想是:在不进行额外解码的情况下,让 embedding 获得“未来输出”的语义线索。具体而言,InstEmb 在输入后追加一组可学习的 **look-ahead tokens**,通过 frozen teacher 的输出条件表示进行自蒸馏,使这些 look-ahead tokens 学习 output-aware semantics;同时,它通过多视图对比学习强化最后一个输入 token 对 input-intrinsic semantics 的建模。最终,InstEmb 使用 **Dual-Anchor Alignment Pooling, DAAP** 将两类语义显式融合,得到更适合指令遵循任务的文本表示。 一句话概括:**InstEmb 让 embedding 不只理解“输入说了什么”,也尽可能理解“模型接下来会如何回答”。** ## 引言 Embedding 模型是检索、聚类、语义匹配和 RAG 系统中的基础组件。传统 embedding 更关注文本本身的语义相似性,但在指令遵循场景下,模型不仅要理解文本内容,还要理解“当前指令要求从哪个角度理解这段文本”。 以商品检索为例: * Query: *What features does this tent have for outdoor use?* * Product A: *This tent is durable and waterproof for outdoor use* * Product B: *This tent is compact and lightweight for outdoor use* 从词面上看,Query 与两个候选商品都高度相关:它们都包含 tent、outdoor use 等核心词。但如果进一步理解查询意图,用户真正关心的是“这顶帐篷具备哪些户外使用特征”。这时,Product A 强调 durable、waterproof,Product B 强调 compact、lightweight;二者都可能相关,但它们对应的是不同维度的户外特征。 这类问题暴露了现有 LLM embedding pipeline 的一个核心矛盾:LLM 在生成回答时,能够自然展开“durable/waterproof”或“compact/lightweight”等面向查询的特征解释;但 embedding 通常只取输入侧表示,尤其是最后一个输入 token 的 hidden state。这使得 embedding 难以捕捉“模型如果继续回答,会从哪些特征维度解释候选商品”。 InstEmb 正是围绕这一矛盾展开:它尝试把未来输出中的语义线索压缩进输入阶段的连续表示里,让 embedding 在不增加推理解码延迟的前提下,更好地表达“输入文本与查询意图之间的细粒度匹配关系”。 <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-11-22Hz66uBMJx1CpqHh.png" width="700"> <p><em>图1:InstEmb 方法框架</em></p> </div> ## 背景 ### 指令遵循 embedding 的两个语义来源 论文将 instruction-following embedding 中的语义信号拆分为两类: * **Input-Intrinsic Semantics**:输入文本和指令本身已经显式表达出的语义,主要由最后一个输入 token 承载。 * **Output-Aware Semantics**:模型在响应指令时可能生成的回答中隐含的语义,主要分布在输出 token 序列中。 这种区分很关键。对于普通句向量任务,输入本身的语义通常已经足够;但对于细粒度指令遵循任务,embedding 还需要理解“模型会如何按照指令处理输入”。这部分信息有时并不完全存在于输入表层,而是体现在模型将要生成的回答中。 ### 现有方法的局限 现有方法主要存在两类不足。 第一,很多 LLM embedding 方法依赖最后一个输入 token 的 hidden state。last-token pooling 能聚合输入上下文,但它更偏向 input-intrinsic semantics,对于输出中才会展开的隐含语义捕捉不足。 第二,一些方法尝试通过“先生成回答,再重新编码回答”的方式获得 output-aware 信息。例如在 RAG 场景中,HyDE 类方法会先生成假想文档,再将生成文本编码为向量。这类 decode-then-encode 流程虽然能引入输出语义,但会带来额外解码开销,也存在从离散文本生成到连续表示空间之间的语义重构间隙。 因此,一个理想的 instruction-following embedding 框架需要同时满足两个条件: 1. 同时保留输入本身的语义和未来输出中隐含的语义。 2. 获取 output-aware semantics 时不引入额外解码延迟,也不依赖生成文本后的二次编码。 InstEmb 的设计正是围绕这两个目标展开。 ## 方法 ### 核心思想:用 look-ahead tokens 捕捉未来语义 InstEmb 在输入序列后追加一组可学习的 **look-ahead tokens**。训练时,student 和 teacher 使用相同结构与初始化,其中 teacher 被冻结。 两侧输入形式如下: ```text Student input: [instruction + input + <eos> + look-ahead tokens] Teacher input: [instruction + input + <eos> + truncated gold output] ``` teacher 能够看到真实输出,因此它的输出部分 hidden states 携带 output-conditioned semantic information;student 不能看到真实输出,只能看到输入和可学习的 look-ahead tokens。训练目标就是让 student 的 look-ahead token states 去对齐 teacher 在真实输出位置上的表示。 这种设计有一个关键优点:**训练时使用真实输出提供语义监督,推理时却不需要生成输出**。模型只需要一次 prefilling pass,就能得到融合输入语义和未来输出语义的 embedding。 从直觉上看,look-ahead tokens 类似一组连续空间中的“未来语义占位符”。它们不直接预测离散 token,而是在 hidden state 层面学习“如果模型继续回答,输出大概会携带什么语义”。 ### 表征自蒸馏:将输出语义迁移到 look-ahead tokens 为了让 look-ahead tokens 学到 output-aware semantics,InstEmb 采用 representation self-distillation。对于每个训练样本,teacher 输入包含真实输出,student 输入包含 look-ahead tokens。随后,模型在对应位置上对齐 student 与 teacher 的表示。 论文中探索了两类蒸馏目标。 第一类是 **MSE loss**,直接对齐 hidden states: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-13-36AQCVTl70QyEUV9d.png" width="300"> <p style="text-align:center;"><em>公式1:MSE 表征蒸馏目标</em></p> </div> 第二类是 **KL divergence loss**,通过语言模型头对齐 student 与 teacher 的输出概率分布: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-13-37wmsPk370xFzrXqx8.png" width="300"> <p style="text-align:center;"><em>公式2:KL 分布蒸馏目标</em></p> </div> MSE 更直接地约束表示空间,适合细粒度指令遵循任务;KL 更关注分布层面的知识迁移,在通用 embedding 任务中表现更稳健。后续实验也验证了这一差异。 ### 多视图对比学习:强化输入语义锚点 仅仅让 look-ahead tokens 学到 output-aware semantics 还不够。Embedding 仍然需要稳定捕捉输入本身的语义,否则模型可能过度依赖输出侧信号,损害基础语义表示能力。 为此,InstEmb 在最后一个输入 token 上引入多视图对比学习。对于每个样本,构造四类视图: * student 对输入序列的第一次编码表示; * student 对输入序列的第二次编码表示,使用不同 dropout mask,类似 SimCSE; * frozen teacher 对输入序列的编码表示; * student 对目标输出序列的编码表示。 这些视图构成同一样本的正例集合,不同样本之间作为负例。通过多正例 InfoNCE 形式的对比学习,模型能够在保持输入语义稳定性的同时,引入 teacher 和 output view 提供的语义补充。 对应的多视图对比学习目标如下: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-14-040KyY0zSEVoJks7K.png" width="350"> <p><em>公式3:多视图对比学习损失</em></p> </div> 其中,sim 表示 cosine similarity,tau 表示 temperature,Z_i(z) 是聚合正例项与负例项的归一化因子: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-14-04slwp4fkTIcfaY0o.png" width="300"> <p><em>公式4:对比学习归一化因子</em></p> </div> 最终训练目标为: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-13-37n1LWCtlUzeqvmhN.png" width="240"> <p><em>公式3:InstEmb 总训练目标</em></p> </div> 这使得 InstEmb 同时优化最后输入 token 和 look-ahead tokens:前者作为 input-intrinsic anchor,后者作为 output-aware anchor。 ### DAAP:与训练目标对齐的池化方式 在 embedding 模型中,pooling 往往是一个容易被低估的问题。last-token pooling 偏向输入语义,mean pooling 又会把所有 token 混在一起,难以对应具体训练目标。InstEmb 因此提出 **Dual-Anchor Alignment Pooling, DAAP**。 DAAP 使用两个锚点: * **Input-Intrinsic Anchor**:最后一个输入 token 的 hidden state。 * **Output-Aware Anchor**:look-ahead tokens 的平均 hidden state。 最终 embedding 为二者平均: <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-13-38QxXcTq6fgZbxmk38.png" width="250"> <p><em>公式4:DAAP pooling 方式</em></p> </div> DAAP 的意义不只是“换一种 pooling”。它使训练时被显式优化的两个位置,在推理时都被显式纳入最终 embedding,从而避免了经验性地在不同 pooling 策略之间反复搜索。 ## 结果 ### 实验设置 InstEmb 以 LLaMA-3-8B-Instruct 作为主要 backbone。训练数据采用约 20 万条 abstractive QA 样本,来自 11 个不同 QA 数据集。训练 1 个 epoch,优化器为 Adam,学习率为 5e-6。推理阶段统一使用长度为 8 的 look-ahead tokens。 评测覆盖三类任务: * **指令遵循检索任务**:FollowIR、InfoSearch; * **指令遵循 embedding 任务**:Inst.STSb、IntentEmotion、NYTCluster; * **通用 sentence embedding 任务**:AskUbuntu、20News、SciDocsRR、StackOverflowDup。 ### 主要结果 **表1:指令遵循检索任务结果** | 模型 | FollowIR Mean Score | FollowIR p-MRR | InfoSearch SICR | InfoSearch WISE | InfoSearch p-MRR | | --- | ---: | ---: | ---: | ---: | ---: | | LLaMA-3-8B-Instruct | 14.0 | +1.0 | 19.6 | 13.1 | 6.6 | | FollowIR-7B | 24.8 | +12.2 | 12.5 | 13.4 | 4.1 | | Promptriever | 26.1 | +11.2 | - | - | - | | ***InstEmb-MSE*** | ***28.5*** | ***+15.6*** | ***20.1*** | ***13.3*** | ***7.7*** | InstEmb-MSE 在 FollowIR 上取得 28.5 的平均 score 和 +15.6 的 p-MRR,超过 FollowIR-7B 与 Promptriever 等强基线;在 InfoSearch 上也取得最高 p-MRR。 **表2:指令遵循 embedding 与通用 embedding 任务结果** | 模型 | Inst.STSb | IntentEmotion | NYTCluster | 指令任务均值 | 通用任务均值 | | --- | ---: | ---: | ---: | ---: | ---: | | LLaMA-3-8B-Instruct InputLast | 44.20 | 92.80 | 25.60 | 54.20 | 59.00 | | PonTE | ***44.60*** | 89.50 | 48.03 | 60.71 | 58.66 | | Inbedder | 23.10 | 94.50 | 62.00 | 59.90 | 61.52 | | ***InstEmb-MSE-DAAP*** | 41.37 | 94.12 | ***65.76*** | ***67.08*** | 62.69 | | ***InstEmb-KL-DAAP*** | 39.24 | ***94.88*** | 62.32 | 65.48 | ***63.39*** | InstEmb-MSE-DAAP 在指令遵循 embedding 任务上的平均分达到 67.08,显著高于 Inbedder reimplementation 的 59.90;InstEmb-KL-DAAP 在通用任务上达到 63.39,说明方法在提升指令遵循能力的同时保持了通用语义表示能力。 **表3:Qwen2.5 backbone 上的迁移结果** | Backbone / 设置 | 指令任务均值 | 通用任务均值 | | --- | ---: | ---: | | Qwen2.5-7B-Instruct InputLast | 66.14 | 55.46 | | InstEmb-MSE-DAAP | 67.70 | 58.73 | | InstEmb-MSE-DAAP, 14B Teacher | ***68.75*** | ***58.94*** | 这些结果说明,InstEmb 并不是只对某个 backbone 或某组 benchmark 有效,而是一种更通用的训练范式。 ### 消融分析 **表4:蒸馏目标消融** | 训练目标 | 指令任务均值 | 通用任务均值 | FollowIR Score | FollowIR p-MRR | | --- | ---: | ---: | ---: | ---: | | SFT | 59.90 | 61.52 | 5.0 | +8.4 | | CE | 60.13 | 61.93 | 27.3 | +14.8 | | KL | 63.41 | **63.01** | **27.9** | +14.9 | | MSE | **64.16** | 61.81 | 26.7 | **+15.0** | 在去除对比学习、只考察 look-ahead tokens 训练目标的情况下,MSE 和 KL 都明显优于 CE baseline。这说明,对于 embedding 表示学习而言,让 look-ahead tokens 直接模仿 teacher 的连续表示或分布,比让它们学习离散 token 预测更有效。 实验中,MSE 在指令遵循任务上表现更强,KL 在通用任务上更优。这也符合直觉:MSE 对 hidden state 的直接回归更利于细粒度语义对齐,而 KL 保留了更多分布层面的语言知识。 论文还对 look-ahead token 长度进行了消融。结果显示,从长度 0 增加到 1 时,大多数任务都会出现明显提升。这说明,哪怕只加入一个 look-ahead token,也能为 embedding 引入额外的 output-aware semantic signal。 不过,性能并不总是随 token 数量线性增长。对于输出很短、信息密度较高的任务,继续增加 look-ahead tokens 的收益可能有限;而对 NYTCluster 等更依赖扩展语义的任务,较长的 look-ahead token 序列更有帮助。 <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-11-22AuVyDBOXTPjpFqP.png" width="650"> <p><em>图2:Look-ahead token 长度消融</em></p> </div> **表5:多视图对比学习消融** | 策略 | 指令任务均值 | 通用任务均值 | | --- | ---: | ---: | | Full view set | **67.08** | **62.69** | | 去掉第二个 student input view | 61.30 (-5.78) | 62.51 (-0.18) | | 去掉 teacher input view | 65.05 (-1.68) | 61.01 (-2.03) | | 去掉 student output view | 65.54 (-1.54) | 61.96 (-0.73) | | 去掉第二个 student input view 与 teacher input view | 64.12 (-2.96) | 61.92 (-0.77) | | 去掉第二个 student input view 与 student output view | 56.44 (-10.64) | 61.23 (-1.46) | | 去掉 teacher input view 与 student output view | 65.33 (-1.75) | 61.91 (-0.78) | | 去掉全部额外 views | 64.16 (-2.92) | 61.81 (-0.88) | 多视图对比学习的消融显示,移除第二个 student dropout view 会造成明显下降;同时去掉第二个 student input view 与 student output view 时,指令任务均值从 67.08 降至 56.44。这表明 SimCSE-style 的 dropout augmentation 对防止 embedding collapse、保持对比学习稳定性非常重要。同时,teacher input view 和 student output view 也能帮助模型更好地连接输入语义、teacher 表示和输出语义。 **表6:Pooling 方法消融** | Pooling 方法 | 指令任务均值 | 通用任务均值 | | --- | ---: | ---: | | SpecialMean | 55.22 (-11.86) | 59.10 (-3.59) | | SpecialFirst | 62.69 (-4.39) | 61.76 (-0.93) | | InputLast | 66.72 (-0.36) | 61.80 (-0.89) | | InputLast + SpecialFirst | 66.51 (-0.56) | 61.51 (-1.14) | | AllMean | 63.48 (-3.60) | 61.63 (-1.03) | | **DAAP** | **67.08** | **62.69** | Pooling 消融显示,DAAP 在指令遵循任务和通用任务上取得最佳整体表现。仅使用 InputLast 已经能获得较强指令任务表现,但通用任务均值仍低于 DAAP;而对所有 token 做无差别平均的 AllMean 也明显落后。这说明,最后输入 token 与 look-ahead tokens 并不是可以随意平均的普通 token。它们在训练中承担了不同角色,因此推理时也应该按照训练目标显式组合。 ### 可解释性分析 除了量化指标,论文还从 attention pattern 和 hidden-state similarity 两个角度分析 InstEmb 的内部行为。 首先,在 attention pattern 上,原始 LLaMA-3-8B-Instruct 存在明显的 attention sink 现象,即大量注意力集中在序列开头位置,而不是任务相关位置。经过 InstEmb 训练后,模型的注意力分布更加选择性,会更多关注 system prompt 结尾、instruction 结尾等语义关键位置。 <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-11-22yuDprgB867bGAUd.png" width="500"> <p><em>图3:原始 LLaMA-3-8B-Instruct attention pattern</em></p> </div> <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-11-23RsN6YKKfHZgsN7j.png" width="500"> <p><em>图4:InstEmb attention pattern</em></p> </div> 其次,论文计算了 look-ahead token 序列与 golden output token 序列之间 hidden states 的余弦相似度。结果显示,最后一个输入 token 与后续位置的相似度较低,说明它更专注于 input-intrinsic semantics;而 look-ahead tokens 与 golden output tokens 之间具有更高相似度,说明它们确实承担了捕捉 output-aware semantics 的角色。 <div align="center"> <img src="https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2026-06-01-11-24Im6nq11ds9InObyU.png" width="560"> <p><em>图5:Look-ahead tokens 与 golden output tokens 的语义对齐</em></p> </div> 这组可视化与 InstEmb 的设计假设相互印证:look-ahead tokens 并不是普通的附加 token,而是在训练过程中被塑造成了未来输出语义的连续表示载体。 ### 小结 InstEmb 的核心贡献在于,它为指令遵循 embedding 提供了一种兼顾性能与效率的路径。 一方面,它通过最后输入 token 保留 input-intrinsic semantics,确保 embedding 对输入文本本身有稳定建模;另一方面,它通过 look-ahead tokens 和 representation self-distillation 引入 output-aware semantics,让 embedding 能够吸收模型未来回答中蕴含的指令相关语义。 更重要的是,这一过程不需要推理时生成答案。InstEmb 只需一次 prefilling pass,就能得到融合两类语义的向量表示,从而避免 decode-then-encode 带来的额外延迟和语义重构间隙。 从实验结果看,InstEmb 在 FollowIR、InfoSearch 等指令遵循检索任务上取得显著提升,在 Inst.STSb、IntentEmotion、NYTCluster 等指令遵循 embedding 任务上表现突出,同时在通用 sentence embedding benchmark 上保持竞争力。消融实验进一步说明,representation self-distillation、look-ahead tokens、多视图对比学习和 DAAP 都是性能提升的重要组成部分。 对于未来的 embedding 模型设计,InstEmb 给出了一个值得关注的方向:**embedding 不应只压缩输入,还可以在连续表示空间中预览输出。**
上一篇:让 AI 快速「读懂」你的代码仓:Joy-Code-Graph 云端图谱服务的三次进化
下一篇:【广告投放-大促备战】存储性能优化篇 -- 从异构同步到链路解耦的 JES 治理实战
bgsgkj751003
文章数
1
阅读量
152
作者其他文章
01
输出感知的指令遵循编码
InstEmb: Instruction-Following Embeddings through Glimpses of the Future摘要大语言模型已经在文本生成任务中展现出很强的细粒度指令遵循能力:面对同一段输入,只要指令发生变化,模型通常能够生成侧重点不同、语义目标不同的回答。然而,当 LLM 被用于生成文本向量时,现有 embedding 方法往往仍主要依赖输入最后一个 token
bgsgkj751003
文章数
1
阅读量
152
作者其他文章
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号