<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI on lilfry's library</title><link>https://lilfry09.github.io/ai/</link><description>Recent content in AI on lilfry's library</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>lilfry@sjtu.edu.cn (lilfry)</managingEditor><webMaster>lilfry@sjtu.edu.cn (lilfry)</webMaster><copyright>All rights reserved.</copyright><atom:link href="https://lilfry09.github.io/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>Looped Transformer 不只是重复计算：从 LoopFormer 到 Elastic-Depth Post-Training</title><link>https://lilfry09.github.io/ai/looped-transformer-elastic-depth-post-training/</link><pubDate>Tue, 18 Aug 2026 13:38:45 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/looped-transformer-elastic-depth-post-training/</guid><description>&lt;p>Looped Transformer 最容易被误解成一句话：把同一组 Transformer block 多跑几遍，用时间换参数。&lt;/p>
&lt;p>这句话没有错，但它跳过了真正困难的部分。共享参数只回答了“循环什么”，没有回答另外三个问题：模型如何知道自己处在第几次循环？短预算为什么仍然能给出有用结果？增加循环时，hidden state 为什么不会漂移、坍缩或者干脆变差？&lt;/p>
&lt;p>把近期工作放到同一张图里看，我更关心的研究命题不是再从头训练一个固定循环次数的模型，而是：&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Elastic-Depth Post-Training：能否把已有的固定深度或固定循环模型，改造成计算预算可调、迭代过程稳定、并能按样本自动停止的模型？&lt;/strong>&lt;/p>&lt;/blockquote>
&lt;p>LoopFormer 给出了全局预算和 trajectory consistency；LoopUS 展示了如何改造 pretrained LLM，并用 selective update 与 confidence exit 控制迭代；Relaxed Recursive Transformers 则提供了“共享主参数、保留深度角色”的折中。三条路线尚未被组合验证，但它们拼出了一个比“多循环几次”更完整的研究问题。&lt;/p>
&lt;p>本文信息截止到 &lt;strong>2026-08-18&lt;/strong>。文中的数值若无特别说明，均为相应论文在其模型、数据和硬件设置下的报告，不能直接外推到其他模型规模或真实部署吞吐。&lt;/p></description></item><item><title>蒸馏不只是压缩：从 Self-Distillation 到 Search Distillation 的研究地图</title><link>https://lilfry09.github.io/ai/distillation-beyond-compression-research-map/</link><pubDate>Sun, 09 Aug 2026 21:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/distillation-beyond-compression-research-map/</guid><description>&lt;p>最近我在整理蒸馏方向时，最大的感觉是：这个词被说窄了。&lt;/p>
&lt;p>很多人一提 &lt;code>distillation&lt;/code>，脑子里先出现的是模型压缩、logit 对齐、teacher/student 这一套老图景。但一旦把它放回后训练和推理系统里看，蒸馏真正传递的常常不是“答案”，而是搜索方式、更新方式、判断方式，甚至是数据该怎么长出来。&lt;/p>
&lt;p>如果把它重新定义成“一个学习过程，把可迁移的信息结构交给另一个学习过程”，那它就不再只是压缩术，而是一张更大的信息迁移图。&lt;/p></description></item><item><title>读 SFT、RL 与 On-Policy Distillation：后训练真正的变量是 on-policy data</title><link>https://lilfry09.github.io/ai/sft-rl-opd-on-policy-data/</link><pubDate>Sun, 09 Aug 2026 21:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/sft-rl-opd-on-policy-data/</guid><description>&lt;p>这篇原文最值得带走的一句话，我会改写成：&lt;/p>
&lt;p>&lt;strong>后训练不是在同一条损失曲线上做微调，而是在改模型会访问到的分布形状。&lt;/strong>&lt;/p>
&lt;p>SFT 把模型往外部示范拉，RL 让模型在自己会走到的状态上追逐奖励，OPD 则让 student 在自己的 prefixes 上对齐 teacher。只要盯住“数据来自哪里”，很多看起来玄学的现象就会变得很朴素：为什么 RL 和 OPD 常常比 SFT 更不容易忘，为什么 student 甚至能超过 teacher。&lt;/p>
&lt;p>原文在这里：&lt;a href="https://nrehiew.github.io/blog/sft_rl_opd/" target="_blank" rel="noopener noreffer ">SFT, RL, and On-Policy Distillation Through a Distributional Lens&lt;/a>。&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://lilfry09.github.io/svg/loading.min.svg"
 data-src="https://lilfry09.github.io/images/sft_rl_opd/distributions_cover.png"
 data-srcset="https://lilfry09.github.io/images/sft_rl_opd/distributions_cover.png, https://lilfry09.github.io/images/sft_rl_opd/distributions_cover.png 1.5x, https://lilfry09.github.io/images/sft_rl_opd/distributions_cover.png 2x"
 data-sizes="auto"
 alt="/images/sft_rl_opd/distributions_cover.png"
 title="分布视角封面" />&lt;/p></description></item><item><title>FullStack-Agent：全栈 Coding Agent 的训练与评测数据是如何构造的</title><link>https://lilfry09.github.io/ai/fullstack-agent-data-construction/</link><pubDate>Thu, 06 Aug 2026 20:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/fullstack-agent-data-construction/</guid><description>&lt;p>很多“网页生成 Agent”看起来已经能做出漂亮页面：按钮能点，表单能提交，页面还能弹出“保存成功”。但如果继续追问两步，问题就会暴露出来：数据真的写进数据库了吗？刷新页面之后还能读回来吗？后端 API 是否真的存在？&lt;/p>
&lt;p>&lt;code>FullStack-Agent&lt;/code> 这篇论文的核心贡献，正是把网站生成从“看起来像全栈”推进到“前端、后端和数据库都能被验证”。不过，论文里更值得仔细看的其实不只是 Agent 框架，而是它的数据构造方法：&lt;strong>它如何把真实网站代码库转换成 Coding Agent 的训练轨迹，又如何构造能够识别假后端的评测数据？&lt;/strong>&lt;/p>
&lt;p>本文只讨论这两个问题。论文原文是 &lt;a href="https://arxiv.org/abs/2602.03798" target="_blank" rel="noopener noreffer ">FullStack-Agent: Enhancing Agentic Full-Stack Web Coding via Development-Oriented Testing and Repository Back-Translation&lt;/a>，代码仓库见 &lt;a href="https://github.com/mnluzimu/FullStack-Agent" target="_blank" rel="noopener noreffer ">GitHub&lt;/a>。&lt;/p></description></item><item><title>AgentENV：为 Agentic RL 规模化运行可分叉的沙箱环境</title><link>https://lilfry09.github.io/ai/agentenv-agentic-rl-environment-infrastructure/</link><pubDate>Wed, 05 Aug 2026 23:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/agentenv-agentic-rl-environment-infrastructure/</guid><description>&lt;h3 id="agentic-rl-的瓶颈不只在模型和-gpu还在环境当成千上万个-agent-同时运行代码调用工具修改文件并探索不同路径时系统需要的不是更多普通容器而是可快速启动强隔离可暂停可恢复可分叉的大规模沙箱agentenv-要解决的正是这个问题">&lt;strong>Agentic RL 的瓶颈不只在模型和 GPU，还在环境：当成千上万个 Agent 同时运行代码、调用工具、修改文件并探索不同路径时，系统需要的不是更多普通容器，而是可快速启动、强隔离、可暂停、可恢复、可分叉的大规模沙箱。AgentENV 要解决的正是这个问题。&lt;/strong>&lt;/h3>
&lt;p>在传统 LLM 训练中，一条样本往往只是一段静态文本。但在 Agentic RL 中，样本变成了一段持续交互的轨迹：Agent 要进入操作系统，读写文件，执行 shell 命令，安装依赖，运行测试，根据反馈继续决策。训练系统因此不仅要“喂数据”，还要为每条轨迹准备一个安全、可重现的运行世界。&lt;/p>
&lt;p>&lt;a href="https://github.com/kvcache-ai/AgentENV" target="_blank" rel="noopener noreffer ">AgentENV（AENV）&lt;/a> 是一个面向这类工作负载的分布式平台，官方定位是“Running agent environments at scale”，并已用于 Kimi K3 的 Agentic RL 训练。它的核心价值可以压缩成一句话：&lt;strong>把单个隔离环境的创建与恢复，扩展成跨机器、可持久化、可弹性调度的环境基础设施。&lt;/strong>&lt;/p></description></item><item><title>线性注意力从头到尾讲清楚：从注意力矩阵到可递推状态</title><link>https://lilfry09.github.io/ai/linear-attention-from-scratch/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/linear-attention-from-scratch/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Linear Attention 的目标是避免显式构造 $n\times n$ 的注意力矩阵，而是把“每个 query 与所有 key 的交互”改写成“query 读取一个累积状态”。&lt;/strong>&lt;/p>&lt;/blockquote>
&lt;p>这句话比“Linear Attention 把复杂度从平方降到线性”更接近本质。复杂度下降只是结果，真正发生的结构变化是：标准 Attention 显式维护 token 与 token 之间的关系，而 Linear Attention 先把所有 key–value 信息写进一个状态，再让 query 从状态中读出结果。&lt;/p>
&lt;p>这篇文章从标准 Attention 出发，把这次改写完整推一遍。读完后，你应该能回答四个问题：为什么不能直接先算 $K^\top V$；归一化需要保存什么额外状态；因果 Linear Attention 为什么像 RNN；以及它用固定状态换走 $n\times n$ 矩阵时究竟牺牲了什么。&lt;/p></description></item><item><title>训练模型的长程软件工程能力：从 SWE-Marathon 到 FrontierSWE 与 SWE-Together</title><link>https://lilfry09.github.io/ai/long-horizon-swe-agent-training/</link><pubDate>Mon, 20 Jul 2026 21:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/long-horizon-swe-agent-training/</guid><description>&lt;p>如果要训练模型做长程软件工程任务，最容易走错的一步，是把“长程能力”理解成“更长上下文 + 更多 token”。SWE-Marathon、FrontierSWE 和 SWE-Together 这三组工作放在一起看，会给出一个更锋利的答案：长程能力不是文本长度，而是 &lt;strong>在一个可执行环境里，持续维护目标、状态、证据、风险和验证闭环&lt;/strong>。&lt;/p>
&lt;p>SWE-bench 把真实 GitHub issue 变成了可评分 patch，这是很重要的一步。但它主要回答“模型能不能修一个相对局部的问题”。现在这三组新 benchmark 关心的是另一件事：模型能不能像一个还算可靠的工程师那样，连续几个小时推进一个项目，把中途实验、失败、回滚、测试、用户纠偏、最终提交都组织起来。&lt;/p></description></item><item><title>SWE Agent 数据与评测版图</title><link>https://lilfry09.github.io/ai/swe-agent-benchmark-data-report/</link><pubDate>Tue, 14 Jul 2026 20:20:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/swe-agent-benchmark-data-report/</guid><description>这份 HTML 汇报梳理了 SWE agent 的评测版图、现成轨迹数据、可运行/可构建 SWE 环境资产，以及 rollout factory 和数据合成改进方向。</description></item><item><title>Coding Agent 最新论文与工程调研</title><link>https://lilfry09.github.io/ai/coding-agent-latest-research-survey/</link><pubDate>Tue, 14 Jul 2026 03:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/coding-agent-latest-research-survey/</guid><description>&lt;p>这轮调研的核心问题是：&lt;strong>为什么 GPT/Codex、Claude Code 这类 coding agent 突然变得这么能干？&lt;/strong>&lt;/p>
&lt;p>我的结论先放前面：它们不是单靠“模型会写代码”变强的，而是被一整套新的训练与工程范式推上去的：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>数据从代码片段变成真实软件工程任务&lt;/strong>：GitHub issue、PR、测试、依赖、Docker 环境、终端日志、代码审查意见、失败轨迹都成了训练资产。&lt;/li>
&lt;li>&lt;strong>训练从 next-token code completion 走向可验证交互&lt;/strong>：SFT 学轨迹，RL 学“跑测试、看失败、改补丁、再验证”的闭环，critic/verifier 学会挑更可能通过的 patch。&lt;/li>
&lt;li>&lt;strong>terminal 成了核心训练环境&lt;/strong>：真实 agent 不是只输出 diff，而是在 shell 里安装依赖、读日志、运行测试、grep/rg、编辑文件、回滚、调试。&lt;/li>
&lt;li>&lt;strong>长上下文不只是 1M token，而是 context engineering&lt;/strong>：强 agent 会把仓库当文件系统操作，用搜索、摘要、记忆、压缩、多窗口初始化来管理上下文。&lt;/li>
&lt;li>&lt;strong>harness/runtime 的设计极其关键&lt;/strong>：同一个底座模型，换工具接口、权限模型、sandbox、上下文拼装、测试反馈方式，SWE-bench 分数和真实可用性都能差很多。&lt;/li>
&lt;/ol>
&lt;p>还有一个必须诚实说清楚的点：&lt;strong>OpenAI 和 Anthropic 没有公开完整训练配方&lt;/strong>。但它们的官方 blog/system card 已经泄露了足够多的方向信号。OpenAI 明确说 GPT-5-Codex 类模型是针对 agentic coding 优化，并使用真实 coding tasks 的强化学习，让模型学会贴近 human PR preference、遵循指令、迭代跑测试直到通过。Anthropic 则把 Claude Code 的进步拆成 context engineering、工具设计、sandbox、auto mode、long-running harness、多 agent 并行和 eval-aware 开发。把这些和开源论文拼起来，大致能还原“前沿 coding agent 为什么强”的工程轮廓。&lt;/p></description></item><item><title>异步 RL：用 Policy Staleness 换掉全局 Barrier</title><link>https://lilfry09.github.io/ai/async-rl-policy-staleness-global-barrier/</link><pubDate>Mon, 13 Jul 2026 23:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/async-rl-policy-staleness-global-barrier/</guid><description>&lt;h3 id="异步-rl-的核心就是rollout-worker-持续生成样本trainer-收到足够样本就立即更新不再等待同一轮所有请求全部完成它用一定程度的-policy-staleness-换掉同步-barrier因此-gpu-更忙吞吐更高但训练数据也不再严格来自当前-policy">&lt;strong>异步 RL 的核心就是：rollout worker 持续生成样本，trainer 收到足够样本就立即更新，不再等待同一轮所有请求全部完成。它用一定程度的 policy staleness 换掉同步 barrier，因此 GPU 更忙、吞吐更高，但训练数据也不再严格来自当前 policy。&lt;/strong>&lt;/h3>
&lt;p>如果只看系统吞吐，异步 RL 很诱人。长 CoT 请求不再把整轮训练卡住，短请求生成完就可以进入训练队列，trainer 不必陪最后几个超长样本一起发呆。&lt;/p>
&lt;p>但这笔交易并不免费。同步 RL 里的等待点很烦，却也维护了一个重要假设：本轮训练数据大体来自同一个 policy snapshot。异步 RL 把这个假设拆掉之后，系统变成一条更高吞吐的流水线，同时也把 off-policy correction、数据分布偏差和样本版本管理都请上了牌桌。&lt;/p></description></item><item><title>DLLM 方法综述：从掩码扩散到大语言扩散模型</title><link>https://lilfry09.github.io/ai/dllm-method-survey/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/dllm-method-survey/</guid><description>&lt;p>如果把 &lt;code>DLLM&lt;/code> 理解成 &lt;code>Diffusion Language Model&lt;/code> 或 &lt;code>Diffusion Large Language Model&lt;/code>，那它现在最值得讨论的地方不是“它能不能一次生成多个 token”这么简单。&lt;/p>
&lt;p>更准确地说，DLLM 在重新打开一个被自回归 LLM 几乎盖住的问题：&lt;/p>
&lt;p>&lt;strong>语言模型一定要从左到右写下去吗？&lt;/strong>&lt;/p>
&lt;p>自回归模型的答案是：是的，把序列概率拆成一串 next-token 条件概率，训练、推理、缓存、服务系统全都围绕这个假设展开。扩散语言模型的答案是：未必。我们也可以先拿到一个被破坏的句子，再让模型用双向上下文一步步修复它；也可以先生成骨架，再填细节；也可以在多个位置同时做决策，只把足够确定的位置提交。&lt;/p>
&lt;p>所以 DLLM 真正有意思的地方，是它把语言生成从“写作”改成了“编辑”。&lt;/p></description></item><item><title>R3 和异步 RL：强异步 MoE 训练中的 routing replay 问题</title><link>https://lilfry09.github.io/ai/r3-async-rl-moe-routing-replay/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/r3-async-rl-moe-routing-replay/</guid><description>&lt;h3 id="r3-和异步-rl-解决的是两个正交问题异步导致的是用旧-policy-的数据更新新-policyr3-修的是对同一个-token同一组参数训练重算时没有复现-rollout-当时的-moe-routing即便-composer-天生允许-policy-staleness也仍需先保证行为-policy-的-token-probability-能被准确重建否则-off-policy-correctionkl-和-policy-ratio-都会被错误-routing-污染">&lt;strong>R3 和异步 RL 解决的是两个正交问题：异步导致的是“用旧 policy 的数据更新新 policy”，R3 修的是“对同一个 token、同一组参数，训练重算时没有复现 rollout 当时的 MoE routing”。即便 Composer 天生允许 policy staleness，也仍需先保证行为 policy 的 token probability 能被准确重建，否则 off-policy correction、KL 和 policy ratio 都会被错误 routing 污染。&lt;/strong>&lt;/h3>
&lt;p>关于这件事，有两个容易混在一起的判断：一个是“逻辑上不等价”的区分，这个分类基本正确；另一个是“想更新生成 token 时参与计算的 experts”，它也抓到了现象，但最后一句需要更精确一点：R3 的关键未必是&lt;strong>冻结并只更新原 experts&lt;/strong>，而是&lt;strong>重放 rollout routing，以便正确重建 behavior-policy forward 或训练所需的概率和梯度路径&lt;/strong>。两件事很接近，却不能完全画等号。&lt;/p></description></item><item><title>读 Qwen Bebop 与 DeepSeek DSpark：Speculative Decoding 正在从技巧变成系统工程</title><link>https://lilfry09.github.io/ai/qwen-bebop-deepseek-dspark-speculative-decoding/</link><pubDate>Sat, 11 Jul 2026 23:30:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/qwen-bebop-deepseek-dspark-speculative-decoding/</guid><description>&lt;p>最近两篇关于 &lt;code>speculative decoding&lt;/code> 的论文很值得放在一起看。&lt;/p>
&lt;p>一篇是 Qwen Team 的 &lt;strong>Bebop&lt;/strong>，全名是 &lt;em>Breaking Entropy Bounds: Accelerating RL Training via MTP with Rejection Sampling&lt;/em>。它关心的是：在大规模 RL 后训练里，rollout 太慢，能不能用 &lt;code>MTP&lt;/code> 把采样阶段加速起来？&lt;/p>
&lt;p>另一篇是 DeepSeek 的 &lt;strong>DSpark&lt;/strong>，全名是 &lt;em>Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation&lt;/em>。它关心的是：在线上高并发 serving 里，speculative decoding 为什么经常一上负载就不稳，怎样让它真正移动吞吐-延迟前沿？&lt;/p>
&lt;p>这两篇看起来一个讲训练，一个讲推理；一个讲 Qwen 的 RL pipeline，一个讲 DeepSeek-V4 的线上服务。但我读完之后觉得，它们其实在回答同一个更大的问题：&lt;/p>
&lt;p>&lt;strong>speculative decoding 的核心已经不只是“多猜几个 token”，而是怎样让猜测、验证、分布匹配和系统负载一起闭环。&lt;/strong>&lt;/p></description></item><item><title>Focal Loss 是什么？为什么它能解决类别不平衡问题？</title><link>https://lilfry09.github.io/ai/focal-loss-class-imbalance/</link><pubDate>Thu, 07 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/focal-loss-class-imbalance/</guid><description>&lt;p>在目标检测、图像分类、医学影像识别、缺陷检测等任务中，我们经常会遇到一个很典型的问题：&lt;strong>样本分布极不均衡&lt;/strong>。&lt;/p>
&lt;p>比如在目标检测里，一张图片中真正包含目标的区域可能只有几个，但背景区域却可能有成千上万个。模型训练时，大量“容易分类的背景样本”会主导损失函数，使模型把主要精力放在这些其实已经学会的简单样本上，而不是那些少数但更重要的难样本。&lt;/p>
&lt;p>&lt;strong>Focal Loss&lt;/strong> 就是为了解决这个问题被提出的。它最早广泛用于目标检测任务，尤其是 RetinaNet 这样的单阶段目标检测器中。它的核心思想很直观：&lt;strong>降低简单样本对总损失的贡献，让模型更关注难分类样本。&lt;/strong>&lt;/p></description></item><item><title>GroupDPO: Memory efficient Group-wise Direct Preference Optimization</title><link>https://lilfry09.github.io/ai/groupdpo-group-wise-preference-optimization/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/groupdpo-group-wise-preference-optimization/</guid><description>GroupDPO 将 DPO 从一正一负的单对偏好扩展到多候选回答组，并通过一阶梯度等价的 surrogate loss 降低显存开销。</description></item><item><title>读 MOPD：后训练正在从单一 RL 走向多教师能力合并</title><link>https://lilfry09.github.io/ai/multi-teacher-on-policy-distillation-post-training-primitive/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/multi-teacher-on-policy-distillation-post-training-primitive/</guid><description>&lt;p>这篇文章最值得注意的地方，不是它又给后训练加了一个新缩写，而是它指出了一个正在变清晰的趋势：&lt;/p>
&lt;p>&lt;strong>后训练的主线，可能正在从“用一个奖励函数把模型直接 RL 到更强”，转向“先训练多个能力专家，再用 on-policy distillation 把这些能力合并回一个主模型”。&lt;/strong>&lt;/p>
&lt;p>如果说 SFT 是教模型模仿答案，DPO/RL 是教模型偏向更好的行为，那么 &lt;code>Multi-Teacher On-Policy Distillation&lt;/code> 更像是在回答另一个问题：&lt;/p>
&lt;p>&lt;strong>当我们已经用不同数据、不同奖励、不同阶段训练出了多个强 teacher，怎样把它们稳定地压回一个 student，而不是靠简单模型融合或离线蒸馏丢掉能力？&lt;/strong>&lt;/p></description></item><item><title>告别盲目堆算力：让AI编程智能体从经验中学会“思考”</title><link>https://lilfry09.github.io/ai/scaling-test-time-compute-for-agentic-coding/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/scaling-test-time-compute-for-agentic-coding/</guid><description>本文介绍一种面向长程编程智能体的测试时扩展框架：通过结构化复盘、递归锦标赛投票和并行蒸馏提炼，让智能体复用经验而不是盲目重试。</description></item><item><title>模型更强之后，Agent 框架会怎样退到 runtime</title><link>https://lilfry09.github.io/ai/stronger-agent-models-thinner-frameworks/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/stronger-agent-models-thinner-frameworks/</guid><description>当模型通过轨迹训练学会规划、工具使用、错误恢复和上下文选择后，Agent 框架最该简化的不是安全和评估，而是替模型思考的调度层。</description></item><item><title>轻一点的 harness，强一点的 runtime：Agent 训练轨迹里的信号问题</title><link>https://lilfry09.github.io/ai/agent-harness-training-trajectory-signal/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/agent-harness-training-trajectory-signal/</guid><description>Agent 训练真正宝贵的是轨迹里的因果信号。harness 可以保护执行环境，却不应该替模型完成太多认知决策，否则成功轨迹会变成带噪声的训练样本。</description></item><item><title>coding agent数据合成-qwen调研</title><link>https://lilfry09.github.io/ai/coding-agent-data-synthesis-qwen-research/</link><pubDate>Sun, 19 Apr 2026 20:05:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/coding-agent-data-synthesis-qwen-research/</guid><description>&lt;p>这篇调研聚焦 &lt;code>coding agent&lt;/code> 训练里最关键的一环：&lt;strong>高质量、可验证、可复现的数据合成&lt;/strong>。如果把近两年的主线压缩成一句话，那就是：行业正在从“纯合成题”转向“以真实软件工程活动为种子，再做自动化增强”的 &lt;code>SWE-bench&lt;/code> 式范式。&lt;/p>
&lt;p>对于 &lt;code>Qwen&lt;/code> 这一类希望持续提升复杂编码能力的模型，这条路径的意义尤其直接：它不仅决定模型能否在 benchmark 上刷出更高分，更决定模型是否真正具备在真实仓库里定位问题、搭环境、写补丁和通过测试的能力。&lt;/p></description></item><item><title>面试高频：Bradley-Terry vs Plackett-Luce，奖励建模到底差在哪</title><link>https://lilfry09.github.io/ai/bt-vs-pl-ranking-in-alignment/</link><pubDate>Wed, 08 Apr 2026 14:20:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/bt-vs-pl-ranking-in-alignment/</guid><description>一句话：BT 是 PL 在候选数 N=2 时的特例。BT 更轻、更稳、更适合现有 RLHF/DPO；PL 信息更全，但标注和训练成本显著更高。</description></item><item><title>读 YaRN：长上下文扩展，核心不是硬拉窗口，而是别把 RoPE 拉坏了</title><link>https://lilfry09.github.io/ai/yarn-context-window-extension/</link><pubDate>Tue, 07 Apr 2026 21:12:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/yarn-context-window-extension/</guid><description>&lt;p>如果只把 &lt;code>YaRN&lt;/code> 看成“又一个把上下文从 &lt;code>4k&lt;/code> 拉到 &lt;code>64k/128k&lt;/code> 的技巧”，其实有点可惜。&lt;/p>
&lt;p>它真正碰到的，是一个比“扩窗”更本质的几何问题：&lt;/p>
&lt;p>&lt;strong>模型原本已经习惯了一套位置相位系统。现在你强行把长度拉大，怎样才能让这套系统在更长范围内继续工作，同时尽量不丢掉近距离的位置分辨率？&lt;/strong>&lt;/p>
&lt;p>这个问题一旦说清楚，&lt;code>YaRN&lt;/code> 的设计就会显得非常自然。&lt;/p></description></item><item><title>读《Reasoning with Sampling》：RL 没让模型变聪明，它只是在重分配推理能力</title><link>https://lilfry09.github.io/ai/reasoning-with-sampling-rl-redistribution/</link><pubDate>Tue, 07 Apr 2026 20:55:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/reasoning-with-sampling-rl-redistribution/</guid><description>&lt;p>这篇论文真正危险的地方，不是它提出了一个新采样器，而是它在追问一个更深的解释问题：&lt;/p>
&lt;p>&lt;strong>reasoning model 的进步，到底是模型学会了新能力，还是我们终于学会了怎么从旧能力里采样？&lt;/strong>&lt;/p>
&lt;p>如果这个问题问对了，很多关于 &lt;code>RL for reasoning&lt;/code> 的叙事都得重写。&lt;/p></description></item><item><title>读 OLMo 3：真正重要的不是新架构，而是训练信号</title><link>https://lilfry09.github.io/ai/olmo3-training-signals/</link><pubDate>Mon, 06 Apr 2026 19:00:00 +0800</pubDate><author>lilfry@sjtu.edu.cn (lilfry)</author><guid>https://lilfry09.github.io/ai/olmo3-training-signals/</guid><description>&lt;p>最近读 &lt;code>OLMo 3&lt;/code>，我最大的感受不是“开源社区又做出了一个更强的模型”，而是它把一件经常被说得很模糊的事情讲清楚了：&lt;/p>
&lt;p>&lt;strong>一个大模型最终会长成什么样，核心不是由几处架构微调决定，而是由它在每个阶段反复接收到什么训练信号决定。&lt;/strong>&lt;/p>
&lt;p>这句话听起来很朴素，但如果真把它想透，很多关于 LLM 的问题都会变得更清楚。为什么有些模型底座不差，后训练却拉不上去？为什么有些模型上下文窗口变长了，却还是不会真正利用长上下文？为什么有些 RL recipe 看起来很先进，最后却没有明显收益？答案往往不在“结构又改了什么”，而在“梯度到底从哪里来”。&lt;/p></description></item></channel></rss>