问题背景embedding 模型和生成模型一直是两条独立路线。BERT 类双向 encoder 适合做表示decoder-only LLM 适合做生成把 LLM 直接拿来取 hidden state 作为 embedding 一般效果不好。论文给的对照是 Llama 2 70B 用 weighted-mean pooling 在 MTEB 上只拿到 35.6而 BGE Large 0.34B 是 64.2参数差两个数量级却被反超。反方向同样不通。把 embedding 模型 fine-tune 之后再加回 LM head 做生成论文实测 Emb.-only 7B 在 MMLU 上是 23.5随机基线 25.0意味着 embedding 训练把生成能力彻底洗掉了。实际部署里这导致 RAG 系统要同时持有两个模型embedding 模型编码 query 和文档做检索生成模型再读 query 召回文档生成回答。query 和文档都要在两个模型上各跑一遍共 4 次 forward pass。GritLM 想消除的就是这种割裂。GRIT 方法一个预训练 LLM两份训练数据两套 forward 路径两个损失加权求和。embedding 流。输入格式s|user|{instruction}|embed|{sample}注意力切成 bidirectional对最后一层 hidden state 做 mean pooling仅对 sample 部分平均instruction 和格式 token 不计入但通过 self-attention 影响表示。损失是 in-batch negatives 的 InfoNCE是 cosine similarity 是温度。生成流。输入格式s|user|{instruction}|assistant|{response}/s注意力保持 causal过 LM head 做 next-token 预测损失只在 response 部分计算。总损失|embed|这个特殊 token 是关键开关。E5 数据集的 instruction 没有固定前缀模型必须靠这个 token 知道当前样本走对比损失而不是 LM 损失。GritLM 7B 用 Mistral 7B 初始化embedding batch 2048生成 batch 256训练 1253 步embedding 1.36 epoch生成 1 epoch。GritLM 8x7B 因算力受限embedding batch 降到 256。为什么两个目标能共存直觉上对比损失逼模型学统一的 sentence-level 表示LM 损失逼模型学逐 token 的条件概率两者目标不一致混训理应互相伤害。论文的实测结果是 GritLM 7B 在 MTEB 上 66.8单独训 embedding 的 Emb.-only 也是 66.8GritLM 7B 生成平均 55.5单独训生成的 Gen.-only 是 55.2。两个目标几乎不打架。论文给的解释是这两类任务都要求模型深度理解自然语言差别只在表达方式。论文进一步推测模型内部可能存在少量参数充当开关让最终表示要么适合 mean pooling 后做 embedding要么适合喂给 LM head 做生成但论文将这一点明确标注为推测未做定位实验。值得注意的是 MEDI2 数据集下加生成目标后 embedding 性能反而比 embedding-only 更高但这一现象在切换到 E5 数据集后消失两者持平。实验结果MTEBembedding。GritLM 7B 在 56 个数据集平均 66.8超过 E5 Mistral 7B 的 66.6 和 BGE Large 的 64.2是当时开源模型 SOTA。GritLM 8x7B 是 65.7比 7B 略低论文归因于 embedding batch 从 2048 砍到 256算力受限。生成任务。GritLM 7B 在 MMLU/GSM8K/BBH/TyDi QA/HumanEval/AlpacaEval 六项平均 55.5超过 Tülu 2 7B 的 46.3 和 Mistral 7B Instruct 的 44.1已经能压过 Llama 2 70B 的 46.4。GritLM 8x7B 平均 65.7在论文对比的开源生成模型里最高超过 Mixtral 8x7B Instruct 的 60.3 和 Tülu 2 70B 的 65.1。reranking。GritLM 既能当 bi-encoder 又能当 cross-encoder。论文用 Sun et al. 的 permutation generation prompt让生成能力对 top-10 召回结果重排MTEB 检索平均从 57.4 提到 57.916 个检索数据集中 15 个有提升。RAG 缓存加速。这是论文的卖点之一。传统 RAG 用两个独立模型embedding 模型编码 query 做检索生成模型读query 召回文档出回答query 和 doc 在两个模型上各跑一次共 4 次 forward。GritLM 检索和生成同一组权重embedding 阶段算出的 transformer 内部 KV states 可以直接喂给生成阶段省掉重复 forward。这是不同模型无法做的因为 KV 是模型内部表示跨模型不通用。论文给出三种缓存策略•Query Cachingembedding 阶段算 query 的 KV 时顺手缓存生成阶段不再重新 forward query•Doc Caching建索引时不仅存 doc embedding还把每篇 doc 的 KV 一起存进索引命中后直接喂给生成阶段•Query-Doc / Doc-Query Caching两者都缓存但因为 query 和 doc 各自缓存时没机会互相 attend会偏离原始 RAG 的语义在 Natural Questions 上sample Aquery 1 tokendoc 4000 tokensCPU 上 Doc Caching 5.25s vs 传统 RAG 14.18s提速 63%sample Bdoc 1 tokenquery 4000 tokensCPU 上 Query Caching 6.87s vs RAG 14.88s提速 54%。GPU 上提速幅度小一些30% 量级论文解释是 GPU 本来就并行处理整个序列缓存收益相对小。但 Query Caching 改变了 query 的 attention 模式embedding 时是双向生成时模型期望 causal论文实测 match 分数 Query Caching 从 RAG 的 30.50 掉到 25.46。Doc Caching 反而微涨到 33.38论文的解释是文档不需要被像 query 那样彻底理解略微损坏的 KV 状态对生成质量影响不大。Query-Doc 和 Doc-Query Caching 因有双重 attention 错位分数掉到 21.63 和 18.39接近 No RAG 的 21.00。论文的 takeawayQuery-Doc Caching 实用性受限单边缓存才是性价比高的选择。关键消融注意力。把 causal LLM 在 fine-tune 阶段切成 bidirectional 后再做 mean poolingembedding 涨了 1.8causalwmean 60.0 → bidirectionalmean 61.8论文确认了causal LLM 拿来做 embedding 应该改成双向这一结论。改成 PrefixLMinstruction 双向 response causal反而掉分。初始化。Mistral 7B Llama 2 7B GPT-J 6B 在 embedding 和生成上都成立。论文一个有意思的发现预训练后直接测 embeddingGPT-J 比 Mistral 强但 fine-tune 后 Mistral 反超。结论是 pretrained embedding 能力不能预测 fine-tuned embedding 能力pretrained 生成能力反而更靠谱。embedding 数据集。E5 (66.0) MEDI2 (64.7) MEDI (64.0)。论文将 E5 的优势归为 GPT-4 生成的 hard negative 质量更高、任务多样性更好。生成损失粒度。token level 还是 sample level 直接影响生成长度进而影响 AlpacaEval已知偏好长回答。论文最终用 mix32 个样本内 token level再 8 个 sub-batch 间 sample level。这个 mix 在 AlpacaEval 上是 74.7纯 sample-level 只有 67.6差 7 分对应生成中位长度 941 → 865。in-batch negative 来源。让 negative 全部来自同一数据集 vs 任意数据集平均分一样66.0但 Retrieval 子集涨 1.3。论文将原因归为同数据集内的 negative 区分难度更高逼模型学更细的差异。embedding batch size。从 256 涨到 4096embedding 平均 1.0主要来自 15 个 retrieval 数据集生成性能不变。精度。整体 BF16 mixed precision 即可但 pooling 和相似度计算必须 cast 到 FP32否则 embedding 性能略有下降。论文未对此给出更深的理论解释只是经验性地建议这样做。few-shot embedding 不 work。在 instruction 后面加一个示例整体性能下降。即使在 MEDI2 训练里塞了 5% 的 few-shot 样本模型也没学会用。论文将这一现象简单归为模型似乎没学会利用 few-shot 示例未做更深分析。一些易被忽视的实现细节asymmetric 任务用 one-sided instruction。E5 数据集对 retrieval 类任务只给 query 加 instruction文档不加。这样文档只需编码一次就能跨任务复用缓存友好。symmetric 任务训练时也是单边但评估时按双边格式喂给模型论文说这是合理的因为 cosine similarity 的传递性保证了 A↔B↔C 仍然成立。KV 缓存的存储代价。对 2,681,468 个文档用 7B 模型KV states 总量约 30TB。论文指出这部分可以完全 offload 到磁盘按需加载每个样本约 12.5MB。原始 index 只是 43GBKV cache 比 index 大三个数量级。KTO 对齐 trade-off。KTOKahneman-Tversky Optimization是一种偏好对齐方法相比 DPO 不需要成对偏好数据只需要每条样本的好/坏二元标签。论文在 GRIT 之后追加了一段 KTO 阶段UltraFeedback 二元化数据只训生成不训 embedding。结果 MTEB 从 66.8 微跌到 66.7AlpacaEval 涨超过 10 分。意味着对齐阶段会缓慢侵蚀 embedding 能力需要继续维持 embedding 训练才能保住。的设定。论文坚持 理由是模型已经预训练过 LM 损失对比损失是新东西需要更多学习。实际 embedding 损失下降很快到训练后期两个损失都稳定在 1.0 附近初始的权重差异被自动平滑掉。embedding head 的取舍。可选加一个 4096→1024 的下投影线性层存储省 4 倍但 embedding 平均掉 1 分。GritLM 最终未采用留给下游用 PCA 等后处理压维。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】