Arganzheng's Blog

stay hungry, stay foolish

高效推理与压缩(算法侧):解码、投机、量化与 KV(总纲)

Efficient Inference and Model Compression: The Algorithm Side

内容简介 《高效推理与压缩(算法侧)》是一组共六篇的系列文章,对应《AI 算法工程师学习地图》的第 L6 层。它面向已经理解 Transformer 的成本结构(L4,《现代 LLM 结构》)、并且做过或准备做后训练(L5,《后训练》)的读者,回答的是一个部署前必然遇到的问题:不改硬件、不改推理引擎,怎么让同一个模型更快、更小、更便宜——以及每种办法让模型的输出改变了多少。 “推理优化”这个词下面混着两类完全不同的东西。一类改变模型或解码过程:量化把权重从 16 bit 变成 4 bit,投机解码让一次前向产出多个 token,KV 驱逐丢掉一部分缓存,剪枝删掉一部分参数。另一类改变调度与内存管理:PagedAttention、continuous batchi...

算法工程师的实验方法论:用有限的算力得出可信的结论

Experimental Methodology for AI Algorithm Engineers: Credible Conclusions on a Finite Compute Budget

本文是《AI 算法工程师学习地图》“横切:实验方法论”一层的导读。它不属于任何一层,对每一层都适用;放在 L5 之后,是因为它要用到的例子——scaling law 的外推(预训练(03))、评测的置信区间(后训练第八篇)、loss spike 的归因(预训练(05))——到这里都已经讲过了。 一个算法工程师一年里做的事,绝大部分不是”提出新方法”,而是回答一个个具体的问题:这批数据加进去有没有用?lr 调高一倍是不是更好?这个 attention 变体值不值得付出 KV 的代价?换一个 tokenizer 会不会伤中文?每个问题都要用实验回答,而每个实验都花钱——一次 7B 的 SFT 消融几十 GPU 小时,一次预训练配方的对照几千。算力是有限的,问题...

后训练(09):系列总结与通关自测

Post-Training: Series Recap and Final Self-Test

八篇正文回答了一个问题:一个只会续写的基座模型,经过哪几步变成能回答、能拒绝、能一步步推导、能调工具的模型——每一步的目标函数是什么、要几个模型在显存里、生成多少 token、怎么证明它真的变好了。第一篇用 SFT 教格式,第二篇把人的判断造成一个可微的奖励,第三、四篇是用奖励改策略的在线与离线两种解法,第五篇把奖励换成验证器,第六篇把验证器推到多轮环境,第七篇把奖励换成教师的分布,第八篇是贯穿全程的度量。八篇合起来是《AI 算法工程师学习地图》的第 L5 层。 本文不讲新内容,做三件事:把八篇压成一张表与八段回顾,把贯穿八篇的几条线拎出来,然后给一套三段式的通关自测——判断与计算、跨篇综合、面试题。各篇末尾的自测检验的是”这一篇读懂了没有”,这里检验的是”八篇能...

后训练(08):评测:benchmark、LLM-as-judge、Arena 与污染

Evaluating LLMs: Benchmarks, LLM-as-Judge, Arenas and Contamination

前七篇每一篇的结尾都有一句”变好了”:SFT 之后会按格式回答,RL 之后奖励涨了,蒸馏之后小模型接近教师。每一句背后都有一个度量,而度量比方法更容易出错——分数涨了 2 个点,可能是能力提升,可能是换了 few-shot 数,可能是测试题在训练集里,也可能只是 1000 道题上的随机波动(±3 个点)。评测是后训练流水线里唯一贯穿全程的部件,也是”回到数据或配方”那条回边的起点:不会评测,就不知道下一步改什么。 这一篇讲评测的四件事:benchmark——每个测什么、多大、饱和到什么程度,以及协议的每一个细节如何改变分数;统计——多少题才能区分两个模型;judge 与 Arena——用模型和人做偏好评测时各有什么偏差;污染与自建——怎么知道分数是不是假的,什么时...

后训练(07):蒸馏:logits 级、序列级与 on-policy

Knowledge Distillation for LLMs: Logit-Level, Sequence-Level and On-Policy

前六篇的奖励有两种来源:人(经过 RM 或 DPO 的转译)与验证器。第三种来源是另一个模型——一个更大、更强、或已经训好的教师,它对每个 token 的概率分布、或它生成的序列,成为学生的训练信号。这就是蒸馏(Hinton 等 2015)。它在 LLM 上有三种形态:学生匹配教师的 logits(token 级)、学生在教师生成的文本上做 SFT(序列级)、学生自己生成、教师在学生的序列上逐 token 打分(on-policy)。三者学到的东西不同、漏掉的东西不同、成本相差几个数量级。 蒸馏是 2025 年小模型能力的主要来源。DeepSeek-R1 用 80 万条样本 SFT 出的 1.5B–70B 推理模型,比在同样基座上直接做 RL 好得多;Qwen3 ...

后训练(06):Agent 与工具调用的 RL:多轮环境、轨迹数据与延后的奖励

Agentic RL: Multi-Turn Environments, Trajectory Data and Delayed Rewards

第五篇的模型一次生成到底:读 prompt,想几千 token,给答案,验证器打分。真实的任务不长这样。修一个 GitHub issue 要读文件、改代码、跑测试、看报错、再改;回答一个需要查资料的问题要搜索、读结果、再搜索;操作一个系统要发命令、看输出、决定下一步。模型的一段输出之后是环境的输出,模型再基于它继续——几轮到几十轮之后,任务才有结果,奖励才能算。 这一篇把第五篇的可验证奖励从单轮推到多轮。从三件套看,奖励与参考没有变(还是验证器、还是弱 KL),变的是策略与环境交互的形态:一条轨迹里有模型生成的 token,也有环境返回的 token,前者要算梯度、后者绝不能算;奖励延后到轨迹末尾,几十轮的动作要共享一个分;rollout 不再是一个推理引擎的批量...

后训练(05):推理模型与可验证奖励:R1 的配方、PRM 与 test-time compute

Reasoning Models and Verifiable Rewards: The R1 Recipe, Process Reward Models and Test-Time Compute

前三篇的奖励都是学出来的:人标偏好,训一个 RM,或把 RM 折进 DPO 的 loss。学出来的奖励是人类判断的代理,代理就有 Goodhart——第二篇算过它的过优化曲线,第三篇用 KL 项管理它,第四篇发现 DPO 也逃不掉。2025 年推理模型的突破,从三件套的角度看只改了一格:奖励不再学,直接验。数学题比答案,代码跑测试,格式查标签。验证器是确定的,策略骗不了它(只要验证器本身没漏洞),于是 KL 项可以拿掉、RM 可以不训、策略可以被推到学出来的奖励永远不敢推的地方——回答从几百 token 长到几万 token,中间出现反思、回溯、验算。 这一篇讲这条路:可验证奖励是什么、能用在哪;DeepSeek-R1-Zero 为什么只靠规则奖励就训出了长思维链...

后训练(04):离线 RL:从 RLHF 目标推出 DPO 及其变体

Offline Preference Optimization: Deriving DPO from the RLHF Objective, and Its Family

第三篇的方法都在做一件贵的事:每一步从当前策略采样、打分、再更新。采样要一个推理引擎,打分要一个奖励模型,更新要四个(或三个)模型在显存里。DPO(Direct Preference Optimization,Rafailov 等 2023)问的问题是:同一个目标,能不能不采样、不打分,直接从一份现成的偏好数据推出一个 loss?1 答案是能,而且推导只有几行——RLHF 的目标在 KL 约束下有闭式最优解,把它反解成奖励、代入 Bradley-Terry,奖励模型就消失了,剩下策略与参考的对数比。这一篇先把这几行推清楚,再看它付出了什么代价(隐式奖励只在数据分布上有定义),再把 2024 年冒出来的十几个变体——IPO、KTO、ORPO、SimPO、cDPO——...

后训练(03):在线 RL:PPO、GRPO 与 RLHF 三件套

Online RL for LLMs: PPO, GRPO and the Policy–Reward–Reference Trio

前两篇准备好了两样东西:一个会按格式回答的策略(SFT),一个能给回答打分的奖励(RM)。这一篇把它们接起来:让策略生成回答、让 RM 打分、用分数更新策略,循环。因为每一轮都从当前策略采样,这叫在线(on-policy)RL;因为奖励来自人类偏好的代理,整条流水线叫 RLHF。 这是本系列推导最重的一篇。它要从”如何对一个不可微的采样过程求梯度”讲起,走到 PPO——四个模型、GAE、clip——再看 GRPO 怎么去掉其中一个模型、2025 年的一族修正各改了目标函数的哪一项。它也是”三件套”这张表第一次完整出现的地方:策略、奖励、参考,加上 PPO 特有的第四个——价值。 本篇要回答的核心问题是: PPO 为什么要四个模型?1 GRPO 去掉价值模...

后训练(02):偏好数据与奖励模型:Bradley-Terry、pairwise loss 与 reward hacking

Preference Data and Reward Models: Bradley-Terry, Pairwise Loss and Reward Hacking

SFT 之后的模型会按格式回答,但它只见过”好的回答长什么样”,没见过”两个回答哪个更好”。要让它继续变好,需要一个能对任意回答打分的东西——不是人(太慢、太贵,且 RL 每步要打几千个分),而是一个模型:输入 prompt 与回答,输出一个标量,越大越好。这个模型叫奖励模型(Reward Model,RM),它是 RLHF 三件套里的”奖励”,后面的 PPO、GRPO 直接用它,DPO 把它折进 loss 里,拒绝采样用它选数据,Arena 用它的数学给模型排名。 RM 的原理简单到一句话能说完:它是一个逻辑回归,特征是回答、标签是”A 好于 B”。难的全在数据与它的失效方式上——人对”哪个更好”只有七成一致,训出来的 RM 准确率也就七成;而 RL 的策略会像...

×