ARPO
本文主要参考论文 [1] 1 背景与问题 LLM Agent 的训练和纯文本 LLM 有一个关键区别:Agent 不是一次性输出答案,而是在推理过程中不断地调用工具、接收反馈、再决策。现有的 Agent RL 方法(GRPO、DAPO 等)的做法很简单——把整条"思考→调工具→看结果→再思考→输出"的链条当成一条完整回复,用轨迹级 RL 来优化。这忽略了一个重要现象。 论文在深度搜索任务中发现:LLM 每次调用工具后,紧接着生成的 token 熵会急剧升高,前 10-50 个 token 的熵显著高于正常水平,之后才逐渐回落。原因很直观——搜索引擎返回的文本、Python 执行结果等外部信息,和模型内部状态之间存在分布偏移。工具反馈引入了不确定性,而Agentic RL 却把这些所有步骤一视同仁,这样就看不出哪次工具调用之后模型最需要后续探索"。论文提出了ARPO(Agentic Reinforced Policy Optimization)算法来专门解决这个问题。 2 方法 2.1 核心洞察:工具调用后的熵峰值 上图展示了 LLM Ag...
SAPO
本文主要参考论文 [1] 1 背景与问题 强化学习(RL)已经成为提升 LLM 推理能力的关键手段。目前主流是基于分组的策略优化:对每个 query 采样 GGG 条回复,组内归一化 reward 得到 advantage A^\hat{A}A^,再用 token 级重要性比率 rrr 加权更新: ri,t=πθ(yi,t∣q,yi,<t)πθold(yi,t∣q,yi,<t),A^i,t=Ri−mean({Rj})std({Rj})r_{i,t} = \frac{\pi_\theta(y_{i,t} \mid q, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t} \mid q, y_{i,<t})}, \quad \hat{A}_{i,t} = \frac{R_i - \text{mean}(\{R_j\})}{\text{std}(\{R_j\})} ri,t=πθold(yi,t∣q,yi,<t)πθ(yi,t∣q,yi,<t),A^i,t=std({Rj})Ri−m...
Qwen2.5VL技术报告
本文内容主要来自Qwen2.5VL技术报告[1] 1 背景与介绍 目前的视觉语言模型面临几大发展瓶颈,包括:计算复杂度高、上下文理解受限、细粒度(fine-grained)视觉感知能力差,以及在处理不同长度序列时性能不一致。为了突破上述瓶颈,Qwen2.5-VL 致力于探索细粒度的感知能力,将其作为模型的坚实基础层;同时,利用最新的 Qwen2.5 大语言模型并构建多模态问答数据,来强化模型的多模态推理能力。 论文明确提出了 Qwen2.5-VL 在技术上的四个主要创新点: 优化视觉编码器: 在视觉编码器中实现了窗口注意力机制(window attention),从而优化了推理效率。 动态 FPS 采样: 引入了动态帧率(FPS)采样,将动态分辨率扩展到了时间维度,使模型能够全面理解不同采样率的视频。 时间与“绝对时间”对齐: 升级了时间维度的 MROPE(多模态旋转位置编码),将其与“绝对时间”对齐,从而促进了更复杂的时间序列学习。 海量高质量数据: 在精选高质量预训练和监督微调数据方面做出了巨大努力,将预训练语料库从 1.2 万亿 Token 大幅扩展到了 4.1 ...
从MHA到CSA,大模型长上下文推理的进化历程
本文梳理 KV Cache 压缩从标准多头注意力(MHA),经 MQA、GQA、MLA(DeepSeek-V2),一路演进到 DeepSeek-V4 的 CSA+HCA 混合架构的完整脉络。 1 起点:MHA 与 KV Cache 困境 1.1 什么是 MHA(Multi-Head Attention,多头注意力) 标准 Transformer 的注意力层由多个注意力头组成,每个头独立地对输入做 Query (QQQ)、Key (KKK)、Value (VVV) 投影,最后将所有头的输出拼接起来经过一次线性变换得到最终结果: 其中的单头注意力: headi=Attention(Qi,Ki,Vi)=softmax(QiKiTdk)Vi\text{head}_i = \text{Attention}(Q_i, K_i, V_i) = \text{softmax}\left(\frac{Q_i K_i^T}{\sqrt{d_k}}\right) V_i headi=Attention(Qi,Ki,Vi)=softmax(dkQiKiT)Vi 其中 Qi=XWi...
Search-R1
本文主要来自论文[1] 1 背景 现有的检索增强生成(RAG)或工具调用提示(Prompting)方法通常不是最优的,因为大模型并没有在训练阶段真正学会如何与搜索引擎进行多轮的最优交互。为了解决这个问题,研究团队将搜索引擎直接建模为 RL 环境的一部分,让模型通过轨迹采样和试错来学习搜索策略。 2 方法 2.1 Loss Masking for Retrieved Tokens 在使用强化学习(如 PPO 或 GRPO 算法)训练模型时,模型生成的每一个 Token 通常都会被用来计算Loss并更新模型参数 。但这在“搜索+推理”的场景下会引发一个严重问题: 在生成序列中,既包含了大模型自己生成的推理过程,也包含了系统从外部搜索引擎抓取回来的文档内容 。如果把检索回来的文本也纳入优化计算,会导致模型产生难以预料的优化行为和学习动态 。 为了解决上述问题论文引入了“检索 Token 掩码”机制。在计算策略梯度时,系统只针对大模型自己生成的 Token计算损失,而将检索回来的外部文档 Token通过掩码彻底屏蔽。这种设计能够防止检索内容对策略优化产生不良干扰,极大地提升了强化学...
Agent Harness Engineering: A Survey
本文内容主要来自论文[1]和网络资料 1 背景介绍 在实际生产环境中,LLM智能体执行复杂任务的可靠性,与其说取决于底层大模型本身的能力,不如说更取决于包裹在模型外围的系统基础设施维护。随着智能体的发展,工程优化的重点经历了三个阶段的演变: **Prompt Engineering:优化单次模型调用的静态文本输入 。 Context Engineering:管理多步任务中模型在每个阶段能看到的信息流,解决上下文窗口限制和信息检索问题 。 **Harness Engineering: 将模型封装在提供状态管理、工具调用、反馈注入、约束执行和进度验证的基础设施中,将智能体视为一个完整的控制系统 。 Harness这个词本意是马具。马具的作用是精确地把马的力量引导到正确的方向,防止失控。这整体很Harness Engineering对LLM的作用完全类比:让模型的能力被可靠地驾驭。 但是我们还是需要一个对harness更具体的定义,于是论文给出了更精确的工程定义:Agent Harness是"将模型调用转化为有边界、有状态、工具中介的任务执行的工程化包装层&quo...
H2O
本文主要参考论文H2O[1] 1 背景与问题 尽管LLMs能力强大,但部署成本极高,尤其是在处理长文本生成(如对话系统、故事创作)时,除了模型本身的参数外,KV Cache会随着序列长度和Batch Size的增加呈线性增长,显存占用则会急剧增加。 为了解决这个问题,作者提出了一种名为 H2OH_2OH2O (Heavy-Hitter Oracle) 的动态缓存淘汰策略,旨在大幅减少内存占用的同时保证模型生成的质量和准确率,具体方法Overview如下图: 可以看到,Overview里主要对比了下面三种方法: 动态稀疏 (Dynamic Sparsity):不拘泥于固定的位置或距离,而是在模型生成每一个词的当下,根据当前的注意力计算情况动态地决定哪些词的历史记忆是有用的,并把它们保留下来。虽然理论上最合适,但在实际代码运行中,想要在极短的时间内精准算出“到底哪些词构成了最优组合”也是一个计算量极其庞大的数学组合问题。 步幅稀疏 (Static Sparsity - Strided):按照固定的间隔(比如每隔 2 个词或 3 个词)保留记忆,这是一种类似于网格的固定规则...
简单谈谈openclaw和claude code的memory机制
本文内容主要讲解了OpenClaw和Claude Code的memory机制,并针对他们的异同展开了探讨 1 OpenClaw的memory OpenClaw 是开源 Agent 框架,其memory机制主要想法是**“文件即状态,搜索即召回”** 1.1 两层记忆 OpenClaw 的记忆系统主要分为两层: 长期记忆 — MEMORY.md:存放用户偏好、关键决策、固定规则等需要长期记住的信息。文件默认不存在,需要用户手动创建。每次对话启动时自动注入上下文,Agent 在对话中主动往里写,人也可以直接编辑。 工作记忆 — memory/YYYY-MM-DD.md:每天一个独立文件,记录当天的会话摘要、运行笔记、临时观察。它们是 append-only 的——每天自动创建新文件,旧内容不修改。每次会话启动时,系统加载今日和昨日的日志文件。 当这些记忆被保存后,会在后台自动进行向量化索引。 1.2 如何召回 除去上面自动注入的记忆,Agent会通过如下两个工具召回其他记忆: memory_search:混合搜索(BM25 30% + 向量70%)搜索之前索引在SQLit...
MemGPT
本文内容主要参考论文 [1] 1 背景与问题 LLM虽然革命性地改变了AI,但受限于固定长度的上下文窗口。如果简单拓展上下文长度,会因为Transformer 的自注意力机制导致与计算时间、内存呈二次方增长。所以memory机制就十分重要 2 MemGPT 系统设计 它主要是借鉴操作系统虚拟内存的概念: 操作系统通过"分页"在物理内存和硬盘之间交换数据,让应用程序以为有无限内存 是不是也可以 LLM 在有限的上下文窗口(内存)和外部存储(硬盘)之间自动"换页",营造出无限上下文的幻觉?具体的设计如下图: 2.1 Prompt组成 LLM 的Prompt被划分为三个连续区域: 区域 功能 系统指令(System Instructions) 包含规则。只读 工作上下文(Working Context) 存储关键事实、用户偏好、角色设定等结构化信息。可读写 FIFO 队列 FIFO 队列的第一个位置保存一个递归摘要,用于快速回顾已被逐出的旧消息, 其他位置滚动存储最近的消息历史,包括对话、系统警告、函...
Mem0
本文主要参考论文[1] 1 背景与问题 这里就比较常规,还是说LLM固定上下文窗口导致无法维持长期多会话对话的一致性,引出memory的重要性 2 方法 人类记忆的关键是选择性存储、整合关联概念、按需检索。Mem0 模仿这一过程,让 AI 代理动态提取、组织、检索对话中的关键信息,而不是简单地把所有历史塞进提示词。论文将memory管理和正常对话解耦,对于memory管理总共提出了两个方法,Mem0和Mem0g。在正常对话的时候只需要向量嵌入查询top s个相关的记忆就作为memory就可以了。 2.1 Mem0 如下图所示: Mem0 的核心是两阶段流水线:提取阶段(Extraction Phase) 负责从对话中提炼事实,更新阶段(Update Phase) 负责把这些事实合并进长期记忆库。每收到一对新消息(mt−1,mt)(m_{t-1}, m_t)(mt−1,mt) 时自动触发,通常 mt−1m_{t-1}mt−1 是用户消息,mtm_tmt 是助手回复。 2.1.1 提取阶段 如上图紫色部分,输入提示词 PPP主要包含三个信息源:对话摘要 SSS(由独立...




