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(由独立...
Efficient LVLM Inference blog
本文内容主要参考综述 [1],该综述将 LVLM 的推理流程划分为三个阶段:编码(Encode)、预填充(Prefill) 和 解码(Decode),并围绕这三个阶段梳理了现有的高效推理技术。 1 第一阶段:编码(Encode) 核心目标:在源头减少视觉 Token 的数量,减轻下游负担。 1.1 架构优化 方向 思路 高效视觉编码器 改进 Encoder 架构本身 高效模态适配器 改进适配器架构(如 QFormer 相比 MLP 也是一种改良) 1.2 输入缩减 1.2.1 关键帧选择 主要针对视频,筛选最重要的帧。 1.2.2 自适应分辨率 根据样本的语义难度动态调整分辨率——简单图用低分辨率,复杂图用高分辨率。 1.2.3 编码端 Token 压缩 完全依赖图像固有的空间属性,不依赖文本提示或 LLM 权重 [1:1]。分为两种思路: 无视注意力:利用视觉区块天然的空间冗余,用简单的相似度指标合并或修剪冗余特征。 利用自注意力:直接利用视觉编码器内部的自注意力机制——如果编码器自己对某些特征没分配太多注意力,说明它们不重要,直接扔掉,保留高...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment




