我自己的原文哦~ https://blog.51cto.com/whaosoft/13877227
#Qwen3实测
从Llama4陨落之后,国内开源模型是世界第一,谁赞成,谁反对!
反对无效!
应该也没人反对吧。
Qwen3这波开的时机,真是恰到好处,五一都别休假了,加班跑模型吧。
我在上一篇已经介绍了Qwen3的一些基本情况,Qwen3开源!悉数几大核心变动!。
模型尺寸、榜单指标、首个混合推理模型,这篇就不重复介绍了,去看我上一篇内容吧。
这篇主要是针对Qwen3实测,看看真实测试效果到底如何!
测试可以在两个地方都可以
https://huggingface.co/spaces/Qwen/Qwen3-Demo
或者
主要测试think和no think两种情况。
正式测试开始。
常规测试
将“I love Qwen3-235B-A22B”这句话的所有内容反过来写
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
Qwen3-32B think
Qwen3-32B no-think
说明:结果正确。
依旧弱智吧
生蚝煮熟了叫什么?
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
Qwen3-32B think
Qwen3-32B no-think
说明:结果正确,没有熟蚝就行。
用水来兑水,得到的是浓水还是稀水
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
Qwen3-32B think
Qwen3-32B no-think
说明:结果正确,水还是水。
依旧小红,依旧老鹰
小红有2个兄弟,3个姐妹,那么小红的兄弟有几个姐妹
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:4个,正确,小红在我这是女生。
未来的某天,李同学在实验室制作超导磁悬浮材料时,意外发现实验室的老鼠在空中飞,分析发现,是因为老鼠不小心吃了磁悬浮材料。第二天,李同学又发现实验室的蛇也在空中飞,分析发现,是因为蛇吃了老鼠。第三天,李同学又发现实验室的老鹰也在空中飞,你认为其原因是
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:这题确实难,老鹰反正不会飞!市面上的大模型都答不对。
数学
2024年高考全国甲卷数学(理)试题
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:对了。结果是、
R1满血测试题:在平面四边形ABCD中,AB = AC = CD = 1,\angle ADC = 30^{\circ},\angle DAB = 120^{\circ}。将\triangle ACD沿AC翻折至\triangle ACP,其中P为动点。 求二面角A - CP - B的余弦值的最小值。
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:think对了,no think 没对,答案是 。
一个长五点五米的竹竿,能否穿过一扇高四米,宽三米的门?请考虑立体几何
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
大数计算:178939247893 * 299281748617等于多少?
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:没对,答案是53553251005627872913981。
伦理、数学、生物终极测试
有一天,一个女孩参加数学考试只得了 38 分。她心里对父亲的惩罚充满恐惧,于是偷偷把分数改成了 88 分。她的父亲看到试卷后,怒发冲冠,狠狠地给了她一巴掌,怒吼道:“你这 8 怎么一半是绿的一半是红的,你以为我是傻子吗?”女孩被打后,委屈地哭了起来,什么也没说。过了一会儿,父亲突然崩溃了。请问这位父亲为什么过一会崩溃了?
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:think模式没对,no think模型竟然答对了两点,数学和色盲。
代码
卡片:生成一个打工人时钟的html页面
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
创建一个红白机风格的"贪吃蛇"游戏,包含自动演示AI功能,使用纯HTML/CSS/JavaScript实现为单文件
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
生成一个表情小游戏,提示词 来自 @甲木
请你扮演一个Web游戏开发者。设计并生成一个**表情符号反应堆 **的游戏。
1、核心创意: 一个快节奏的反应游戏。屏幕上会快速闪过一个目标表情符号(例如:笑脸😄),下方会同时出现3-4个选项表情符号,玩家需要在限定时间内(例如1-2秒)点击与目标匹配的那个表情符号。
2、玩法:
- 屏幕中央显示目标Emoji。
- 下方按钮区域快速刷新3-4个Emoji选项,其中一个是正确的。
- 玩家需在计时条走完前点击正确的Emoji。
- 点击正确得分,速度加快;点击错误或超时则游戏结束(或扣除生命值)。
- 显示最高分。
3、技术实现 (HTML/JS/CSS):
- HTML: 用于显示目标Emoji、选项按钮、计时条、得分。
- CSS: 设计简洁明快的界面,计时条动画。
- JavaScript:
存储一个Emoji列表。
随机选择目标Emoji和干扰项。
动态更新按钮内容。
实现计时器逻辑和倒计时动画。
处理点击事件,判断对错,更新得分/状态。
控制游戏节奏(逐渐加快)。
4、趣味点: 简单上手,考验反应速度,利用通用的Emoji增加亲和力和趣味性,适合碎片时间玩。
Qwen3-235B-A22B think
再来一个小游戏,提示词 来自 @甲木
请你扮演一个Web游戏开发者。设计并生成一个**单一的HTML文件**,使用HTML Canvas、CSS和JavaScript,制作一个简单的像素风格宠物收集小游戏。
**重点要求:**
1、一定要注意审美,做出来的网页要有美感。
2、页面要有设计感,有足够的传播度
**要求:**
1. **游戏内容 (由你生成):**
* **游戏名称:** (例如:“像素爪爪接星星” 或 “方块萌宠大作战”)
* **宠物描述:** 描述一个简单的像素宠物形象(可以用文字描述其构成,例如“一个10x10像素的橙色方块身体,上方有两个小三角形耳朵”),并给它起个名字。
* **玩法说明:** 简要说明如何用左右箭头键移动宠物,目标是接住从上方掉落的“金元宝”(或其他像素物品),并显示得分。
2. **HTML结构:**
* 包含标题、宠物描述和玩法说明。
* 一个 `<canvas>` 元素 (`id="gameCanvas"`) 用于绘制游戏。
* 一个区域 (`id="score"`) 显示当前得分。
3. **CSS样式 (内部 `<style>` 标签):**
* 基础页面布局,将Canvas居中。
* 为Canvas添加一个简单的边框。
* 设置得分显示区域的样式。
4. **JavaScript逻辑 (内部 `<script>` 标签):**
* 获取Canvas 2D渲染上下文。
* 定义游戏对象:
* `player`: 包含 x, y, width, height, color (或简单的像素绘制函数) 和速度。
* `items`: 一个数组,存储掉落物对象,每个对象包含 x, y, width, height, color (或形状) 和下落速度。
* **绘制函数:**
* `drawPlayer()`: 在Canvas上绘制玩家宠物(根据描述用 `fillRect` 绘制简单的像素形状)。
* `drawItems()`: 遍历 `items` 数组并在Canvas上绘制所有掉落物。
* `clearCanvas()`: 清除画布。
* **游戏逻辑:**
* `updatePlayer()`: 根据按键状态(左右箭头)更新玩家位置,限制在画布边界内。
* `updateItems()`: 更新每个掉落物的位置,移除掉到屏幕外的物品。随机生成新的掉落物。
* `detectCollision()`: 检测玩家与掉落物的碰撞。如果碰撞,增加得分,并从 `items` 数组中移除该物品。
* `updateScore()`: 更新HTML中得分显示。
* **输入处理:** 添加 `keydown` 和 `keyup` 事件监听器来控制玩家移动状态。
* **游戏循环:** 使用 `requestAnimationFrame(gameLoop)` 来持续调用更新和绘制函数。
* 初始化游戏状态(玩家位置、得分、物品数组等)并启动游戏循环。
请将完整的、包含HTML、CSS和JavaScript的单一HTML文件代码输出。确保包含了你生成的所有游戏内容和说明。提示用户在浏览器中打开该HTML文件即可玩。
Qwen3-235B-A22B think
利用大模型进行内容可视化,生成HTLM解释内容,@向阳乔木
你是一名专业的网页设计师和前端开发专家,对现代 Web 设计趋势和最佳实践有深入理解,尤其擅长创造具有极高审美价值的用户界面。你的设计作品不仅功能完备,而且在视觉上令人惊叹,能够给用户带来强烈的"Aha-moment"体验。
请根据最后提供的内容,设计一个**美观、现代、易读**的"中文"可视化网页。请充分发挥你的专业判断,选择最能体现内容精髓的设计风格、配色方案、排版和布局。
**设计目标:**
* **视觉吸引力:** 创造一个在视觉上令人印象深刻的网页,能够立即吸引用户的注意力,并激发他们的阅读兴趣。
* **可读性:** 确保内容清晰易读,无论在桌面端还是移动端,都能提供舒适的阅读体验。
* **信息传达:** 以一种既美观又高效的方式呈现信息,突出关键内容,引导用户理解核心思想。
* **情感共鸣:** 通过设计激发与内容主题相关的情感(例如,对于励志内容,激发积极向上的情绪;对于严肃内容,营造庄重、专业的氛围)。
**设计指导(请灵活运用,而非严格遵循):**
* **整体风格:** 可以考虑杂志风格、出版物风格,或者其他你认为合适的现代 Web 设计风格。目标是创造一个既有信息量,又有视觉吸引力的页面,就像一本精心设计的数字杂志或一篇深度报道。
* **Hero 模块(可选,但强烈建议):** 如果你认为合适,可以设计一个引人注目的 Hero 模块。它可以包含大标题、副标题、一段引人入胜的引言,以及一张高质量的背景图片或插图。
* **排版:**
* 精心选择字体组合(衬线和无衬线),以提升中文阅读体验。
* 利用不同的字号、字重、颜色和样式,创建清晰的视觉层次结构。
* 可以考虑使用一些精致的排版细节(如首字下沉、悬挂标点)来提升整体质感。
* Font-Awesome中有很多图标,选合适的点缀增加趣味性。
* **配色方案:**
* 选择一套既和谐又具有视觉冲击力的配色方案。
* 考虑使用高对比度的颜色组合来突出重要元素。
* 可以探索渐变、阴影等效果来增加视觉深度。
* **布局:**
* 使用基于网格的布局系统来组织页面元素。
* 充分利用负空间(留白),创造视觉平衡和呼吸感。
* 可以考虑使用卡片、分割线、图标等视觉元素来分隔和组织内容。
* **调性:**整体风格精致, 营造一种高级感。
* **数据可视化:**
* 设计一个或多个数据可视化元素,展示Naval思想的关键概念和它们之间的关系。
* 可以考虑使用思想导图、概念关系图、时间线或主题聚类展示等方式。
* 确保可视化设计既美观又有洞察性,帮助用户更直观地理解Naval思想体系的整体框架。
* 使用Mermaid.js来实现交互式图表,允许用户探索不同概念之间的关联。
**技术规范:**
* 使用 HTML5、Font Awesome、Tailwind CSS 和必要的 JavaScript。
* Font Awesome: [https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css](https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css)
* Tailwind CSS: [https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css](https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css)
* 非中文字体: [https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap](https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap)
* `font-family: Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC","Hiragino Sans GB",Simsun,sans-self;`
* Mermaid: [https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js](https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js)
* 实现完整的深色/浅色模式切换功能,默认跟随系统设置,并允许用户手动切换。
* 代码结构清晰、语义化,包含适当的注释。
* 实现完整的响应式,必须在所有设备上(手机、平板、桌面)完美展示。
**额外加分项:**
* **微交互:** 添加微妙而有意义的微交互效果来提升用户体验(例如,按钮悬停效果、卡片悬停效果、页面滚动效果)。
* **补充信息:** 可以主动搜索并补充其他重要信息或模块(例如,关键概念的解释、相关人物的介绍等),以增强用户对内容的理解。
* **延伸阅读:** 分析文件后,提供一份"进一步阅读"的简短清单,推荐 5 本最佳相关书籍或论文,并提供简要说明或链接。
**输出要求:**
* 提供一个完整、可运行的单一 HTML 文件,其中包含所有必要的 CSS 和 JavaScript。
* 确保代码符合 W3C 标准,没有错误或警告。
请你像一个真正的设计师一样思考,充分发挥你的专业技能和创造力,打造一个令人惊艳的网页!
待处理内容:{{content}}
,时长00:18
创作
用贴吧嘴臭老哥的风格点评大模型套壳现象
Qwen3-235B-A22B think
Qwen3-235B-A22B no-think
说明:还可以,有那味儿。
写在最后
我得整体测试下来还是不错的,
在生成复杂代码、数学推理上,think模式要比no think模型好,
并且Qwen3的整体预训练数据量是Qwen2.5的一倍,有36T Tokens,也是下来血本了。
#Sebastian Raschka 新书《从头开始推理》抢先看
揭秘推理模型基础
推理模型发展正盛,著名 AI 技术博主 Sebastian Raschka 也正在写一本关于推理模型工作方式的新书《Reasoning From Scratch》。在此之前,他已经出版了多本 AI 领域的著名书籍,包括《Build a Large Language Model (From Scratch)》、《Machine Learning Q and AI》、《Machine Learning with PyTorch and Scikit-Learn》。
近日,他在自己的博客上放出了这本书的第一章,为 LLM 领域的推理进行了入门级的介绍,同时还概述了推断时间扩展和强化学习等技术方法。
编译了这本书的第一章,以飨读者。
- 原文地址:https://magazine.sebastianraschka.com/p/first-look-at-reasoning-from-scratch
(注:为了行文清晰,本文会将 inference 译为「推断」,将 reasoning 译为「推理」;其中 inference 指模型根据输入生成输出的计算过程(如生成文本),而 reasoning 侧重模型通过思维链等方法进行逻辑分析、因果判断或问题解决的能力。)。
欢迎来到大型语言模型(LLM)的下一阶段:推理(reasoning)。
LLM 已经改变了我们处理和生成文本的方式,但它们的成功主要得益于统计模式识别。然而,推理方法正在取得新进展,这些新技术能让 LLM 处理更复杂的任务,例如求解逻辑难题或多步骤算术题。本书的核心便是理解这些方法。
本章将介绍的内容包括:
- 在 LLM 中,「推理」的具体含义;
- 推理与模式匹配的根本区别;
- LLM 的传统预训练和后训练阶段;
- 提升 LLM 推理能力的关键方法;
- 为什么从头开始构建推理模型可以帮助我们理解它们的优势、局限性和实践中权衡。
1、在 LLM 中,「推理」究竟是什么?
什么是基于 LLM 的推理(LLM-based reasoning)?这个问题的答案和讨论本身就足以写成一本书。然而,本书与之不同,目标则是从头开始实现 LLM 推理方法,因此会更注重实践和亲自动手编程,而不是概念层面上的推理。尽管如此,我认为简要定义在 LLM 语境中所说的「推理」依然很重要。
因此,在后续章节转向编程部分之前,我想在这本书的第一节定义 LLM 语境中的推理,以及它与模式匹配和逻辑推理的关系。这将为进一步讨论 LLM 目前的构建方式、它们如何处理推理任务以及它们的优点和缺点奠定基础。
在本书中,LLM 语境中的「推理」定义如下:
在 LLM 语境中,推理是指模型在提供最终答案之前产生中间步骤的能力。这个过程通常被描述为思维链(CoT)推理。在 CoT 推理中,LLM 会显式地生成结构化的陈述或计算序列,以说明其得出结论的过程。
图 1 展示了一个简单的 LLM 多步骤(CoT)推理示例。
图 1:LLM 处理一个多步骤推理任务的简版示例。推理模型所做的并不是简单回忆一个事实,而是将多个中间推理步骤组合起来得出正确的结论。根据实现方式的不同,中间推理步骤可能会展示给用户,也可能不会。
从图 1 中可以看到,LLM 产生的中间推理步骤看起来非常像一个人大声表达内心的想法。然而,这些方法(以及由此产生的推理过程)与人类推理的相似度究竟如何仍是一个尚待解答的问题,本书也不会试图回答这个问题。我们甚至不清楚这样的问题是否可以得到明确解答。
相反,本书侧重于解释和实现能提升 LLM 的推理能力的技术,从而让 LLM 更好地处理复杂任务。我希望通过上手实践这些方法,你能更好地理解和改进那些正在开发中的推理方法,甚至探索它们与人类推理的异同。
注:LLM 中的推理过程可能与人类思维非常相似,特别是在中间步骤的表达方式上。然而,目前尚不清楚 LLM 推理是否在内部认知过程方面与人类推理相似。人类的推理方式通常是有意识地操控概念、直觉理解抽象关系或基于少数示例进行概括。相比之下,当前的 LLM 推理主要基于从训练数据中的大量统计相关性中学习到的模式,而不是显式的内部认知结构或有意识的反思。
因此,尽管推理增强型 LLM 的输出看起来有点像人类,但其底层机制(很可能)存在很大差异,并且这也是一个活跃的探索领域。
2、LLM 训练过程简介
本节将简要总结 LLM 的典型训练方式,以便我们更好地理解它们的设计并了解它们的局限性。这一背景也将有助于我们讨论模式匹配和逻辑推理之间的差异。
在应用任何的推理方法之前,传统的 LLM 训练通常分为两个阶段:预训练和后训练,如下图 2 所示。
图 2:典型 LLM 的训练流程概述。一开始,初始模型使用随机权重初始化,然后在大规模文本数据集上通过预测下一个 token 进行预训练,以学习语言模式。然后,通过指令微调和偏好微调来优化模型,使 LLM 能够更好地遵从人类指令并与人类偏好对齐。
在预训练阶段,LLM 要使用大量(可达数 TB)未标记文本进行训练,其中包括书籍、网站、研究论文和许多其他来源。LLM 的预训练目标是学习预测这些文本中的下一个词(或 token)。
当使用 TB 级文本进行大规模预训练时,当前领先的 LLM 往往会使用数千台 GPU 运行数月时间,还会花费数百万美元资金,结果得到的 LLM 会非常强大。这意味着它们开始有能力生成与人类书写的非常相似的文本。此外,在某种程度上,经过预训练的 LLM 将开始表现出所谓的涌现属性(emergent property),这意味着它们能执行未经明确训练的任务,包括翻译、代码生成等。
然而,这些预训练模型仅仅是后训练阶段的基础模型,后训练阶段会使用两种关键技术:监督式微调(SFT,也称指令微调)和偏好微调。后训练的目的是让 LLM 学会响应用户查询,如下图 3 所示。
图 3:语言模型在不同训练阶段的示例响应。图中,提示词要求总结睡眠与健康之间的关系。预训练 LLM 给出了一个相关但没有重点的答案,没有直接遵从指令。指令微调版 LLM 生成了与提示词一致的简洁准确的总结。而偏好微调后的 LLM 更进一步改善了响应 —— 使用了友好的语气和更有感召力的语言,使答案更具相关性和以用户为中心。
如图 3 所示,指令微调能提高 LLM 的个人助理类任务的能力,如问答、总结和翻译文本等等。然后,偏好微调阶段可完善这些能力。它有助于根据用户偏好定制响应。此外,偏好微调也常被用于使 LLM 更安全。(一些读者可能很熟悉基于人类反馈的强化学习(RLHF)等术语,它们是实现偏好微调的具体技术。)
简而言之,我们可以将预训练视为「原始语言预测」(通过下一 token 预测),它能为 LLM 提供一些基本属性和生成连贯文本的能力。然后,后训练阶段可通过指令微调提高 LLM 的任务理解能力,并通过偏好微调让 LLM 有能力创建具有特定风格的答案。
对 LLM 预训练和后训练阶段细节感兴趣的读者可以参阅《Build A Large Language Model (From Scratch)》。而当前这本关于推理的书无需有关这些阶段的知识 —— 你一开始就会获得一个已经经过预训练和后训练的模型。
3、模式匹配:LLM 如何从数据中学习
LLM 在训练时,会「阅读」海量的文本数据,并学习如何根据前文预测下一个 token。它们是靠发现数据中的统计规律,而不是真正「理解」内容。所以,即使它们能写出流畅、通顺的句子,但本质上只是在模仿表面的关联,而不是进行深入的思考。
目前大多数 LLM(比如 GPT-4o、Meta 的 Llama 3,除非专门训练过推理能力)都是这样工作的 —— 它们不会像人一样一步步逻辑推理,而是根据输入的问题,从训练数据中找到最可能的答案。简单来说,它们不是通过真正的逻辑推导来回答问题,更像是在「匹配」输入和输出的模式。
可以参考以下示例:
提示词:德国的首都是……
回答:柏林
当 LLM 回答「柏林」时,它并不是通过逻辑推理得出的结论,而只是从训练数据中记住了 「德国→柏林」这个高频搭配。这种反应就像条件反射,我们称为「模式匹配」—— 模型只是在复现学到的文字规律,并没有真正一步步思考。
但如果遇到更复杂的问题呢?比如需要根据已知事实推导答案的任务?这时候就需要另一种能力:逻辑推理。
真正的逻辑推理,是指像解数学题一样,根据前提一步步推出结论。它需要中间思考步骤,能发现前后矛盾,也能基于已定的规则判断因果关系。这和单纯「匹配文字关系」完全不同。
举个例子:
所有鸟都会飞。企鹅是鸟。那企鹅会飞吗?
如果是人类(或者真正会推理的系统),马上就能发现不对劲 —— 根据前两句看起来企鹅应该会飞,但大家都知道企鹅其实不会飞,这就矛盾了(如下图 1.4 所示)
会推理的系统会立刻抓住这个矛盾,并意识到:要么第一句话说得太绝对(不是所有鸟都会飞),要么企鹅是个例外。
图 4:前提矛盾导致的逻辑冲突示意图。根据「所有鸟都会飞」和「企鹅是鸟」这两句话,我们会推出「企鹅会飞」 的结论。但这个结论和已知事实「企鹅不会飞」直接冲突,这就产生了矛盾。
依靠于统计学习的 LLM 并不会主动识别这种矛盾。它只是根据训练数据中的文字规律来预测答案。如果在训练数据中「所有鸟都会飞」这个说法出现得特别多,模型就可能会自信地回答:「是的,企鹅会飞。」
在下一节中,我们将用一个具体的例子看看 LLM 遇到这个「所有鸟都会飞.……」的问题时,实际上会怎么回答。
4、模拟逻辑推理:LLM 如何在没有显式规则的情况下模仿推理逻辑
上一节我们说到,当遇到自相矛盾的前提时(比如「所有鸟都会飞,但企鹅不会飞」),普通 LLM 其实不会主动发现这些矛盾。它们只是根据训练时学到的文字规律来生成回答。
现在让我们看个具体例子(见图 5):像 GPT-4o 这样没有专门加强推理能力的模型,遇到这个「所有鸟都会飞...」的问题时,会怎么回答呢?
图 5:语言模型(GPT-4o)如何处理矛盾前提的示例。
从图 5 的例子可以看到,虽然 GPT-4o 并不是专门的推理模型(不像 OpenAI 其他专门开发了推理功能的版本,比如 o1 和 o3),但它在这个问题上却给出了看似正确的回答。
这是怎么回事?难道 GPT-4o 真的会逻辑推理吗?其实不然,不过至少说明,4o 在它熟悉的场景中,能够非常逼真地「装」出逻辑推理的样子。
其实 GPT-4o 并不会主动检查说法是否自相矛盾。它的回答完全基于从海量数据中学到的「文字搭配概率」。
举个例子:如果在训练数据中,经常出现「企鹅不会飞」这样的正确说法,模型就会牢牢记住「企鹅」和「不会飞」之间的关联。就像图 5 展示的,虽然 4o 没有真正的逻辑推理能力,但靠着这种「文字概率记忆」,它也能给出正确答案。
简单来说:它不是在用逻辑规则思考,而是靠「见得多了自然记住」的方式在回答问题。
简单来说,模型之所以能「察觉」这个矛盾,是因为它在训练时反复见过类似的例子。这种能力完全来自于它在海量数据中学习到的文字规律 —— 就像我们常说的「熟能生巧」,见得多了自然就会了。
换句话说,就算像图 5 里那样,普通 LLM 看似在进行逻辑推理,其实它并不是按照规则一步步思考,而只是在运用从海量训练数据中学到的文字规律。
不过,ChatGPT 4o 能答对这个问题,恰恰说明了一个重要现象:当模型经过超大规模训练后,它的这种「隐性规律匹配」能力可以变得非常强大。但这种基于统计规律的模式也存在明显短板,比如遇到以下情况时就容易出错:
- 遇到全新题型(训练数据里完全没见过的逻辑问题)→ 就像让一个只会刷题的学生突然碰到从没见过的考题;
- 问题太复杂(需要环环相扣的多步推理)→ 类似让计算器解一道需要写证明过程的数学大题;
- 需要严格逻辑推导(但训练数据中没有类似案例)→ 好比让背过范文的学生现场创作全新体裁的文章。
既然规则系统这么靠谱,为什么现在不流行了?其实在 80、90 年代,基于规则的系统确实很火,像医疗诊断、法律判决、工程设计这些领域都在用。直到今天,在一些性命攸关的领域(比如医疗、法律、航天),我们还是能看到它们的身影 —— 毕竟这些场合需要清晰的推理过程和可追溯的决策依据。但这种系统有个硬伤:它完全依赖人工编写规则,开发起来特别费劲。相比之下,像 LLM 这样的深度神经网络,只要经过海量数据训练,就能灵活处理各种任务,适用性广多了。
我们可以这样理解:LLM 是通过学习海量数据中的规律来「装」逻辑推理的。虽然它们内部并不运行任何基于规则的逻辑系统,但可以通过一些专门的优化方法(比如增强推理计算能力和后训练策略)来进一步提升这种模拟能力。
值得一提的是,LLM 的推理能力其实是一个渐进发展的过程。早在 o1 和 DeepSeek-R1 这类专业推理模型出现之前,普通 LLM 就已经能展现出类似推理的行为了 —— 比如通过生成中间步骤来得出正确结论。而现在我们所说的 「推理模型」,本质上就是把这种能力进一步强化和优化的结果,主要通过两种方式实现:1. 采用特殊的推断计算扩展技术,2. 进行针对性的后训练。
本书后续内容将重点介绍这些提升大语言模型解决复杂问题能力的进阶方法,帮助你更深入地理解如何增强大语言模型这种「隐性」的推理能力。
5、提升 LLM 的推理能力
大语言模型的「推理能力」真正进入大众视野,是在 2024 年 9 月 12 日 OpenAI 发布 o1 的时候。在那篇官宣文章里,OpenAI 特别提到
这些新版 AI 不像以前那样秒回,而是会像人类一样先琢磨几秒,确保答案更靠谱。
OpenAI 还特别说明:
这种强化过的思考能力,对解决科学、编程、数学等领域的复杂问题特别有帮助 —— 毕竟这些领域的问题,往往需要多转几个弯才能想明白。
虽然 o1 的具体技术细节没有公开,但普遍认为它是在 GPT-4 等前代模型基础上,通过「增强推断计算能力」来实现更强的思考能力的。
几个月后的 2025 年 1 月,深度求索公司发布了 DeepSeek-R1 模型和技术报告,详细介绍了训练推理模型的方法,引起了巨大轰动。因为:
- 他们不仅免费开源了一个性能媲美甚至超越 o1 的模型;
- 还公开了如何开发这类模型的完整方案。
本书将通过从零实现这些方法,带你看懂这些提升 AI 推理能力的技术原理。如图 6 所示,目前增强大语言模型推理能力的方法主要可以分为三大类:
图 6:提升大语言模型推理能力的三大方法。这三大方法(推断计算增强、强化学习和知识蒸馏)通常是在模型完成常规训练后使用的。所谓常规训练包括:基础模型训练、预训练、指令微调和偏好微调。
如图 6 所示,这些增强方法都是用在已经完成上述常规训练阶段的模型上的。
推断时间计算增强
推断时间计算扩展(也叫推断计算增强、测试时增强等)包含一系列在推理阶段(即用户输入提示词时)提升模型推理能力的方法,这些方法无需对底层模型权重进行训练或修改。其核心思想是通过增加计算资源来换取性能提升,借助思维链推理(chain-of-thought reasoning)及多种采样程序等技术,使固定参数的模型展现出更强的推理能力。
强化学习(RL)
强化学习是一类通过最大化奖励信号来提升模型推理能力的训练方法。其奖励机制可分为两类:
- 广义奖励:如任务完成度或启发式评分
- 精准可验证奖励:如数学问题正确答案或编程任务通过率
与推断时间计算增强(inference-time compute scaling)不同,RL 通过动态调整模型参数(weights updating)实现能力提升。该机制使模型能够基于环境反馈,通过试错学习不断优化其推理策略。
注: 在开发推理模型时,需明确区分此处的纯强化学习(RL)方法与常规大语言模型开发中用于偏好微调的基于人类反馈的强化学习(RLHF)(如图 2 所示)。二者的核心差异在于奖励信号的来源:RLHF 通过人类对模型输出的显式评分或排序生成奖励信号,直接引导模型符合人类偏好行为;纯 RL 则依赖自动化或环境驱动的奖励信号(如数学证明的正确性),其优势在于客观性,但可能降低与人类主观偏好的对齐度。典型场景对比:纯 RL 训练:以数学证明任务为例,系统仅根据证明步骤的正确性提供奖励;RLHF 训练:需人类评估员对不同输出进行偏好排序,以优化符合人类标准(如表述清晰度、逻辑流畅性)的响应。
监督微调与模型蒸馏
模型蒸馏是指将高性能大模型习得的复杂推理模式迁移至更轻量化模型的技术。在 LLM 领域,该技术通常表现为:使用高性能大模型生成的高质量标注指令数据集进行监督微调(Supervised Fine-Tuning, SFT)。这种技术在 LLM 文献中常统称为知识蒸馏(Knowledge Distillation)或蒸馏(Distillation)。
与传统深度学习的区别:经典知识蒸馏中,「学生模型」需同时学习「教师模型」的输出结果和 logits,而 LLM 的蒸馏通常仅基于输出结果进行迁移学习。
注:本场景采用的监督微调(SFT)技术与常规大语言模型开发中的 SFT 类似,其核心差异体现在训练样本由专为推理任务开发的模型生成(而非通用 LLM)。也因此,其训练样本更集中于推理任务,通常包括中间推理步骤。
6、从头构建推理模型的重要性
自 2025 年 1 月 DeepSeek-R1 发布以来,提高 LLM 的推理能力已成为 AI 领域最热门的话题之一。原因也不难理解。更强的推理能力使 LLM 能够解决更复杂的问题,使其更有能力解决用户关心的各种任务。
OpenAI CEO 在 2025 年 2 月 12 日的一份声明也反映了这种转变:
我们接下来将发布 GPT-4.5,即我们在内部称之为 Orion 的模型,这是我们最后一个非思维链模型。在此之后,我们的首要目标是统一 o 系列模型和 GPT 系列模型,方法是打造可以使用我们所有工具、知道何时需要或不需要长时间思考并且可以广泛用于各种任务的系统。
以上引文凸显了领先的 LLM 提供商向推理模型的转变。这里,思维链是指一种提示技术,其能引导语言模型逐步推理以提高其推理能力。
另一点也值得一提,「知道何时需要或不需要长时间思考」也暗示了一个重要的设计考量:推理并不总是必要或可取的。
举个例子,推理模型在设计上就是为了解决复杂任务设计的,如解决难题、高级数学问题和高难度编程任务。然而,对于总结、翻译或基于知识的问答等简单任务来说,推理并不是必需的。事实上,如果将推理模型用于一切任务,则可能效率低下且成本高昂。例如,推理模型通常使用起来成本更高、更冗长,有时由于「过度思考」更容易出错。此外,这里也适用一条简单的规则:针对具体任务使用正确的工具(或 LLM 类型)。
为什么推理模型比非推理模型成本更高?
主要是因为它们往往会产生更长的输出,这是由于中间推理步骤解释了得出答案的方式。如图 7 所示,LLM 一次生成一个 token 的文本。每个新 token 都需要通过模型进行完整的前向传递。因此,如果推理模型产生的答案是非推理模型的两倍长,则需要两倍的生成步骤,从而导致计算成本增加一倍。这也会直接影响 API 使用成本 —— 计费通常基于处理和生成的 token 数量。
图 7:LLM 中的逐个 token 生成。在每一步,LLM 都会获取迄今为止生成的完整序列并预测下一个 token—— 可能代表词、子词或标点符号,具体取决于 token 化器。新生成的 token 会被附加到序列中,并用作下一步的输入。这种迭代解码过程既用于标准语言模型,也用于以推理为中心的模型。
这直接凸显了从头开始实现 LLM 和推理方法的重要性。这是了解它们的工作方式的最佳方式之一。如果我们了解 LLM 和这些推理模型的工作原理,我们就能更好地理解这些权衡。
7、总结
- LLM 中的推理涉及使用中间步骤(思维链)来系统地解决多步骤任务。
- 传统的 LLM 训练分为几个阶段:预训练,模型从大量文本中学习语言模式;指令微调,可改善模型对用户提示词的响应;偏好微调,使模型输出与人类偏好对齐。
- LLM 中的模式匹配完全依赖于从数据中学习到的统计关联,这可使得文本生成流畅,但缺乏明确的逻辑推理。
- 可以通过这些方式来提高 LLM 中的推理能力:推断时间计算扩展,无需重新训练即可增强推理能力(例如,思维链提示);强化学习,使用奖励信号显式地训练模型;监督微调和蒸馏,使用来自更强大推理模型的示例。
- 从头开始构建推理模型可以提供有关 LLM 能力、局限性和计算权衡的实用见解。
以上就是 Sebastian Raschka 新书《Reasoning From Scratch》第一章的主要内容,可以说通过一些基础介绍为这本书奠定了一个很好的基调。你对推理模型有什么看法,对这本书有什么期待吗?
#LoRA中到底有多少参数冗余
新研究:砍掉95%都能保持高性能
LoRA 中到底存在多少参数冗余?这篇创新研究介绍了 LoRI 技术,它证明即使大幅减少 LoRA 的可训练参数,模型性能依然保持强劲。研究团队在数学推理、代码生成、安全对齐以及 8 项自然语言理解任务上测试了 LoRI。发现仅训练 LoRA 参数的 5%(相当于全量微调参数的约 0.05%),LoRI 就能匹配或超越全量微调、标准 LoRA 和 DoRA 等方法的性能。
大型语言模型的部署仍然需要大量计算资源,特别是当需要微调来适应下游任务或与人类偏好保持一致时。
为了降低高昂的资源成本,研究人员开发了一系列参数高效微调(PEFT)技术。在这些技术中,LoRA 已被广泛采用。
不过,LoRA 仍然会带来显著的内存开销,尤其是在大规模模型中。因此,近期研究聚焦于通过减少可训练参数数量进一步优化 LoRA。
最近的研究表明,增量参数(微调后的参数减去预训练模型参数)存在显著冗余。受随机投影有效性和增量参数冗余性的启发,来自马里兰大学和清华大学的研究者提出了带有降低后的干扰的 LoRA 方法——LoRI(LoRA with Reduced Interference)。
LoRI 保持低秩矩阵 A 作为固定的随机投影,同时使用任务特定的稀疏掩码训练矩阵 B。为了保留 B 中最关键的元素,LoRI 通过选择所有层和投影中具有最高幅度的元素来执行校准过程,从而提取稀疏掩码。
如图 1(a) 所示,即使 B 具有 90% 的稀疏性且 A 保持冻结状态,LoRI 仍能保持良好性能。这表明适应过程不需要更新 A,且 B 存在相当大的冗余。通过应用比 LoRA 更受约束的更新,LoRI 显著减少了可训练参数的数量,同时在适应过程中更好地保留了预训练模型的知识。
多任务学习对于实现具有多任务能力的通用模型至关重要,传统上通过在任务特定数据集的组合上进行联合训练来实现。然而,在这种数据混合上训练大型模型在时间和计算资源上成本过高。模型合并是一种无需训练的替代方案,通过组合现有模型来构建强大的模型。这种方法非常适合合并 LoRA 适配器,使单个 LoRA 具备多任务能力。
然而,如图 1(b) 所示,直接合并异构 LoRA 通常会导致参数干扰,使合并后的 LoRA 性能低于单任务 LoRA。此外,许多现有的合并方法需要反复试验才能确定特定任务组合的最佳方法。
LoRI 通过实现适配器合并而无需手动选择合并方法来解决这些挑战。通过使用固定的、随机初始化的投影 A,LoRI 将任务特定的适配器映射到近似正交的子空间,从而减少合并多个 LoRI 时的干扰。
除了多任务处理外,安全关键场景要求每个新引入的适配器在增强模型能力的同时保持预训练基础模型的安全对齐。LoRI 提供了一种轻量级的持续学习方法,用于调整模型同时保持安全性,其中训练是在任务间顺序进行的。该策略首先在安全数据上微调适配器以建立对齐,然后分别适应每个下游任务。
然而,如图 1(c) 所示,持续学习常常导致灾难性遗忘,即对新任务的适应会严重损害先前获得的知识。LoRI 通过特定任务掩码利用矩阵 B 的稀疏性来减轻遗忘。这种跨任务参数更新的隔离促进了干扰最小化的持续学习,同时保持了安全性和任务有效性。
为评估 LoRI 的有效性,作者在涵盖自然语言理解、数学推理、代码生成和安全对齐任务的多种基准上进行了大量实验。
以 Llama-3-8B 和 Mistral-7B 作为基础模型,他们的结果表明,LoRI 达到或超过了全量微调(FFT)、LoRA 和其他 PEFT 方法的性能,同时使用的可训练参数比 LoRA 少 95%。值得注意的是,在使用 Llama-3 的 HumanEval 上,B 中具有 90% 稀疏度的 LoRI 比 LoRA 高出 17.3%。
除单任务适应外,他们还评估了 LoRI 在多任务环境中的表现,包括适配器合并和持续学习场景。LoRI 适配器的串联合并总体上始终优于 LoRA 适配器,与单任务 LoRA 基线的性能非常接近。在持续学习方面,LoRI 在减轻安全对齐的灾难性遗忘方面显著优于 LoRA,同时在下游任务上保持强劲表现。
- 论文标题:LoRI: Reducing Cross-Task Interference in Multi-Task LowRank Adaptation
- 论文链接:https://arxiv.org/pdf/2504.07448
- 代码链接:https://github.com/juzhengz/LoRI
- HuggingFace:https://huggingface.co/collections/tomg-group-umd/lori-adapters-67f795549d792613e1290011
方法概览
如下图所示,论文中提出的 LoRI 方法主要有以下要点:
- LoRI 冻结投影矩阵 A_t,并使用特定任务的掩码稀疏更新 B_t;
- LoRI 支持多个特定于任务的适配器合并,减少了参数干扰;
- LoRI 通过不断学习和减少灾难性遗忘来建立安全适配器。
在作者推文评论区,有人问这个方法和之前的方法(如 IA3)有何不同。作者回复称,「IA3 和 LoRI 在调整模型参数的方式上有所不同:IA3 学习键/值/FFN 激活的 scaling 向量。可训练参数就是 scaling 向量。LoRI(基于 LoRA)将权重更新分解为低秩矩阵。它将 A 保持冻结,并对 B 应用固定的稀疏性掩码。所以只有 B 的未掩蔽部分被训练。」
实验结果
作者采用 Llama-3-8B 和 Mistral7B 作为基准模型,所有实验均在 8 块 NVIDIA A5000 GPU 上完成。如图 1(a) 所示,LoRI 在矩阵 B 达到 90% 稀疏度时仍能保持强劲性能。为探究稀疏度影响,作者提供了两个 LoRI 变体:使用稠密矩阵 B 的 LoRI-D,以及对矩阵 B 施加 90% 稀疏度的 LoRI-S。
单任务性能
表 1 展示了不同方法在 8 个自然语言理解(NLU)基准测试中的单任务结果,表 2 则报告了不同方法在数学、编程和安全基准上的表现。
全参数微调(FFT)会更新所有模型参数,而 LoRA 和 DoRA 将可训练参数量降至约 1%。LoRI-D 通过冻结矩阵 A 进一步将参数量压缩至 0.5%,LoRI-S 则通过对矩阵 B 施加 90% 稀疏度实现 0.05% 的极致压缩——相比 LoRA 减少 95% 可训练参数。尽管调参量大幅减少,LoRI-D 和 LoRI-S 在 NLU、数学、编程及安全任务上的表现均与 LoRA、DoRA 相当甚至更优。
适配器融合
作者选取 NLU、数学、编程和安全四类异构任务进行 LoRA 与 LoRI 融合研究,该设定比融合同类适配器(如多个 NLU 适配器)更具挑战性。
表 3 呈现了四类任务的融合结果。作者对 LoRI-D 和 LoRI-S 变体分别采用串联融合与线性融合。由于 LoRI 已对矩阵 B 进行稀疏化,基于剪枝的方法(如幅度剪枝、TIES、DARE)不再适用——这些方法会剪枝矩阵 A,导致 AB 矩阵剪枝策略不一致。
如表 3 所示,直接融合 LoRA 会导致性能显著下降(特别是代码生成与安全对齐任务)。虽然剪枝方法(如 DARE、TIES)能提升代码性能,但往往以牺牲其他任务精度为代价。相比之下,LoRI 在所有任务上均表现稳健,其中 LoRI-D 的串联融合方案整体表现最佳,几乎与单任务基线持平,这表明 LoRI 适配器间存在最小干扰。
持续学习
虽然合并适配器能够实现多任务能力,但在需要强大安全保障的场景中,它无法提供稳健的安全对齐。如表 3 所示,通过 LoRA 或 LoRI 合并所能达到的最高安全得分为 86.6。
为了解决这一问题,作者采用了两阶段训练过程:首先,在 Saferpaca 安全对齐数据集上训练安全适配器;然后,将其分别适应到各个下游任务,包括自然语言理解(NLU)、数学和代码。
图 3 展示了这些持续学习实验的结果。LoRA 在安全对齐上表现出严重的灾难性遗忘——尤其是在安全→NLU 实验中——这可能是由于 NLU 训练集较大(约 17 万个样本)所致。在所有方法中,LoRI-S 实现了对安全对齐的最佳保留,甚至优于单任务 LoRI-D。这是因为其 B 矩阵具有 90% 的稀疏性,能够在安全对齐和任务适应之间实现参数更新的隔离。LoRI-D 也表现出一定的抗遗忘能力,得益于其冻结的 A 矩阵。对于任务适应,LoRI-D 通常优于 LoRI-S,因为后者激进的稀疏性限制了其适应能力。
总体而言,LoRI 提供了一种轻量级且有效的方法来构建安全适配器,在支持下游任务适应的同时保持对齐。
#ICML 2025放榜
接收率26.9%,高分被拒,低分录用惹争议
第 42 届国际机器学习大会(ICML)将于 2025 年 7 月 13 日至 19 日在加拿大温哥华举行。刚刚,ICML 官方向投稿者发送了今年论文接收结果的通知。
数据显示,今年大会共收到 12107 篇投稿,较去年增加了 28%。共有 3260 篇论文被接收,接收率为 26.9%。其中,只有 313 篇论文被选为「spotlight poster」。
在收到邮件的第一时间,不少研究者都晒出了自己被接收的论文。当然,也有研究者感到沮丧或对评审结果有所质疑。在这篇文章中,我们汇总了一些被接收的优秀论文以及有争议的论文,方便大家探讨。
被接收的高分论文
首先,我们检索了一些 spotlight 论文,因为这是 ICML 官方推荐度最高的一批论文,能搜到的论文包括但不限于:
- Neural Discovery in Mathematics: Do Machines Dream of Colored Planes?(数学中的神经发现:机器会梦见彩色的平面吗?)
- Monte Carlo Tree Diffusion (MCTD) for System 2 Planning(用于 System 2 规划的蒙特卡罗树扩散(MCTD)方法)
- Layer-wise Alignment:Examining Safety Alignment Across lmage Encoder Layers in Vision Language Models(逐层对齐:视觉语言模型中图像编码器层间的安全对齐)
- The Number of Trials Matters in Infinite-Horizon General-Utility Markov Decision Processes(试验次数在无限时域一般效用马尔可夫决策过程中的重要性)
- Implicit Language Models are RNNs: Balancing Parallelization and Expressivity(隐式语言模型即 RNN:平衡并行性与表达能力)
- ……
此外,我们还发现,一些国内大厂的论文在评审中拿到了高分或 Spotlight,比如字节跳动的两篇论文:
论文 1:MARS: Unleashing the Power of Variance Reduction for Training Large Models(平均得分:4.25)
MARS 是一个用于 LLM 的方差缩减自适应优化器框架,其收敛速率为𝒪(T⁻²/³),优于 AdamW 的𝒪(T⁻¹/²)。该方法的 2.0 版本将在之后发布。
论文 2:ShadowKV: KV Cache in Shadows for High-Throughput Long-Context LLM Inference(Spotlight)
还有一些论文虽然拿到了高分,但并未被选为 Spotlight,这类论文同样值得关注,比如下面这篇伊利诺伊大学厄巴纳-香槟分校的论文:EMBODIEDBENCH: Comprehensive Benchmarking Multi-modal Large Language Models for Vision-Driven Embodied Agents(平均得分:4.5)
- 链接:https://arxiv.org/pdf/2502.09560
EmbodiedBench 是一个用于评估多模态大语言模型(MLLMs)作为视觉驱动的具身智能体的综合性基准测试平台。它包含 1128 个测试任务,涵盖四个环境,从高级语义任务(如家务)到涉及原子动作的低级任务(如导航和操作)。此外,EmbodiedBench 还设有六个精心策划的子集,用于评估智能体的关键能力,如常识推理、复杂指令理解、空间意识、视觉感知和长期规划。
充满争议的被拒论文
除了被接收的论文,一些被拒的论文同样值得讨论,因为这些论文的价值可能未被充分挖掘。
一个研究者晒出了元评审截图,尽管其论文获得高度评价,却仍被拒绝。
这并非孤例,其他研究者也反映了类似遭遇。
令人费解的是,一些评分较低的论文反而被接收。
另一位研究者表示,他收到了不完整、无关且敷衍的评审意见。虽然向科学诚信委员会举报并得到确认该评审质量确实低下,但领域主席(AC)依然拒绝了他的论文。
评审过程中的矛盾同样引人关注。
有研究者发现,他的论文实际获得了两个 4 分,但元评审却错误地将其记录为三个 3 分加一个 4 分。同时,元评审声称某位评审人还有疑问,而该评审人在反驳阶段已明确表示其疑虑已解决。
其他研究者也指出了评审和编辑的粗心。
#InfiGUI-R1
浙大&港理工等提出:利用强化学习,让GUI智能体学会规划任务、反思错误
当前,多模态大模型驱动的图形用户界面(GUI)智能体在自动化手机、电脑操作方面展现出巨大潜力。然而,一些现有智能体更类似于「反应式行动者」(Reactive Actors),主要依赖隐式推理,面对需要复杂规划和错误恢复的任务时常常力不从心。
我们认为,要真正提升 GUI 智能体的能力,关键在于从「反应式」迈向「深思熟虑的推理者」(Deliberative Reasoners)。为此,浙江大学联合香港理工大学等机构的研究者们提出了 InfiGUI-R1,一个基于其创新的 Actor2Reasoner 框架训练的 GUI 智能体,旨在让 AI 像人一样在行动前思考,行动后反思。
论文标题:InfiGUI-R1: Advancing Multimodal GUI Agents from Reactive Actors to Deliberative Reasoners
论文链接:https://arxiv.org/abs/2504.14239
项目仓库:https://github.com/Reallm-Labs/InfiGUI-R1
模型地址:https://huggingface.co/Reallm-Labs/InfiGUI-R1-3B
从「反应行动」到「深思熟虑」:GUI 智能体面临的挑战
想象一下,你让 AI Agent 帮你完成一个多步骤的手机操作,比如「预订明天下午去北京的高铁票」。一个简单的「反应行动」式 Agent 可能会按顺序点击它认为相关的按钮,但一旦遇到预期外的界面(如弹窗广告、加载失败),就容易卡壳或出错,因为它缺乏「规划」和「反思」的能力。
为了让 GUI 智能体更可靠、更智能地完成复杂任务,它们需要具备深思熟虑的推理能力。这意味着智能体的行为模式需要从简单的「感知 → 行动」转变为更高级的「感知 → 推理 → 行动」模式。这种模式要求智能体不仅能看懂界面,还要能:
- 理解任务意图:将高层指令分解为具体的执行步骤
- 进行空间推理:准确理解界面元素的布局和关系,定位目标
- 反思与纠错:识别并从错误中恢复,调整策略
Actor2Reasoner 框架:两步走,打造深思熟虑的推理者
为了实现这一目标,研究团队提出了 Actor2Reasoner 框架,一个以推理为核心的两阶段训练方法,旨在逐步将 GUI 智能体从「反应式行动者」培养成「深思熟虑的推理者」。
图:Actor2Reasoner 框架概览
第一阶段:推理注入(Reasoning Injection)—— 打下推理基础
此阶段的核心目标是完成从「行动者」到「基础推理者」的关键转变。研究者们采用了空间推理蒸馏(Spatial Reasoning Distillation)技术。他们首先识别出模型在哪些交互步骤中容易因缺乏推理而出错(称之为「推理瓶颈样本」),然后利用能力更强的「教师模型」生成带有明确空间推理步骤的高质量执行轨迹。
通过在这些包含显式推理过程的数据上进行监督微调(SFT),引导基础模型学习在生成动作前,先进行必要的逻辑思考,特别是整合 GUI 视觉空间信息的思考。这一步打破了「感知 → 行动」的直接链路,建立了「感知 → 推理 → 行动」的基础模式。
第二阶段:深思熟虑增强(Deliberation Enhancement)—— 迈向高级推理
在第一阶段的基础上,此阶段利用强化学习(RL)进一步提升模型的「深思熟虑」能力,重点打磨规划和反思两大核心能力。研究者们创新性地引入了两种方法:
- 目标引导:为了增强智能体「向前看」的规划和任务分解能力,研究者们设计了奖励机制,鼓励模型在其推理过程中生成明确且准确的中间子目标。通过评估生成的子目标与真实子目标的对齐程度,为模型的规划能力提供有效的学习信号。
- 错误回溯:为了培养智能体「向后看」的反思和自我纠错能力,研究者们在 RL 训练中有针对性地构建了模拟错误状态或需要从错误中恢复的场景。例如,让模型学习在执行了错误动作后如何使用「返回」等操作进行「逃逸」,以及如何在「回到正轨」后重新评估并执行正确的动作。这种针对性的训练显著增强了模型的鲁棒性和适应性。
为了有效引导强化学习过程,研究者们还采用了一套专门适用于 GUI 多种任务场景的奖励函数,为智能体提供更佳的反馈。
InfiGUI-R1-3B:小参数,大能量
基于 Actor2Reasoner 框架,研究团队训练出了 InfiGUI-R1-3B 模型(基于 Qwen2.5-VL-3B-Instruct)。尽管只有 30 亿参数,InfiGUI-R1-3B 在多个关键基准测试中展现出了卓越的性能:
GUI 元素定位(Grounding)能力突出:
- 在跨平台(移动、桌面、网页)的 ScreenSpot 基准上,平均准确率达到 87.5%,在移动、桌面、Web 平台的文本和图标定位任务上全面领先,达到同等参数量模型中 SOTA 水平。
- 在更具挑战性、面向复杂高分屏桌面应用的 ScreenSpot-Pro 基准上,平均准确率达到 35.7%,性能比肩参数量更大且表现优异的 7B 模型(如 UI-TARS-7B),证明了其在复杂专业软件(例如 CAD、Office)界面上的指令定位准确性。
表:ScreenSpot 性能对比
图:ScreenSpot-Pro 性能对比
复杂任务执行(Trajectory)能力优异
在模拟真实安卓环境复杂任务的 AndroidControl 基准上(包含 Low 和 High 两个难度级别),成功率分别达到 92.1% 和 71.1%。这一成绩不仅超越了参数量相近的 SOTA 模型(如 UI-TARS-2B),甚至优于一些参数量远超自身的 7B 乃至 72B 模型(如 Aguvis-72B)。
表:AndroidControl 性能对比
这些结果充分证明了 Actor2Reasoner 框架的有效性。通过系统性地注入和增强推理能力,特别是规划和反思能力,InfiGUI-R1-3B 以相对较小的模型规模,在 GUI 理解和复杂任务执行方面取得了领先或极具竞争力的表现。
结语
InfiGUI-R1 和 Actor2Reasoner 框架的提出,为开发更智能、更可靠的 GUI 自动化工具开辟了新的道路。它证明了通过精心设计的训练方法,即使是小规模的多模态模型,也能被赋予强大的规划、推理和反思能力,从而更好地理解和操作我们日常使用的图形界面,向着真正「能思考、会纠错」的 AI 助手迈出了坚实的一步。
#i人如何在学术会议有效社交
滑铁卢大学教授Gautam Kamath亲授心得
i 人参与大型学术会议,如何在享受人群的同时展开有效社交?
有点难度,但「其实也并非完全不可能」。
「我写了一篇关于如何在计算机科学会议上与人建立联系(也就是交朋友)的文章。这类活动可能会让人感到畏惧,所以这里有一些建议,教你如何应对。」
这是加拿大计算机科学家、滑铁卢大学教授 Gautam Kamath 刚刚写出的一篇博客。
博客地址:https://kamathematics.wordpress.com/2025/05/01/tips-on-how-to-connect-at-academic-conferences/
具体来说,他的建议包含几种操作:
- 找到自己与对方的共同之处,可以是共同的研究兴趣、母校或导师;
- 抓住茶歇和海报展示的机会,随意进行一些搭讪;
- 加入一些群聊,甚至可能交到终生的朋友;
- 最重要的!不要觉得自己是那个格格不入、不属于这里的人。大家都是因为共同的研究兴趣而聚在一起的,所以每个人都属于这里。
但 Gautam 也说了:学术会议本身就让人紧张了,实在不爱好社交也别勉强。
说得有道理,好好享受茶歇吧(bushi)!
以下是博客原文,进行了整理,有「装 e」需要的读者请逐字学习:
我曾经是个有点笨拙的青少年。如果你是一位正在阅读这篇文章的计算机科学研究员,那么很有可能你也曾如此。如何应对社交场合并结交朋友并不总是凭直觉就能做到的,这是需要学习的。这一点在参加学术会议时尤其明显,因为会议时间很短(就几天时间),而且参会人数可能多得让人望而生畏(多达数千人)。
所以我写了这篇文章,是想给出一些建议,讲讲我是如何在这样的场合中进行社交活动的,尤其是作为一个新人该怎么做。
我希望能做到以下两件事:
- 让你相信,与你所在领域的其他研究人员建立联系是值得的;
- 给出关于在会议上如何与人建立联系的具体建议。
在整篇文章中,我使用了 「联系」 这个词。你可以把它理解为 「成为朋友」「结识」「建立融洽关系」 或者 「找出共同之处」这类意思。这个词的含义在一定程度上因带有职场意味而被淡化了,比如在领英(LinkedIn)这样的平台上就是如此。
最后,这篇文章主要是针对大规模的机器学习会议(比如神经信息处理系统大会(NeurIPS)、国际机器学习会议(ICML)、国际学习表征会议(ICLR))来撰写的。在其他类型的会议上,氛围和策略可能会有所不同。
例如,理论计算机科学会议通常不会设有海报展示环节。而在规模较小的会议上,根据会议主题的契合程度,你找到能与之建立联系的人的难易程度也会有所不同。所以具体效果可能因人而异,但我认为,这些总体原则在各类会议(以及更广泛的社交场合)中都是合理可行的。
为什么要和其他研究人员建立联系呢?
最主要的原因是:社交很有趣!
不管怎样,研究人员常常倾向于和其他研究人员交朋友。这或许并不奇怪,因为我们会和与自己有共同之处的人成为朋友,而研究往往在这些人的生活中占据很大一部分。我在科研领域结交了许多朋友,每次去参加会议或研讨会时,我都期待着能见到他们。
拥有遍布世界各地的朋友通常是一件很有趣的事情:举个恰当的例子,我是在等一位研究人员朋友到来的时候开始起草这篇文章的,当时我们正准备在香港观光游览。我每天都会和许多来自科研界的朋友聊天,他们身处不同的地方,我们谈论各种各样不同的话题(有与研究相关的,也有与研究无关的)。
其次,从职业发展的角度来看,与其他研究人员建立联系也很有用。一般来说,人们不会频繁地进出科研界:你在会议上遇到的人,可能会成为你整个职业生涯中的专业同事。你们会阅读彼此的论文,会一起参与学术服务工作,会在各种会议上一次又一次地碰面。你们甚至可能会参加彼此的 65 岁生日派对(这是常见的学术传统)。
所以,尽早结识并与相关人士建立联系是很有价值的。这会让你熟悉在你研究领域内有哪些人在开展工作,并且有助于在未来与他们进行更自然的交流互动。
这并不是(直接意义上)关于如何 「建立人脉」 的指南。「建立人脉」 意味着主要出于职业目的:比如说,你在求职,或者因为和(所谓的)重要人物交往而感觉自己也很重要。
我只是喜欢交朋友,喜欢和其他人建立联系。我从事研究工作的部分原因就在于这个科研群体。成为比自身更宏大事物的一部分,这种感觉很棒。当人们为了建立人脉而交往,却装作是在努力与人建立联系时,我觉得这种行为有点令人反感,而且意图太过明显。
尽管如此,就像我说过的,与人建立联系在职业方面确实是有价值的。
如何与其他研究人员建立联系?
既然我们已经确定了与他人建立联系是有价值的,那么你该如何去做呢?
请注意,我在这里给出的建议是相当通用的(大致来说,就是「找到你们的共同之处」),但同时是专门针对学术场合的。
在会议上建立联系
简单模式:在你所在的领域找到一位善于社交的资深导师(比如你的导师),然后跟着他们。他们认识很多人,也知道你应该认识哪些人,而且他们很可能有足够的自信和社交资本,能够把你介绍给相关人士。我以前就为我的一些学生和受指导者做过这样的事。
这类互动的一个典型场景是:「嘿,[学生 X],记得我们一起读过 [学生 Y] 写的这篇论文吧,我们去看看他们的海报展示!嘿,[学生 Y],在 [Z 会议] 之后又见到你真高兴,这是我的学生 [学生 X]。你能给我们讲讲你的研究工作吗?(…… 关于他们研究工作的对话……)[学生 X] 在你一直在研究的 [W 主题] 上有一些很有趣的成果,也许你们俩可以安排个时间晚点再聊聊?」
但也许你的导师无法参加会议,或者他们很忙,这样你就只能靠自己了。那你能做些什么呢?同样:尽最大努力找到你们的共同之处。
最自然的共同之处就是:研究兴趣。这可以通过几种不同的方式体现出来。假设你看到了某个你读过其论文的人。如果你在这个领域也做过相关的研究工作,那就更好了。
你完全可以直接走向他们,然后说:「嘿,你是 [X 先生 / 女士],对吧?我叫 [Y 先生 / 女士]。我读了你关于 [W 主题] 的论文,觉得真的很棒!」 然后你可以提出更多问题 —— 也许是关于他们论文的内容,或者问问他们是否还在研究那个问题等等。你也可以告诉他们你在这个领域所做的工作。
请注意,这种交流方式对于和你资历相当(或低于你)的人来说效果会好得多,而不太适用于资历比你高的人。
比如说,一个低年级的研究生要是听到有人读过并且喜欢他们的论文,那会让他们印象深刻且备受鼓舞,而对于资深研究人员来说,这种情况可能就比较常见了。
这也没关系。你在这里的目标是交朋友(很可能是和你资历相当的人),而不是和 「名人」 建立 「人脉」。
此外,和与你资历相近的人建立联系可能在科学和职业方面更有价值,因为在你的整个职业生涯中,他们会是和你处于同一时期的同行。
另一种与人建立联系的方法是发现共同的朋友。也许你和对方有共同的合著者。又或者他们以前和你的导师一起相处过。如果你能以一种自然的方式提及这一点,那就可以立刻建立起一种联系,并增进一些融洽的关系。
比如说,我建议如果你怀疑对方和你的导师关系很好,你可以说「嘿,我是 [X 先生 / 女士],我的导师是 [Y 先生 / 女士]」,然后看看他们是否认识彼此。这比说 「我认识 [A、B 和 C 这些人]。你认识他们中的任何一个人吗?」 要自然得多(不过,如果你怀疑他们确实认识某个人,比如他们在同一个团队里,那么这样说可能就不那么尴尬了)。共同的朋友通常不会事先就显而易见,所以可能需要反复尝试一下。
这种策略可以用一个带有特定含义的词来描述:「提及名人以抬高自己的身价」。的确,这是一种提及名人的方式。但这个词通常意味着以你的导师有多出名或者你上的是哪所名校来给人留下深刻印象。不要试图那样做。那只会让别人更不喜欢你。
我们的目标是交朋友。我们提及名人是为了与人建立联系,而不是为了给人留下深刻印象。
以下是一些其他有用的破冰话术和聊天话题:
- 如果是初次与某人见面,可以说:「嗨,我想我们没见过面。」 一般来说,这会让对方主动介绍自己,这比你自己向别人做自我介绍可能会少一些让人感到紧张的感觉。要是你们以前见过面,那他们会告诉你是在哪里见过的,这又是一个开启对话的轻松切入点。
- 「今天下午有没有你特别期待的会议或者海报展示呀?」 这句话有双重作用。一方面,你能更多地了解对方以及他们的兴趣所在。另一方面,如果他们的研究和你的研究领域相近,你还能了解到本领域内有哪些成果吸引了其他人的关注。
何时与人交流?
我们已经讨论过与人建立联系的策略。但究竟什么时候去做这件事呢?
从某种意义上说,喝咖啡的休息时间是理想的时机:这段时间的主要目的就是吃点零食和进行社交活动。理论上,人们会很乐意被搭讪并与人交谈。
另一方面,我从亲身经历中知道,这可能会很令人胆怯,尤其是当你还不认识任何人的时候。实际上,你会看到人们三五成群地交谈,就好像他们是最好的朋友一样,而且感觉好像每个人都已经彼此认识了(提示:在很多情况下,他们可能只是在最近一两天内才认识的)。你可以融入到大多数这样的小圈子中,人们通常会很有礼貌,并且会为你腾出空间。
再说一次,如果你不是一个善于社交的人(而且如果你是一位正在阅读这篇文章的计算机科学研究员,你也很可能不是),这可能会让你感到害怕,尤其是因为在你加入之后,你还得想办法融入到对话中去。
稍微容易一点的做法是和某个你多少有点认识的人一起加入一个群体(比如,共同作者、导师、指导人,或者是你在会议上已经见过的人)—— 你不需要和他们很熟,即使只是之前在海报展示区有过简短的交谈,也会让你感觉不那么尴尬。正如这篇文章的一个总体思路,「朋友会带来更多的朋友」。
但话又说回来,这仍然没有解决如何第一次主动与某人搭讪的问题。
海报展示环节可能是接近他人的更好时机。如果有人正在展示他们的海报,他们是希望有人来交流的,而你就应该这么做。需要注意的是,他们也可能会很忙,因为还有其他人也想了解他们的工作,所以你要注意不要占用他们太多时间。你可以和他们建立一些融洽的关系,然后安排稍后再见面的时间。
你可能还会发现一些你想与之交谈的人在海报展示区闲逛(比如,在与你的研究相关的海报区域)。这实际上可能是接近某人的理想方式。它具备喝咖啡休息时间的所有社交优势(人们希望与人交谈),但却没有一些缺点(人们不太可能深陷于某个交谈小圈子而难以加入)。
你也可以在会议演讲期间和别人聊天!我可不是说在演讲过程中直接聊天(那样太没礼貌了),而是在演讲进行的同时,在走廊里聊(有时被称为 「走廊交流环节」)。当你第一次参加会议时,你可能会觉得自己的任务就是要去听每一场演讲。但这样会让人筋疲力尽,而且你可能也不会有太多收获。我认识的一些资深研究人员每天能听进去一两场演讲,但再多就不行了。如果有其他有趣的事情在进行(比如和某个你聊得很投缘的人在走廊里进行愉快的交谈),不要害怕跳过某些演讲。
另一个常见的策略是在会议召开前给人们发电子邮件,询问他们是否会参加会议,以及是否愿意见面。这可能有点棘手,因为你可能不知道谁会参加会议,而且即使他们会来,他们也可能没有把自己的日程安排得那么周全。同样,你应该尽量给那些你最有可能建立真正联系的人发邮件,而不要仅仅是为了拓展人脉。
会议午餐有着独特的氛围。如果会议提供餐饮服务,别害羞,随便找张桌子和其他人坐在一起就行。这比融入正在交谈的小圈子要容易,因为每个人都得找个椅子坐下吃饭。如果人们得外出吃午餐,通常你会看到大家在大堂里成群结队。即便你不认识任何人,提出加入某个随机的小组也没什么奇怪的,不过话说回来,要是你本来就认识一些人,加入进去可能会让你感觉更自在。这些小组常常会和其他小组合并,而最终当找不到能坐下所有人的地方时,又会分开。
跟着一位资深导师一起行动也会很有帮助。这里有个进阶小窍门:我建议在整个会议期间尽量和不同的人群一起用餐。在找到了一个小组一起用餐后,很容易就会在整个会议期间都和他们待在一起。如果你是第一次参加会议,而且能做到这样,那也很棒!但要是你能走出自己的舒适区,去结识更多的人,你可能会从中受益。
在会议期间,也有一些时候不适合去接近别人。比如当他们看起来很匆忙,正往某个地方赶的时候。或者当他们在打电话,或者正在进行一场研究会议的时候。还有当他们在喂孩子的时候。如果有人看起来很专注或者正忙于某项任务,你要自行判断是否去打扰 —— 但不要把这种忙碌和忙于社交混淆,因为忙于社交说明他们正处于愿意社交的状态。
接下来做什么呢?
在你与某人建立联系之后,下一步该怎么做呢?
在会议期间,晚上可能会有一些活动安排(比如聚餐),或者在会议前后会有观光活动(甚至有人会选择跳过会议的某些天数去游玩)。像 「你晚餐打算吃什么?」 或者 「你有没有计划在这附近做点什么?」 这样的问题很容易问出口。
要么他们没有安排,那么他们可能会很高兴和你一起制定一些计划;要么他们已经有了计划,并且可能会邀请你一起(前提是这不是那种小型的、只针对特定人群的活动)。
你们最终可能会加入一个 WhatsApp 之类的群聊,这将有助于进一步在会议期间进行社交活动。通常会有一两个人带头提出一些活动计划 —— 你自然会找到这样的人。进阶小窍门:成为那样的人。人们喜欢参加活动,但并不总是喜欢组织或带头,所以他们会很感激这样一个组织者。
要记住,这些建立起来的联系可以在会议结束后延续下去,甚至有可能持续一生。如果你和某人进行了一次愉快的研究方面的交流,你可以在之后给他们发电子邮件,进一步探讨相关内容,这有可能开启一段合作。如果你前往他们所在的城市旅行,你可以和他们见面,一起喝杯咖啡或者吃顿饭。你甚至可以询问是否能够给他们的团队或部门做一场研究报告。
一些注意事项
本文作者自认为自己比较外向,并且在相关领域的圈子里已经站稳了脚跟。
我试图为在这两方面情况不同的人着想,但还是要对上面给出的建议做一些说明。
不得不说的一个现实情况是:很多参加会议的人都试图拓展人脉。这本身并不是一件坏事,你可能也有这方面的兴趣(不过,就像之前提到的,这并不是本文直接要指导的内容)。
然而,这也会带来一些负面结果。与他人的互动可能会让你觉得「虚假」或者充满功利性,尤其是当人们打着建立联系的幌子来拓展人脉的时候。你可能会觉得自己一直都在被评判,评判的内容涵盖从你所属的机构到你的种族、性别等方方面面。
不幸的是,几乎在每一场会议中,这些因素在一定程度上都是存在的。这可能会在精神和情感上让你感到非常疲惫,自然也会让你想要退缩。
但就本文的主旨而言,那些虚假、功利、 elitist(有优越感、精英主义、自恃高人一等 )或者喜欢评判他人的人,反正也不是你真正想要建立联系的对象。如果你发现自己正处于一段让你精力耗尽或者让你感觉不舒服的交流中,礼貌地找个借口离开,然后想办法让自己恢复状态,这可能包括和你在会议上最亲近的朋友(共同作者、导师、同事)一起待着,或者自己放松一下。
说到这一点,即使没有那些尴尬的互动,会议也可能会让人极其疲惫。会议上有很多事情在进行,还有大量的人参与其中。除此之外,你可能还会有时差反应。你不必屈服于那种「害怕错过」 的心理,给自己留出一些时间是完全正常的。
这很可能不是你参加的最后一场会议,你不必在第一次参加时就把所有事情都做一遍。我通常会尽量预订离会议场地尽可能近的住宿,以防需要中场休息一下。
你可能会认为自己不适合在会议上社交,因为你是一个不擅长社交的「计算机科学呆子」。但你参加的是计算机科学会议:几乎每个人都是不擅长社交的计算机科学书呆子。
换句话说,大多数人都和你处境相同 —— 身处一个有很多陌生人的大型活动中,但又小心翼翼地渴望与人交谈。所以,不要觉得自己是那个格格不入、不属于这里的人:我们都是因为共同的研究兴趣而聚在一起的,所以每个人都属于这里。
其他观点
在我撰写这篇文章的时候,有人分享了以下这篇文章:《机器学习新手:驾驭机器学习会议场景指南》(https://virtual.aistats.org/Conferences/2025/BlogPost_1),作者是 Khimya Khetarpal 和 Cheng Soon Ong。这是一份非常棒的指南,涵盖了你在机器学习会议上可以做的很多事情。
与我的文章相比,它更侧重于专业性(因此二者可以相互补充)。我和一些人聊过,他们觉得这篇文章有点让人感到压力,所以把它更多地当作一系列的建议和意见,而不是参加会议的必做指南。如果你是 A 型人格,你可能会更认同那篇文章(以及这篇文章)中的策略。
要记住每个人参加和享受会议的方式都不同!有些人真的很喜欢与人交流互动,而另一些人则更喜欢独处。有些人能从会议演讲中收获颇丰,而另一些人听了一两场演讲后就疲惫不堪了。
显然,每个人在如何社交以及与人建立联系方面都有不同的策略。我在这份指南中提出的建议可能并不适合你,甚至可能会让你对参加会议这件事再三考虑!
但如果你是这种情况,就忽略我写的所有内容,去参加会议,然后告诉我哪些方法对你有效。给我发封邮件吧!
#315 行代码构建编程助手
Go大佬揭开智能体的「神秘面纱」
知名 Go 大佬 Thorsten Ball 最近用 315 行代码构建了一个编程智能体,并表示「它运行得非常好」且「没有护城河」(指它并非难以复制)。
Thorsten Ball 在编程领域以其对系统编程和编程语言的深入研究而闻名,尤其擅长解释器、编译器和虚拟机等主题。他撰写的《用 Go 语言自制编译器》和《用 Go 语言自制解释器》则被视为编译原理领域的「入门平替」。
虽然这个编程智能体无法和 Claude、Gemini 等推出的编码功能相媲美,却为初学者提供了一个探索智能体的良好学习范例。这反映了他一贯的理念:通过实践和开源项目揭开技术的「神秘面纱」。
Thorsten Ball 在博客中分享了他的具体操作步骤。(注:本文中的代码截图可能并不完整,详细内容请参阅原博客。)
博客地址:https://ampcode.com/how-to-build-an-agent
乍看之下,智能体编辑文件、运行命令、自行解决错误似乎很复杂,但实际上只需一个大语言模型、一个循环和足够的 tokens。构建一个小型的智能体并不需要太多工作,少于 400 行代码即可实现,且大部分是样板代码。
接下来将展示如何从零开始逐步构建一个「game changer」,读者可以尝试亲自动手编写代码。
准备工作
首先准备好我们的「文具」:
- Go
- ANTHROPIC_API_KEY
铅笔出场!让我们直接开始,用四个简单的命令来设置一个新的 Go 项目:
现在,打开 main.go,作为第一步,将需要的东西的框架放入其中:
是的,这还没有编译。但是我们这里有一个 Agent,它可以访问 anthropic.Client(默认情况下,它会查找 ANTHROPIC_API_KEY),并且可以通过从终端上的 stdin 读取来获取用户消息。
现在让我们添加缺少的 Run() 方法:
这并不多,对吧?90 行代码,而其中最重要的就是 Run() 中的这个循环,它让我们能够与 Claude 对话,但这已经是这个程序的核心了。
对于一个核心来说,这个过程相当简单:我们首先打印一个提示,询问用户输入内容,将其添加到对话中,发送给 Claude,然后将 Claude 的回复添加到对话中,打印出回复,然后再循环进行。
你日常使用的 AI 聊天应用其实就是这样的,只不过这是在终端中实现的。
运行它:
然后你可以和 Claude 对话了,就像这样:
注意到我们在多个回合中保持了同一个对话吗?它记住了我们在第一条消息中的名字。每次回合对话都在增长,我们每次都发送整个对话。服务器——准确来说是 Anthropic 的服务器——是无状态的。它只看到 conversation 片段中的内容,维护这一点由我们来负责。
现在继续,因为输出结果很糟糕,这还不是一个智能体。什么是智能体?可以这样定义:一个具有访问工具能力的大语言模型(LLM),这些工具使其能够修改上下文窗口之外的内容。
添加工具
一个具有工具访问能力的大语言模型(LLM)是什么呢?
工具的定义是这样的:你向模型发送一个 prompt,告知它在想要使用「工具」时应以特定方式回复。然后,你接收消息后「使用工具」执行该指令,并返回结果。其他一切都是在这一基础上进行的抽象。
想象一下,你正在与朋友交谈,你告诉他们:「在接下来的交流中,如果你想让我举起手臂,就眨眼。」这种表达方式虽然有些奇怪,但概念非常容易理解。
我们已经能够在不改变任何代码的情况下尝试这种方法。
我们告诉 Claude,当它想知道天气时,就用 get_weather 来「眨眼」。接下来的步骤是举起我们的手臂,并回复「工具的结果」。
第一次尝试非常成功!
这些模型经过训练和微调,能够使用「工具」,并且非常注重利用这些工具。到 2025 年,它们在一定程度上「知道」自己不具备所有信息,因此可以借助工具获取更多信息。(虽然这不是完全准确的描述,但目前这个解释足够了。)
总结关于工具使用的关键点有:
- 你告诉模型有哪些工具是可用的。
- 当模型想要使用工具时,它会通知你,你执行工具并将响应发送回模型。
为简化步骤(1),大型模型提供商已经内置了 API,用于发送工具定义。
现在,让我们开始构建我们的第一个工具:read_file。
read_file 工具
为了定义 read_file 工具,我们将使用 Anthropic SDK 建议的类型,但请记住:在底层,这一切最终都会变成发送给模型的字符串。这一切都是「如果你希望我使用 read_file,就眨眼」。
我们要添加的每个工具都需要以下内容:
• 名称
• 描述,告诉模型这个工具的功能、何时使用、何时不使用、返回什么等等。
• 输入模式,描述为 JSON schema,说明该工具期望什么输入以及输入的形式。
• 一个实际执行工具的函数,使用模型发送给我们的输入并返回结果。
那么让我们把这些添加到我们的代码中。
现在我们给出 Agent 工具定义:
并将它们发送到 runInference 中的模型:
用户发送工具定义,Anthropic 在服务器上将这些定义包装在这个系统提示中(并不多),然后将其添加到对话中,如果模型想要使用该工具,它就会以特定的方式回复。
好的,所以工具定义正在发送,但我们还没有定义任何工具。让我们来定义 read_file 工具。
这并不多,是不是?这只是一个函数,ReadFile,以及模型将看到的两个描述:一个是描述工具本身的 Description(Read the contents of a given relative file path. ...),另一个是该工具拥有的单一输入参数的描述(The relative path of a ...)。
ReadFileInputSchema 和 GenerateSchema 之类的工作是做什么的?我们需要这些来为工具定义生成一个 JSON 模式(schema),然后发送给模型。为此,我们使用 jsonschema 包,需要进行导入和下载:
然后运行以下命令:
go mod tidy
然后,在 main 函数中,我们需要确保我们使用定义:
是时候尝试一下了!
哇哦,它想要使用这个工具!显然,你的输出可能会有些不同,但听起来 Claude 确实知道它可以读取文件,对吧?
问题是我们没能聆听!当 Claude 给出提示时,我们没有去注意这一点,我们需要解决这个问题。
通过一个简单、快捷且异常敏捷的动作,我们可以通过替换智能体的 Run 方法来实现:
可以说,这段过程 90% 是固定格式,只有 10% 是关键部分:当我们从 Claude 收到消息时,我们会检查 Claude 是否要求我们执行某个工具,通过查看内容的类型是否为「tool_use」来判断;如果是这样,我们就交给 executeTool 处理,在本地注册表中通过名称查找该工具,解析(unmarshal)输入,执行它,并返回结果。如果出现错误,我们会翻转一个布尔值。就是这样。
(是的,的确有一个循环套在另一个循环里,但这不重要。)
我们执行工具,将结果发回给 Claude,然后再次请求 Claude 的响应,就是这么简单。
echo 'what animal is the most disagreeable because it always says neigh?' >> secret-file.txt
这会在我们的目录中生成一个名为 secret-file.txt 的文件,里面包含一个神秘的谜题。
就在同一个目录中,我们运行新的工具使用智能体,要求它查看该文件:
你只需要给它一个工具,它就会在认为有助于解决任务时使用它。我们没有说「当用户询问文件时,阅读文件」,也没有说「如果某个东西看起来像是文件名,找出如何读取它」。我们说的是「帮我解决这个文件里的问题」,Claude 就意识到它可以读取文件来回答这个问题,然后就去做了。
当然,我们可以加以具体引导并鼓励使用某个工具,但它基本上可以自主完成这些任务:
作者接下来还介绍了添加 list_files(列出文件的工具)和 edit_file(让 Claude 编辑文件的工具)的方法,感兴趣的读者可以阅读博客原文。
#DianJin-R1
阿里云通义点金发布,金融领域推理大模型,32B模型荣膺榜首
本文由阿里云通义点金团队和苏州大学联合完成。
近日,阿里云通义点金团队与苏州大学携手合作,在金融大语言模型领域推出了突破性的创新成果:DianJin-R1。这款推理增强型金融大模型,融合了先进的技术和全面的数据支持,专为金融任务而设计。
- 论文地址:https://arxiv.org/abs/2504.15716
- GitHub:https://github.com/aliyun/qwen-dianjin
- Hugging Face:https://huggingface.co/DianJin
- ModelScope:https://modelscope.cn/organization/tongyi_dianjin
- 点金官网:https://tongyi.aliyun.com/dianjin
全面开源的 Reasoning 数据集:DianJin-R1 的独特亮点之一是其全面开源的 Reasoning 数据集——DianJin-R1-Data。该数据集基于通义点金团队去年在 ACL-2024 上发表的 CFLUE Benchmark 上进行的全面升级,整合了 FinQA 和中国合规检查(CCC)数据集,为金融推理任务提供了强大的基础。目前已经开源,旨在支持和推动金融领域的研究和应用。
全面开源的 Financial Reasoning 模型:DianJin-R1-7B 和 DianJin-R1-32B 模型已向公众全面开放。这些模型通过监督微调(SFT)和强化学习(RL)两阶段精细优化,在复杂金融任务中表现卓越。开源的强大模型为行业提供了更广泛的应用可能性,推动了金融 AI 的创新发展。
基于通义点金平台的 Multi-Agent System 数据合成:更值得关注的是,我们通过通义点金平台实现了基于 Multi-Agent System 的数据合成。通过点金平台,我们构建了数据飞轮和模型优化机制,使得单次调用效果媲美高计算成本的多智能体系统。这不仅展现了 DianJin-R1 的出色性能,也展示了我们在模型优化和智能系统集成上的创新能力。
DianJin-R1-7B 以其轻量化参数和高效表现,成功媲美行业标杆模型 QwQ,展现出不凡的竞争力。而 DianJin-R1-32B 更是超越了所有参评模型,包括 DeepSeek-R1,荣膺性能测试的第一名,彰显了我们团队在人工智能和金融科技领域的卓越创新能力。
我们的评测基准不同于传统标准,DianJin-R1 不仅严谨测试了金融领域的三大核心任务,还特别引入了两个通用领域的数据集进行综合评估。这一全新方法不仅证明了 DianJin-R1 在专业金融领域的显著提升,也展示了其在通用任务中的表现。
DianJin-R1 的发布,不仅推动了金融科技的智能化进程,也进一步巩固了我们在金融大模型领域的领先地位,让我们期待 DianJin-R1 能在更多领域释放其强劲潜能。
背景
近年来,大型语言模型(LLMs)的进步引发了增强其推理能力的浓厚兴趣。像 OpenAI o1、DeepSeek R1 和 QwQ 等模型已经显示出,通过显式建模推理过程,可以显著提高在复杂任务上的表现。
尽管取得了这些改进,最近在金融基准上的评估揭示出,由于需要领域特定的知识、精准的数值推理以及严格遵循监管要求,金融领域的推理仍然特别具有挑战性。有效应对这些挑战需要专门的推理策略,能够处理结构化的金融信息和开放性问题解决。
为此,我们推出了 DianJin-R1,这是一种融合推理增强监督和强化学习来提高金融推理任务表现的 LLM。
DianJin-R1-Data 构建
首先通过三个主要来源构建了高质量的推理数据集 DianJin-R1-Data:CFLUE、FinQA 以及我们的专有合规数据集,用于中国合规检查(CCC)任务。
- CFLUE:包含了 38,638 道来自 15 种金融资格模拟考试的多项选择题,涵盖不同科目和难度。通过三步过滤流程,我们筛选了高质量问题:首先,移除少于 15 个词的简单题;其次,剔除能被所有较小语言模型正确回答的题目,以确保需要更深的推理能力;最后,利用 GPT-4o 去除含糊不清的问题,确保每个题目清晰明确。最终得到的题目集不仅有明确的正确答案,还附有详细解释,有助于评估模型的金融推理能力。
- FinQA:FinQA 是一个开源的英文基准数据集,包含 8,281 个金融问答对,这些问答对需要对财务报告进行数值推理。在我们的研究中,我们采用了与 CFLUE 数据集相同的长度和难度过滤条件,以确保质量和复杂性。因此,我们精心整理出了一个高质量的问答对子集,非常适合在英语语境中评估金融推理能力。
- CCC(基于 Multi-Agent System 数据合成):聚焦于需要多步骤逻辑的复杂合规场景。为确保推理质量,我们利用通义点金平台 Multi-Agent System 进行了 Reasoning 数据合成,并采用了 GPT-4o 的验证过程,检查生成的答案、推理步骤和参考解释之间的对齐。这一过程产生了一套可靠的推理增强和非推理样本,支持更稳健的模型训练。
基于 Multi-Agent 系统的数据合成样例
DianJin-R1 两阶段训练
对于监督微调(SFT),我们基于 Qwen2.5-7B-Instruct 和 Qwen2.5-32B-Instruct 训练了 DianJin-R1-7B 和 DianJin-R1-32B,生成的推理过程和最终答案采用结构化输出格式。为了进一步提高推理质量,我们应用了群体相对政策优化(GRPO),这是一种强化学习算法,引入了两个奖励信号:一种格式奖励以鼓励结构化输出,还有一种准确性奖励以促进答案的正确性。这些机制引导模型生成连贯、可验证的推理路径和可靠的答案。
实验结果
我们对 DianJin-R1 模型以及其他通用领域的推理和非推理模型进行了评估,评估范围包括 CFLUE、FinQA、CCC、MATH-500 和 GPQA-Diamond 等多样化的基准。结果表明,增强推理的模型在金融领域始终优于其对应的非推理模型。特别是,单独在 CFLUE 上进行训练在所有任务中都取得了显著提升,结合所有数据集进一步增强了性能。我们的分析还强调了强化学习的益处,尤其当奖励信号与任务领域对齐时。
最后,我们在 CCC 数据集上展示了这一方法的实际应用,采用 LLMs 构建的 Multi-Agent 系统进行基于条件的合规检查。通过为工作流中的每个决策节点分配专门的代理,该系统有效地整合了中间推理步骤,最终做出合规判断。
结论
综上所述,DianJin-R1 通过结合高质量监督、结构化推理生成和基于奖励的强化学习改进,提供了一种可扩展且有效的策略来增强 LLMs 中的金融推理能力。
#ID-Patch
如何稳定且高效地生成个性化的多人图像?ID-Patch带来新解法
本文第一作者为密歇根州立大学计算机系博士生张益萌,系 OPTML 实验室成员,指导老师为刘思佳助理教授。研究工作主要完成于张益萌在字节跳动的实习期间。
扩散模型(Diffusion Models, DMs)如今已成为文本生成图像的核心引擎。凭借惊艳的图像生成能力,它们正悄然改变着艺术创作、广告设计、乃至社交媒体内容的生产方式。如今,只需一段文字,就能生成一张极具风格的个性化头像,已经不再稀奇。
但,如果我们想要的不只是 “一个人” 的照片呢?
在朋友缺席的聚会中,我们是否可以 “补全” 一张大家都在的合影?在广告场景中,我们是否可以自由组合多位虚拟角色,讲述一个多人物的故事?个性化的多人图像生成正成为新的想象力疆域。但同时,它也带来了前所未有的技术挑战。
其中最棘手的,就是身份特征泄露(ID leakage)—— 明明是两个人,却因为特征混淆,生成出面容 “融合” 的人脸,令人难以分辨谁是谁。更进一步,用户往往还希望可以精确指定每个人的位置和动作,实现更自然真实的构图和创意有趣的互动。可一旦位置错乱,原本的故事就变了味儿。
📷 从单人走向多人,挑战也随之升级
如今,个性化单人照片生成已能达到令人惊艳的视觉效果。但当我们尝试生成多人互动照片时,问题便不再简单。
最早试图解决身份混淆(ID 泄露)问题的方法之一是 OMG [1]。它采用 “两阶段” 策略:首先生成一张不含身份信息的底图,再借助分割模型识别人像区域,最后逐一注入身份特征。思路清晰,却问题频出:复杂背景下分割模型容易失效;前后阶段风格不一致,整体画面割裂;更重要的是,每个人都需要单独进行一次去噪,人数越多,生成越慢,体验越差。
另一种方法 InstantFamily [2] 则尝试通过注意力掩码(Attention mask)直接修改注意力机制,在一次生成中,让每个像素只 “看” 与其身份相关的特征向量。虽然在效率上有所突破,但 ID 泄露问题依然难以根除。其根源在于:(1)人脸掩码不够精准或人物过于靠近,易发生特征重叠;(2)注意力和卷积网络的结构本身,存在 “信息串位” 的风险。
🧩 为此,我们提出了全新方案 —— ID-Patch。
这是一个专为多人图像打造的 “身份 - 位置” 绑定机制,核心目标是:每个人都出现在对的位置,而且看起来就像自己。
📚 论文地址:https://arxiv.org/abs/2411.13632
💻 项目主页:https://byteaigc.github.io/ID-Patch/
🤖 模型下载:https://huggingface.co/ByteDance/ID-Patch
🎮 试玩demo:https://huggingface.co/spaces/ByteDance/ID-Patch-SDXL
⚓️ ID-Patch: 面向多人图像生成的身份 - 位置对齐机制
我们的设计思路很直观,将人脸信息拆解为两个关键模块:
- ID Patch:将身份特征转化为小尺寸 RGB 图像块,直接贴入 ControlNet 的条件图像中,精确指定每个人的位置;
- ID Embedding:作为身份细节的表达,与文本提示共同输入,增强人物面部的真实性与独特性。
特别地,ID Patch 兼具 “位置标记” 和 “身份锚点” 双重作用:不仅告诉模型 “谁在哪”,也帮助模型从多个 ID Embedding 中,正确选出对应的、包含更丰富细节的身份向量。
不仅如此,ID-Patch 还能灵活融合姿态图、边缘图、深度图等多种空间条件,轻松适配复杂场景,兼顾准确性与通用性。
🚀 实验效果:又快又准,一步到位!
如图表所示,ID-Patch 在身份还原 (identity resemblance) 与身份 - 位置匹配 (association accuracy) 两个核心指标上表现出色,分别达到了 0.751 和 0.958,充分体现出其在保持人物面部一致性和精确放置方面的强大能力。在文本对齐(text alignment)方面,各方法表现相近,差异不显著。而在生成效率上,ID-Patch 是所有方法中最快的!
值得注意的是,随着图中人脸数量的增加,OMG 和 InstantFamily 出现了明显的性能下降,主要由于 ID 泄露问题加剧;而 ID-Patch 的表现更为稳健,虽然也存在一定下降,但幅度较小。这种下降主要是由于人脸数量增多后,单张人脸在图像中的面积缩小,进而影响了 SDXL 模型对小脸部特征的还原效果。同时,更多人脸的存在也对面部特征提取提出更高的需求,因此会略微增加生成时间。
在速度方面,ID-Patch 的优势尤为突出:
- ⏱️ 生成 8 人合影仅需约 10 秒
- 🕑 相比之下,OMG 方法则需要近 2 分钟才能完成一张图像的生成
- ⚙️ InstantFamily 因为注意力掩码的引入,比 ID-Patch 稍慢
无论是还原度、位置精准度,还是生成效率,ID-Patch 都交出了一份令人满意的答卷!
💡 面部特征仍有提升空间,未来可期!
目前模型中的人脸特征可能仍然混杂了光照与表情变化等信息,尚未完全与身份特征解耦,这在一定程度上可能影响最终生成图像的质量与一致性。引入更多同一身份、不同光照和表情状态的图像,以丰富训练数据的多样性。这样的数据增强方式有望帮助模型更好地学习在不同条件下仍保持身份一致性的能力,从而进一步提升生成图像的真实感与细节表现力。
总结与展望
✨ 总的来说,ID-Patch 正在重新定义多人物图像生成的可能性。
我们提出的全新方法 ID-Patch,在多身份、多人物图像生成中实现了突破式提升 —— 不仅大幅增强了人物身份的还原度,还显著提高了生成图中每位人物位置的精准控制力。其核心创新在于:我们将每位人物的身份特征嵌入到一个独立的图像小块中,并借助 ControlNet 技术将这些 “身份块” 精确放置到目标位置,从根源上缓解了以往方法中常见的 ID 泄露问题。
更进一步,ID-Patch 拥有极强的兼容性和扩展性,能够与姿态控制、深度图等多种空间条件自然融合,具备良好的泛化能力。实验证明,在三人以上的复杂图像生成场景中,ID-Patch 始终保持出色表现,为生成式 AI 在合影、社交图像、虚拟人物排布等领域带来了前所未有的体验。
🔭 更精彩的未来,正在开启。
我们相信,未来可探索的方向将更加广阔:比如结合同一个人不同角度的图像进一步增强面部还原度,又或是通过 patch 技术实现对人物位置 + 表情的双重控制,从而让合成图像更加真实、生动、有温度。
参考文献
[1] Kong, Zhe, et al. "Omg: Occlusion-friendly personalized multi-concept generation in diffusion models." European Conference on Computer Vision. Cham: Springer Nature Switzerland, 2024.
[2] Kim, Chanran, et al. "Instantfamily: Masked attention for zero-shot multi-id image generation." arXiv preprint arXiv:2404.19427 (2024).
#DiffFNO
傅里叶神经算子助力扩散,开启任意尺度超分辨率新篇章
本文由圣路易斯华盛顿大学与北京大学联合完成,第一作者为圣路易斯华盛顿大学的刘晓一,他在北京大学访问期间完成了该项研究;通讯作者为北京大学计算机学院唐浩助理教授 / 研究员。
从单张低分辨率(LR)图像恢复出高分辨率(HR)图像 —— 即 “超分辨率”(SR)—— 已成为计算机视觉领域的重要挑战。近年来,随着医疗影像、卫星遥感、视频监控和游戏渲染等应用对图像细节的需求不断提升,该技术的应用愈发广泛。传统深度学习超分模型(如 SRCNN、EDSR)在固定放大倍数下表现优异,但要么无法支持任意放大尺度,要么在大倍率和复杂纹理场景中常出现细节模糊和伪影。扩散模型能有效恢复高频细节,却因需多次迭代去噪而推理缓慢,难以满足实时应用需求。为彻底打破 “高质量重建” 与 “快速推理” 之间的矛盾,算子学习在运算效率和分辨率不变性方面的提升为该领域带来了新的机遇。
圣路易斯华盛顿大学和北京大学团队提出的 DiffFNO(Diffusion Fourier Neural Operator)以神经算子赋能扩散架构。该方法支持高质、高效、任何连续倍率(如 2.1、11.5 等)的超分。它的优秀表现来源于三大组件:【1】加权傅里叶神经算子(WFNO)、【2】门控融合机制、和【3】自适应 ODE 求解器。在各大基准上,DiffFNO 均以 2~4 dB PSNR 优势领先于 SOTA 方法。在训练分布外的超分倍率上,改进效果尤为明显。此研究已入选 CVPR 2025 Oral。
- 论文题目:DiffFNO: Diffusion Fourier Neural Operator
- 论文主页:https://jasonliu2024.github.io/difffno-diffusion-fourier-neural-operator/
- 论文链接:https://arxiv.org/abs/2411.09911
一、核心思路与框架概览
DiffFNO 由三大模块组成:
1.WFNO(Weighted Fourier Neural Operator)+模式重平衡(Mode Rebalancing):借助频域卷积捕获全局信息,并通过可学习的频率权重放大高频分量,进一步增幅普通 FNO 在超分任务中对高频细节的提取。
2.Gated Fusion Mechanism(门控融合机制):并行引入轻量化的注意力算子(AttnNO),以捕捉局部空间特征。时空动态门控图将谱域与空域特征按需融合,兼具全局一致性与细节刻画。
3.ATS ODE Solver(自适应步长 ODE 求解器):将扩散模型逆过程从随机 SDE 转化为确定性 ODE,仅几十步内即可完成去噪重建,大大提升推理速度。
下图展示了 DiffFNO 的完整流架构。此方法将图片
视作从空间坐标到 RGB 值的方程,通过 WFNO 学习此类方程之间的任意分辨率超分映射,在门控机制的调适下与空域算子协作,再由自适应求解器高效地用扩散模型进一步优化重构结果
的质量。
二、加权傅里叶神经算子与模式重平衡
传统 FNO 在频域对输入特征进行截断处理,舍弃高频模式以降低计算量,但这也导致超分场景中纹理、边缘等细节难以恢复。WFNO 通过以下两步予以改进:
- 全模式保留:保留完整傅里叶频谱,兼顾图片信息的整体解构与局部细节;
- 可学习频率权重:在每一层引入可学习的标量参数
-
-
- 结合,动态调整不同频段的影响力。
具体地,频域滤波器由权重实现了对高频细节的自适应放大。实验表明,WFNO 相比普通 FNO 在大倍率超分任务中,PSNR 提升约 0.3–0.5 dB,细节还原更加清晰。
三、门控融合:谱域与空域特征的智慧分配
尽管 WFNO 强于全局依赖建模,但局部纹理如微小纹路、噪点修复仍需空域信息。于是,DiffFNO 并行引入 Attention-based Neural Operator(AttnNO),其核心由双三次插值、Galerkin 注意力和非线性激活组成,可高效捕捉局部关联。两路输出 WFNO 和 AttnNO 特征经通道拼接后,通过 1×1 卷积加 sigmoid 得到门控图。
此方式兼具光谱全局信息与空间局部信息,让网络在不同像素位置灵活 “借力”,避免了简单拼接带来的冗余计算与信息冲突。
四、自适应步长 ODE:从上千步到数十步
扩散模型逆向过程本质为去噪迭代,若按原生 SDE 形式采样,通常需上千步,耗时数百毫秒以上。DiffFNO 首先将随机 SDE 转化为确定性概率流 ODE,再引入自适应时间步分布:
1. 以多项式基函数构造可学习的映射,通过其逆函数生成非均匀步长;
2. 在每一步评估区域复杂度,动态分配步长,使关键阶段步长更细、平滑区域步长更粗;
3. 采用经典的 RK4 高阶求积器,兼顾精度与效率。
如此一来,DiffFNO 使用自适应 ODE 求解器后,仅需约 30 步即可还原高清图像——与传统需要约 1000 步的逆扩散过程相比,推理步数减少了近 33 倍;推理时间也几乎减半(从266 ms 缩短至约 141 ms),但图像质量依旧保持不变,甚至在大尺度放大下表现更佳。
五、实验验证与视觉对比
在 DIV2K、Set5、Set14、BSD100、Urban100 等五大公开数据集上,DiffFNO 均以 2~4 dB 的 PSNR 优势领先于 MetaSR、LIIF、SRNO、HiNOTE 等多种 SOTA 任意尺度超分方法,其中优势在 ×8、×12 等大倍数放大时更加显著。
定性结果中,DiffFNO 对建筑细节、植物纹理、动物皮毛、玻璃反射等高频结构均有出色复原,边缘轮廓锐利且伪影极少。
消融研究表明:
- 去除模式重平衡,PSNR 下降约 0.4 dB;
- 去除 AttnNO,局部纹理复原受损;
- 去除 ATS,所需推理步数回升至千步级。
这些实验共同证明,三大组件缺一不可,相辅相成。
六、总结
本文介绍了 DiffFNO,一种以神经算子强化扩散的新颖任意分辨率方法。通过加权傅里叶神经算子、门控融合机制、和自适应 ODE 求解器,该方法取得了优异的计算时效和高质量的重构,为看似矛盾的 “高精度” 与 “低成本” 取舍提供了新的思路。实验结果表明,我们的方法在多个数据集中、训练分布之外均优于以往与当代任意分辨率方法。DiffFNO 有力地打破了超分任务中固定尺寸的枷锁,适用于医学,勘探,游戏等多个对图像质量有着高要求的领域。
#DeepSeek-Prover-V2
就在前两天,DeepSeek-Prover-V2正式发布,同时放出了技术报告。虽然不是大家心心念念的V4/R2,但由于DeepSeek新发布的一些非通用模型所提出的技术通常会作为后续大型更新的基础(如DeepSeek-V3里的MLA和MoE架构就源自V2版本,而R1所用到的GRPO技术则源自Math版本),因此笔者这两天拜读了Prover-V2的技术报告,并亲自体验了一把效果,然后和大家聊聊感受。
先说结论:此模型是专为生成高阶数学证明推理代码而开发的,需要结合特定的Lean 4证明提示词才能发挥最强能力(这一点在技术报告里也有体现),如果大家想依靠它来解决一般的数学问题,也不使用特定提示词的话,那实际效果可能还不如V3/R1等通用LLM。
技术报告原文链接:https://arxiv.org/pdf/2504.21801
Hugging Face:https://huggingface.co/deepseek-ai/DeepSeek-Prover-V2-671B
GitHub(含Prover-V2试用教程):https://github.com/deepseek-ai/DeepSeek-Prover-V2/tree/main
DeepSeek系列模型简介
考虑到很多朋友可能对现在大模型的命名背后的含义还不是很熟悉,为了方便大家区分DeepSeek系列的不同模型都有什么用,首先简单介绍一下DeepSeek系列模型涉及领域。以下模型全称均为DeepSeek-模型后缀(如DeepSeek-LLM、DeepSeek-V3、DeepSeek-R1...)。
通用LLM:LLM、MoE(V1)、V2、V3
推理模型:R1
视觉语言多模态:VL、VL2、Janus、Janus Flow
代码生成:Coder、Coder-V2
数学:Math、Prover、Prover-V1.5、Prover-V2
因此本次新发布的Prover-V2主要用于数学证明推理,而非通用对话。不过Prover-V2里的新方法应该会成为V4/R2中采用的主要技术。
图1。DeepSeek-Prover-V2的基准性能。在AIME基准测试中,DeepSeekV3使用自然语言推理的标准查找答案任务进行评估,而证明者模型生成精益代码,为给定的正确答案构建形式证明。
Prover-V2关键技术浅析
以下仅代表笔者个人理解,如有错误之处,欢迎大家批评指正。
1. 子目标分解法——让AI像数学家一样思考
人类证明复杂定理时,往往会将其拆解为多个小引理,逐步攻克。DeepSeek-Prover-V2 借鉴了这一思路,采用 “递归子目标分解” 策略:
(1)先画“草图”:让大模型规划证明路径
- 首先由DeepSeek-V3负责分析数学问题,并用自然语言描述证明思路。
- 然后,它会把证明拆解成多个子目标,并转换成 Lean 形式化语言(一种常用于数学证明的编程语言)。
- 不过,模型并不直接生成完整证明,而是输出一个“证明草图”——由多个
have
语句组成,每个语句代表一个待证明的子目标,用 sorry
占位符标记(类似于“这里需要进一步证明”)。
类似于写论文时先列大纲,再逐步填充细节。
(2)递归求解子目标
- 系统会提取这些子目标,并逐个解决:
- 先解决第一个子目标,然后把它作为已知条件,去证明下一个子目标。
- 这样一步步推进,最终组合出完整证明。
- 为了高效求解,DeepSeek-Prover-V2 使用了一个 专门优化的 7B 参数证明模型(相比通用大模型,它更擅长形式化推理)。
(3)课程学习:让AI循序渐进学证明
直接训练模型证明复杂定理效率很低,因为大部分尝试都会失败。于是,团队设计了一套 课程学习(Curriculum Learning) 策略:
- 生成两种子目标变体:
- 带前提条件的子目标(依赖前面已证的引理)。
- 独立子目标(不依赖其他引理)。
- 这些子目标会被纳入训练数据,让模型从易到难学习,逐步掌握复杂证明。
类似于学数学时,先做基础题,再挑战综合题。
如何将分解的子目标转化为一系列引理语句的说明性示例。首先(a)替换原始目标状态,然后(b)将前面的子目标作为前提。陈述类型(b)用于递归解决复杂问题,而类型(a)和(b)都被纳入课程学习过程。
2. 统一非正式推理和证明形式化——融合“直觉”与“严谨”
DeepSeek-Prover-V2 的核心创新在于 结合了两种能力:
- LLM的直觉推理(DeepSeek-V3 负责“想思路”)。
- 形式化证明模型的严谨推导(7B 小模型负责“写代码”)。
(1)冷启动:先让AI学会“形式化”证明
DeepSeek-Prover-V2采用的冷启动数据收集过程概述。我们首先提示DeepSeek-V3生成一个自然语言证明草图,同时将其形式化为精益语句,并为省略的证明细节添加抱歉占位符。然后,7B证明模型递归求解分解的子目标。通过结合这些子目标证明,我们为原始复杂问题构建了一个完整的形式证明。这个组合证明被附加到DeepSeek-V3的原始思维链中,为形式化数学推理创建了高质量的冷启动训练数据。
首先挑选一批 大模型能分解但小模型无法直接证明的难题作为冷启动样本:
- 让 DeepSeek-V3 生成证明思路。
- 让小模型递归解决所有子目标。
- 最终,组合成一个完整的、经过 Lean 验证的证明。
然后这些数据被用来训练 DeepSeek-Prover-V2,让它学会如何将自然语言推理转化为形式化证明。
相当于让AI自己生成“标准答案”来训练自己。
(2)强化学习:让生成的证明更可靠
后续训练中引入强化学习:
- 采用 GRPO,让模型生成多个候选证明,选择最优解。
- 增加 “一致性奖励”,确保生成的证明结构和最初的分解思路一致,避免“跑偏”。
3. 两阶段训练:兼顾速度与准确性
DeepSeek-Prover-V2 支持两种模式:
- 高效模式(non-CoT):直接生成简洁的 Lean 代码,适合快速验证。
- 高精度模式(CoT):先生成详细的推理步骤,再转化为形式化证明,适合复杂问题。
训练流程
- 第一阶段:专家迭代(Expert Iteration)
- 让当前最优模型尝试证明难题。
- 成功的证明会被加入训练集,用于迭代优化模型。
- 第二阶段:监督微调 + 强化学习
- 用两部分数据在DeepSeek-V3-Base-671B的基础上进行微调。微调数据来源由两部分:(1)non-COT:专家迭代生成,强调高效生成Lean代码,但不包含推理过程;(2)冷启动COT:来自DeepSeek-V3的高阶数学推理,通过形式化草图展现清晰的推理路径。
- 再用GRPO进一步提升证明能力。
- 蒸馏与小模型训练
- 将DeepSeek-Prover-V1.5-Base-7B的最大上下文长度从4,096扩展到32,768 token,并利用在671B模型强化学习阶段采集的rollout数据对模型进行微调。
- 在CoT模式之外,还加入了专家迭代期间采集的non-CoT数据,旨在让小模型具备成本更低的证明能力,能够快速输出精炼的形式化结果。
- 此外,还在7B小模型上执行与671B模型相同的强化学习流程。
笔者评测
Prover-V2是专为生成Lean 4形式化证明而开发的,在官方给的demo代码里也可以看到要求生成Lean 4的prompt,不过我们日常生活里基本不会用到。笔者这里没有提示模型生成Lean 4代码,仅跟模型进行正常对话来测试一下其表现。
简单题1. 若2x+5=17,求x的值。
2. 长方形的长是8厘米,宽是5厘米,它的面积和周长分别是多少?
3. 一个数除以3余2,除以5余3,这个数最小是多少?
总结:简单的代数、逻辑和几何题还是挺轻松的。
中等难度题1. 抛掷两枚骰子,点数之和为7的概率是多少?
2. 某商品原价200元,先涨价10%,再降价10%,现价是多少?
总结:进阶一点的概率和数学应用题还是没问题的。
较高难度1. 证明:根号2是无理数。
2. 用1、2、3、4、5组成没有重复数字的五位数,其中大于34000的有多少个?
有点离谱,首先答非所问,另外还有自我否定。再来看看这个问题V3是怎么回答的。
然后对于这个问题笔者在Prover=V2上又添加了Lean 4形式化证明的提示,来看看回答是否有所改善。
好吧,虽然还是会出错,但观感上提升了不少。
- 如何用数学方法估算一个城市的下水道井盖数量?
总结:数学证明较好,组合数学能力不足,开放性数学推理问题不错
其它一个比较有意思且大模型很容易出错的问题:数字9.9和9.10哪个大?
首先说明一下为什么要加“数字”两字,笔者在测试时发现如果没有声明,那么模型会反问你问的是数字还是版本号,这里笔者希望得到明确的回答因此加了限定条件。
DeepSeek-V3
ChatGPT
可以发现GPT会吃瘪,V3表现良好,再来看看DeepSeek-Prove-V2。
啊这,好吧,然后笔者又添加了Lean 4形式化证明的提示。
瞬间感觉不一样了!
笔者总结
综合技术报告以及笔者个人测试体验,笔者认为:如果只是求解一般的数学问题,V3已经足够。
Prover-V2的主要还是针对Lean 4,能够被计算机自动检查和验证的证明过程。而这个场景跟我们日常生活里并没多大关系,但是对于研发通用大模型很有帮助,因为推理大模型最依赖的两个任务就是数学和编程,这两个问题让大模型做好了,也就能泛化到更广泛的场景中。而且模型的训练的大致思路和方法也是相通的。
#Rethinking the Generation of High-Quality CoT Data from the Perspective of LLM-Adaptive Question Difficulty Grading
大模型推理上限再突破:「自适应难易度蒸馏」超越R1蒸馏,长CoT语料质量飞升
本文作者均来自中兴通讯无线研究院「大模型深潜」团队。团队重点攻关方向包括「推理模型构建:蒸馏与强化学习方法」、「无线通信故障定位与根因分析推理模型」、「多模态推理模型」和「推理加速技术」。核心成员毕业于中国科学技术大学、中国科学院软件研究所等知名高校与科研院所。
近年来,「思维链(Chain of Thought,CoT)」成为大模型推理的显学,但要让小模型也拥有长链推理能力却非易事。
中兴通讯无线研究院「大模型深潜团队」从 「数据静态经验流」 的角度切入,首创 「LLM 自适应题目难度蒸馏」 方法,一举将高质量 CoT 语料的生产效率与效果同步拉满。
- 论文标题:Rethinking the Generation of High-Quality CoT Data from the Perspective of LLM-Adaptive Question Difficulty Grading
- 论文链接:https://arxiv.org/pdf/2504.11919
开源链接如下:
- 代码数据:https://huggingface.co/datasets/ZTE-AIM/32B_LLM_AdaptiveCode_data
- 数学数据:https://huggingface.co/datasets/ZTE-AIM/32B_LLM_AdaptiveMath_data
- 代码模型:https://huggingface.co/ZTE-AIM/LLM-Adaptive-ZCode-model-32B
- 数学模型:https://huggingface.co/ZTE-AIM/LLM-Adaptive-ZMath-model-32B
研究动机:小模型也想有「长链思考」
大模型优势鲜明,部署困难
随着 DeepSeek-R1(671B 参数)模型的发布,长思维链(CoT)推理技术在基础大模型和工业应用中快速普及。DeepSeek-R1 虽然推理能力强大,但 600+B 参数量的模型难以在边缘设备、实时系统中使用。
小模型亟待「加持」
这促使业界对参数量低于 70 亿的小型模型开展持续研究,尤其聚焦在复杂数学解题和代码生成等长链推理场景。值得注意的是,借助 DeepSeek-R1 的推理过程,可构建高质量的思维链(CoT)数据,从而显著增强小模型的推理能力。但目前几十亿到百亿参数级别的小模型,在多步骤推理任务(如复杂数学问题和编程题)上仍存在明显瓶颈,难以充分满足此类应用需求。
现有 CoT 数据的困局
基于 DeepSeek-R1 生成 CoT 数据的研究大体分为两条技术路线:
1. 海量数据驱动(Labs 2025;Team 2025c):通过堆叠超大规模 CoT 语料来提升推理能力,但计算与标注成本高、效率低。
2. 精品数据驱动(Ye et al. 2025;Muennighoff et al. 2025):依靠少量高质量样本激活模型潜能,然而受规模限制,性能增益难以持续。
尽管已有工作(Wen et al. 2025a)引入课程学习和拒绝采样以优化训练流程,上述方法普遍忽视了「模型能力 — 数据难度」之间的动态匹配。
这直接引出了两个核心问题:
1、高质量 CoT 语料应如何定义?
2、如何从既有数据中提炼可迁移的「静态经验流」?
全新方法:模型自适应难度分级蒸馏
近期,强化学习之父 Richard Sutton 提出「经验」是下一代超级数据源的思想,将大模型强化学习的本质定义为是一种数据的动态经验流挖掘。基于此,我们团队从数据静态经验流建设的角度出发,提出基于模型自适应问题难易度蒸馏 CoT 语料的方法,显著提升了长 CoT 语料的质量。
该方法围绕「模型 - 数据动态匹配」提出了一条完整的 CoT 构建流程,具有四大创新点:
1. 基于模型的固有推理能力,建立题目难度分级体系,形成可复用的「静态经验」。
2. 依照难度标签,构建覆盖全梯度的自适应题库。
3. 设计符合课程学习思想的难度分布采样策略,确保训练数据与模型能力实时对齐。
4. 借助 DeepSeek-R1,在数学推理与代码生成两大场景批量生成高质量 CoT 语料。
在相同计算预算下,该自适应方案可持续提升不同规模模型的推理性能 —— 以 AIME24 数学竞赛数据集为例,各参数档模型的准确率相比传统「非适配」策略提高 6.66 %–26.7 %(见图 1)。
图 1:基于 LLM 自适应题目难度分级的 CoT 数据构建效果对比
对于不同参数规模的 LLM,采用问题自适应难度分级方法构造的 COT 数据训练的推理模型(左)在数学竞赛数据集 AIME24 上的推理性能始终优于非自适应方法(右)。说明了前者构建的 CoT 数据质量更高,并且找到了适配于模型的静态数据经验流。
这一方法有效地挖掘了 CoT 数据中的静态经验流,并且该静态经验流与模型本身是密切相关的。
方法框架,一图看懂
图 2:基于 LLM 自适应题目难度分级的 CoT 数据生成框架
框架包含三个核心组件:分布构建、LLM 自适应题目难度分级与分布采样,以及 LLM 自适应思维链(CoT)生成。
1. 分布构建(Distribution Construction)
构建两种难度分布策略,作为后续采样的依据:
Option1:基于模型实际表现的分布(Pₑᵥₐₗ)
通过基础 LLM(Sₗₗₘ)在评估数据集(DBₑᵥₐₗ)上的表现动态生成难度分布:
- 正确回答的题目:标记为「简单」(Easy)。
- 错误回答的题目:通过 PRM-Grader(过程奖励模型)进一步分级,根据模型生成答案的推理轨迹质量(0-1 分)映射到 5 个难度等级(分数越低,难度越高)。
Option2:基于课程学习的先验分布(P₆)
人工定义五级难度,遵循「易题多、难题少」的分布原则,权重随难度递增递减:
例如,难度级别 1 的样本数最多,级别 5 最少。
2. LLM 自适应题目难度分级与分布采样
步骤 1:构建自适应题库(DBₐdₐₚₜᵢᵥₑ)
从开源数据集收集原始题目(DBᵣₐw),利用 Sₗₗₘ生成回答并记录推理轨迹。
验证答案正确性:
- 数学推理任务:直接对比模型答案与标准答案。
- 代码生成任务:通过测试用例执行验证代码正确性。
难度分级:
正确题目标记为「简单」,加入题库。
错误题目通过 PRM-Grader 细分为 5 级难度(1-5 级,1 级最难),加入题库。
步骤 2:分布采样(DBₛₐₘₚₗₑ)
根据构建的分布(Pₑᵥₐₗ或 P₆),从自适应题库中按难度比例采样题目
3. LLM 自适应 CoT 生成
- 生成阶段:将采样题目(DBₛₐₘₚₗₑ)输入教师模型(Tₗₗₘ,即 DeepSeek-R1)生成详细推理链(CoT)。
- 验证阶段:通过 Result-Verifier 严格筛选正确 CoT 数据(与步骤 2 的验证方法一致),最终形成高质量数据集 COTₐdₐₚₜᵢᵥₑ。
- 模型训练:利用 COTₐdₐₚₜᵢᵥₑ对基础模型(Sₗₗₘ)进行监督微调(SFT),得到优化后的推理模型(Rₗₗₘ)。
方法的关键创新点:
- 模型自适应难度适配:基于模型实际能力调整题目难度分布,避免「一刀切」的主观分级,构建真正与模型密切绑定的静态数据经验流;
- 轻量化流程:无需复杂课程学习或拒绝采样,仅通过分级与采样即可提升数据质量;
- 多任务兼容性:支持数学推理与代码生成任务,验证方法灵活(答案对比 / 测试用例)。
实验效果:惊喜不断
为了研究我们提出的 CoT 数据的质量效果,我们在不同尺寸和性质的模型上均进行了详细的验证,涵盖的任务包括数学推理任务和代码生成任务。
以下是重要实验结果的详细介绍:
数学推理(MATH500、AIME24/25、GPQA)
- 在 MATH500、AIME24/25、GPQA 等数学基准测试中,采用 2k 自适应 CoT 数据训练的 ZMath 系列模型显著优于基线模型。
- ZMath-32B 在 MATH500 上达到 94.6% 准确率,超过 DeepSeek-Distill-32B(89.8%)和 Sky-32B-Preview(90%);在 AIME24 上提升至 73.33%(基线为 66.67%)。
- ZMath-14B 在 AIME24 上准确率为 50%,远超 phi4-14B(30%),并在 GPQA 上达到 63.13%(phi4-14B 为 54.55%)。
图 3:数学推理实验结果
代码生成(LiveCodeBench)
- ZCode-32B 在 Easy、Medium、Hard 三个难度级别上分别达到 96.06%、75.53%、31.85%,全面优于 DeepSeek-Distill-32B(92.11%、74.92%、30%)。
- ZCode-14B 在 Easy 难度上以 89.96% 显著领先 phi4-14B(72.4%),表明小参数模型通过自适应数据训练也能取得竞争力表现。
图 4:代码生成实验结果
消融实验&分布迁移
当把 32B 模型的难度分布直接套用到 7 B 模型时,后者在 MATH500 数据集上的准确率仅为 92%,低于采用自身难度分布训练得到的 93.2%。结果说明:难度分布必须与目标模型能力动态匹配,自适应分布才是性能提升的关键;同时也表明,静态经验流中真正有价值的经验应当与具体模型紧密对应,而非「一刀切」地跨模型迁移。
图 5:代码生成实验结果
总结与展望
论文提出了一套基于 LLM 自适应难度分级的高质量 CoT 数据生成框架,并通过系统实验验证了其效率、有效性与泛化能力。核心结论如下:
- 高效数据生成
先动态评估模型当前推理能力,再构建匹配的自适应题库,仅凭约 2 k 条高质量 CoT 样本即可显著提升性能,显著降低数据与算力成本。
- 跨任务与参数泛化
在数学推理(AIME 系列)与代码生成(LiveCodeBench)两大场景中均取得领先表现;对 7 B–32 B 不同规模模型均能带来稳定增益。
- 方法论贡献
构建了一套系统化的 CoT 数据生成与评估流程,为资源受限环境下的小参数 LLM 提升链式推理能力提供了新路径,也为「静态经验流」挖掘给出了可复用范式。
未来工作:进一步结合强化学习挖掘深层推理能力,并扩展至通信故障诊断等更复杂的跨领域任务。
#3FS
DeepSeek开源的文件系统,是如何提升大模型效率的?
在 AI 领域里,大模型通常具有百亿甚至数千亿参数,训练和推理过程对计算资源、存储系统和数据访问效率提出了极高要求。
2 月 28 日,DeepSeek 开源了一种高性能分布式文件系统 3FS,官方表示其目的是解决人工智能训练和推理工作负载的挑战。
作为一种并行文件系统,3FS 可以在 180 节点集群中实现 6.6 TiB/s 的聚合读取吞吐量,对于提高 DeepSeek V3、R1 大模型的训练数据预处理、数据集加载、检查点保存/重新加载、嵌入向量搜索和 KVCache 查找等工作的效率有重要帮助。
人们认为,DeepSeek 通过开源 3FS 与 smallpond 等工具,在 AI 基础设施领域树立了新的设计范式。其价值不仅在展现技术实力,更是在驱动核心基础设施创新。
DeepSeek 提出的文件系统是如何运作的,又能如何提高模型效率?最近,来自伊利诺伊大学厄巴纳-香槟分校的在读博士生 Henry Zhu 对 3FS 进行了解读。
以下是博客原文:
什么是 3FS?
3FS(Fire-Flyer File System)是 DeepSeek 在开源发布周期间发布的分布式文件系统,旨在充分利用现代固态硬盘(SSD)和远程直接内存访问(RDMA)网络的全部带宽,能够加速和推动 DeepSeek 平台上所有数据访问操作。
本文将深入探讨什么是分布式文件系统以及 3FS 的运作方式,首先介绍一些背景知识。
什么是分布式文件系统?
分布式文件系统会欺骗应用程序,使其以为它们正在对一个常规的本地文件系统进行通信。这种抽象非常强大:一个实际上分散在 10 台不同机器上的文件,看起来就像一个简单的文件路径,例如 /3fs/stage/notes.txt。
使用分布式文件系统与使用本地文件系统并无二致。
在上图中,我们通过运行 mkdir 和 cat 命令在本地和分布式文件系统上创建了相同的文件夹和文件,命令完全相同。使用分布式文件系统,所有这些细节都被抽象出来,用户只需操作文件即可,无需担心后台涉及多少台机器、有多少网络调用或多少硬盘。
分布式文件系统的优势
与本地存储相比,分布式文件系统主要有两大优势:它们可以处理海量数据(高达 PB 级),并提供超越单机能力的高吞吐量。它具备容错能力(即使一台机器宕机,系统仍能继续运行)和冗余能力(即使一个节点上的数据损坏,其他节点仍可获得原始副本)。
分布式文件系统广泛应用于许多实际应用:
- 并行处理框架(支持 Spark 的 HDFS);
- 带有数据加载器和 check point 的机器学习训练流水线;
- 由 Google Colossus 支持的内部大型代码/数据存储库;
- 旅行等行业应用;
- 照片存储服务等业务。
深入了解 3FS
那么,DeepSeek 开源的 3FS 是如何工作的呢?
它的核心由四种主要节点类型组成:
3FS 中涉及的组件。
这些组件的作用各不相同:
1. Meta – 管理元数据:文件位置、属性、路径等;
2. Mgmtd – 管理服务器控制集群配置:其他节点在哪里、哪些节点处于活动状态以及复制系数;
- 可以将其视为一个路由器,它知道每个节点的地址,并可以帮助节点相互查找。(类似的类比是 NAT hole 中使用的集中式服务器)
3. Storage – 保存物理磁盘上实际文件数据的节点;
4. Client – 与所有其他节点通信以查看和修改文件系统:
- 请求 Mgmtd 发现其他节点
- 请求 Meta 服务器执行文件操作(打开、统计、关闭、符号链接)
- 与存储节点传输数据
现在让我们更详细地了解每个组件。
Mgmtd
Mgmtd 注册
Mgmtd 跟踪集群中正在运行的节点。存储节点和元节点在启动时会注册,并定期发送心跳信号以确认它们仍然处于活动状态。这提供了系统的集中视图,可以立即识别哪些节点处于宕机状态。
管理请求
节点无需与网络中其他所有节点保持连接。相反,它们可以通过查询管理节点来发现节点。虽然这会增加定位节点的额外往返次数,但由于节点发现并不静态的,因此可以降低复杂性。
Mgmtd 链。
此外,Mgmtd 维护分布式算法中不同节点的配置。具体来说,复制链(CRAQ 是一种非常简洁的算法,通过将节点视为链来实现强一致性和容错性。)被建立,其节点作为配置存储在 mgmtd 中。
Meta
Meta 概览。
元节点比 mgmtd 稍微复杂一些。客户端通过 RPC 调用与其通信。元服务器在元存储上执行典型的文件系统操作(打开、创建、统计、取消链接)。文件元数据驻留在 inode 中,存储大小、权限、所有者和时间戳等属性。DirEntry 对象将路径映射到 inode,单个文件可以有多个 DirEntry(类似于符号链接)。inode 和 DirEntry 都存储在 FoundationDB 中。
有人可能想知道 founationdb 的键是什么样的?inode:「INOD」+ inode id,dir entry:「DENT」+ nodeid + path,使用 transaction 进行幂等操作。会话管理器跟踪打开的文件,并将文件会话存储在 FoundationDB 中。如果客户端断开连接但未关闭文件,会话管理器将启动文件同步。文件删除请求排队到垃圾收集器,垃圾收集器会在删除目录条目和 inode 之前从存储节点中删除数据。
Storage
存储概览。
存储节点的主要功能是通过将数据分解成块来管理物理存储上的数据:
Rust 有一个名为 ChunkStore 的旧版块管理器,是用 C++ 编写的。我不太明白为什么是用 Rust,可能是因为它用起来很有趣,而且提供了更安全的保障,可以跟踪磁盘存储块。
- Chunk 代表一块物理磁盘,并跟踪其元数据(ID、大小、磁盘偏移量、物理磁盘、校验和、版本等)。这是所有其他结构用来跟踪数据块的最原始数据结构。
- Chunk 引擎不允许用户直接与 Chunk 交互,因为这会增加引擎使用的复杂性。引擎接口提供了一些操作,为用户提供了一种严格清晰的与引擎交互的方式(查找、分配、提交、元数据等)。
- 默认情况下,所有这些数据都存储在 LevelDB 中,前缀字节表示操作类型(查询元数据),并以 Chunk ID 作为键。
不同的 Worker 使用块引擎来维护物理存储
- AllocateWorker 在块引擎中分配新的块
- PunchHoleWorker 回收不再使用的块
- AioReadWorker 处理对块的读取请求,并将读取请求放入 io_uring 队列,提交并等待完成
起初,我感到很惊讶。块引擎并不对实际的物理磁盘执行操作,它实际上只管理元数据。这样做的原因之一可能是为了让 ChunkEngine 实现保持精简,让它只负责管理元数据。
存储节点需要知道如何将写入操作转发到 CRAQ 链中的下一个目标。
目前,只需知道写入操作需要转发到其他节点即可。
- 目标由多个块组成(可以将其视为包含不同块的逻辑存储)。
- 一个链由多个目标组成(通常跨越多个节点)。
- 存储节点向 mgmtd 服务器查询其他节点的链,以及该链中写入操作需要转发到的相应目标(节点)。
CRAQ
CRAQ(Chain Replication with Apportioned Queries)是一种实现强一致性和线性一致性的协议。它是确保数据块容错的核心机制。这里将解释 CRAQ 的工作原理,并展示其在 3FS 中的实现。
Craq 写入传播。
写入操作从头部开始。在我们的示例中,我们将 name=henry 写入系统。随着写入操作沿链向下移动,每个条目都会被标记为「脏」,并附带一个版本号。脏条目不可安全读取。一旦写入操作到达尾部,它就会被提交并标记为「干净」。
Craq 写入提交。
随着提交消息从尾部向头反向传播,写入操作将变得干净。每个节点提交该条目并将其标记为干净。
Craq clean read
对于读取来说,过程很简单:如果对象是干净的,则立即将其返回给客户端。
Craq dirty read
挑战发生在脏对象上。每个链都会跟踪脏版本和干净版本。由于尾部始终包含最新提交的数据,因此副本会查询尾部以获取最新提交的对象,从而确保强一致性。
CRAQ 性能
CRAQ 的读写性能因工作负载而异。写入吞吐量和延迟受链中最慢节点的限制,因为写入必须按顺序处理每个节点。例如,在 Zipfian 工作负载(其中频繁访问的数据占主导地位)中,读取性能会受到影响,因为对象可能很脏,从而迫使查询到尾部节点。这会造成瓶颈,因为尾部必须处理大多数读取请求。
如何在 3FS 中使用 CRAQ
存储采用条带化,CRAQ 在其上运行。
在本例中,集群由 5 个节点组成,每个节点配备 5 个 SSD。存储目标复制到 3 个节点,旨在避免数据重叠,从而避免节点故障大幅影响整体吞吐量。
考虑一个极端场景,所有链都部署在节点 1、2、3 上。如果节点 1 发生故障,分布式系统将损失总吞吐量的 1/3,而不是上图所示的 1/5。3FS 设计说明中提供了一个示例,并进行了更深入的解释。CRAQ 在顶层运行,管理头、中、尾节点。
3FS 默认采用强一致性读取。写入操作从头到尾,再从头到尾,吞吐量受最慢节点的限制,延迟由所有链节点的总延迟决定。
不同复制协议比较表。
如上表所示,在常见情况下,与其他协议和系统相比,CRAQ 以高写入延迟为代价,实现了可扩展的低延迟读取。
其他分布式文件系统
这时候有人可能会问了:这种架构与其他分布式文件系统有什么不同?从高层次来看,这些组件很常见,几乎每个分布式系统中都会出现客户端、元数据、存储和管理节点的概念。
区别在于其实际适用性和实际实现:
- 它擅长处理哪些工作负载
- 它的调优灵活性
- 部署简便性
- 吞吐量扩展能力
- 在服务等级目标 (SLO) 内保持延迟
- 可靠性
以及决定其可用性的更精细的技术细节:
- 存在哪些瓶颈
- 如何管理瓶颈
- 它的锁定方法(或不使用锁定方法)
- 采用的具体数据结构
- 软件设计所针对的硬件
- 使用哪种容错算法或纠删码
考虑到这一点,我想深入分析一下这个相对较新的开源分布式文件系统的性能。分布式文件系统的开发具有挑战性,目前的基准测试相当有限,我们也还没有将 3FS 与单节点系统和其他分布式文件系统的比较,因此很难评估它的性能。
还有一些问题是值得探讨的:
- DeepSeek 的一些说法是否成立,尤其是关于 FUSE 瓶颈的说法?
- 我们能以某种方式复现他们的性能图吗?
- 在什么情况下性能会下降?
- 系统的瓶颈是什么(CPU/内存/磁盘/网络)?
- 这个文件系统在哪些类型的工作负载下表现优异?
- 与其他分布式文件系统相比如何?
- 它如何解决现有系统面临的问题?
- 我能对系统进行一些改进吗?
在本系列文章的其余部分中,作者将经历做出初步假设、测试它们以及从差异中学习的过程,以更深入地了解 3FS 的实际表现。
参考原文:
https://maknee.github.io/blog/2025/3FS-Performance-Journal-1/
#NotebookLM
谷歌NotebookLM终于说中文了!这可是最火的大模型播客产品
NotebookLM 正在变成谷歌 AI 路线里最靠谱的选手之一:现在除了支持中文播报,还要上移动 App,变身日常学习办公神器。
能将音频源转化为引人入胜、类似播客的对话,NotebookLM 自从去年推出开始,就圈粉无数。
数天前,备受大家喜爱的这款大模型产品终于支持中文播客了!这一功能的推出标志着NotebookLM向真正的多语言AI知识助手又迈进一步。工具链接:https://notebooklm.google.com/作为谷歌旗下 AI 文档助手,NotebookLM 有不少功能,包括摘要、时间线等常规内容,还有互动脑图。
但真正让它出圈的还是音频概览( Audio Overviews )功能 —— 上传一些文本、网页、视频,Audio Overviews 就能把它们变成一段有主持人、有对话、有互动、有情绪起伏的 AI 播客。 据说现在 10 个 NotebookLM 用户,恨不得有 9 个人都在使用这个功能。虽说是神器,很多国内用户抱怨听不了中文播客也是白搭。等了大半年,Audio Overviews 终于支持超过 50 种语言,包括中文。
仅需在「设置」的「输出语言」中找到中文,选定即可。我们也简单体验了一把。为了比较分析两位女导演,我们上传了 BBC 对奥斯卡获奖导演赵婷的专访(英文视频)和国内关于邵艺辉的一些采访(中文文本)。
几分钟后,就得到了一个时长 8 分钟的中文播客节目。
電影世界的多元視角與女性力量
内容上,AI 大模型对两位导演的采访信息进行了整理:赵婷讲了自己在好莱坞的经历、对边缘人群的关注、以及她对行业结构的思考;邵艺辉则谈到女性题材、两性关系以及她如何在片场营造友善平等的氛围。访谈共同展现了两位导演在各自文化背景下对电影艺术的独特视角和对社会议题的关注。AI 总结出的关键词、对比点还比较准,而且播客中的「主持人」是一男一女两位 AI :声音听起来很自然,比微信读书的「听书」好听太多;说话有停顿、有插话,而且很口语化,这些都让对话显得更加自然逼真。当然,你还可以继续提高材料来源多元性。例如,有关宫崎骏的最新消息很多都是日文,就算不懂日文也可以通过 AI 播客快速 get 报道内容。
这一次,我们选择了台湾腔中文播报(繁体中文),听听效果如何:
聊聊宫崎骏
进一步讲,哪怕是英文、法语、日文、西班牙语等,只要是产品覆盖到的语言,最后都可以变成中文节目,破译其中内容。作为谷歌目前最受欢迎的 AI 产品,NotebookLM 底层是谷歌 Gemini 2.5 Flash ( thinking model ),虽然不是最强的 Pro 版本,但也能支持最大 200MB 的上传内容,一次性处理 50 万个 token 上下文,足以扮演一位「可查询、可对话」的 AI 知识专家。
重点是:它只围绕你上传的资料说话,引用明确、查证方便,不会满嘴跑火车。相比大多数 AI 助手,它的实用性更落地——不抢你流程,不乱猜内容,就是帮你梳理信息、提升效率。
目前 NotebookLM 依然只能通过网页使用,虽然手机浏览器能打开,但体验不太行。好消息是,谷歌已经官宣即将上线安卓 App,并已开放 Play 商店页面预注册。 iOS 版也已上架预注册,预计会在 5 月 20 日的 Google I/O 大会上正式发布。
包括音频概览在内的多项功能都将在 App 中支持,甚至还有加入 AI 对话功能,让你能和 AI 主持人互动。但注意,高阶功能(比如音频概览)可能只面向 Gemini Advanced($20/月)订阅用户开放。免费用户估计每天只有一两次薅羊毛的机会。
#成熟的编程智能体,已经学会升级自己的系统了
编程智能体,几乎成为了 2025 年最热门的话题之一。不管是学术机构还是工业界,都在寻找更高效的落地路径。
机器学习领域的历史经验表明,手工设计的解决方案最终会被学习到的解决方案所取代。我们好奇一个问题:智能体本身是否可以通过发现新的提示方案或工具,无需人工设计和实施,就自主修改和改进自己的代码?
2024 年,《Automated Design of Agentic Systems》(Hu et al., 2024) 一文率先尝试了使用元智能体来优化智能体实现,将智能体系统自动设计(ADAS)这一领域往前推了一步。不过,该研究并未探索「自我改进」,因为其中有两个独立的智能体:执行任务的目标智能体和改进目标智能体的元智能体。
而来自布里斯托大学和 iGent AI 的研究者认为,完全自我参照式的元智能体编程方式在今天是可实现的,并提供了一种合理的替代方案。
- 论文标题:A SELF-IMPROVING CODING AGENT
- 论文链接:https://arxiv.org/pdf/2504.15228
- 代码地址:https://github.com/MaximeRobeyns/self_improving_
具体来说,这项研究贡献如下:
- 自我改进编码智能体(SICA)消除了元智能体和目标智能体之间的区别,能够编辑自己的代码库,在成本、速度和基准性能方面进行自我改进。
- 自我参照智能体可有效改进自身的实现。研究者发现,即使考虑到安全限制和资源效率,在 SWE Bench 验证的随机子集上,性能也能提高 17% 到 53%。
- 研究者与社区分享了自我改进编码智能体(SICA)的实现。SICA 是用标准 Python 实现的,没有特定领域的语言,它为构建新的 SICA 系统提供了一个参考智能体框架,也为那些寻求在工具使用和其他智能体任务方面对 LLM 进行后训练的人提供了一个参考智能体框架。
方法概览
SICA 的主要运行循环类似于 Hu et al. (2024) 的 ADAS 循环。特别是,SICA 和 ADAS 都保留了以前智能体的档案及其基准结果。
第一步,SICA 从存档中选取到目前为止表现最好的智能体作为元智能体,指示元智能体查看存档,确定改进方案并加以实施。
算法 1 展示了这一高级方案:
请注意,这与 ADAS 不同,ADAS 有一个固定的元智能体,因此不会从档案中选择元智能体(ADAS 中的档案是目标智能体档案,而不是元智能体档案)。
其次,ADAS 和 SICA 都会在一组评估基准上对新智能体进行评估,并存储评估结果。
研究者用一个效用函数来定义性能「最佳」的智能体,该函数包含了一个优秀智能体的共同期望值:标准化基准性能分数 p_score ∈ [0,1]、以秒为单位的挂钟时间 p_time,以及美元成本 p_cost。基本效用的计算公式为
其中,研究者将系数设为 w_score = 0.5、w_cost = 0.25 和 w_time = 0.25。此处将每个问题的最差成本设定为 10 美元,并规定 300 秒的超时时间,超时后将取消智能体。为了对超时前所做的工作给予部分奖励,按以下方法计算最终效用,超时惩罚为 τ = 0.5:
需要注意的是,由于不进行任何权重更新,这个数字分数只用于挑选下一个元智能体以及下一次迭代的基础智能体。
首先介绍初始编码智能体,然后介绍基准运行框架,以及该框架如何自然而然地允许我们创建一个自我参照任务(即改进编码智能体)。
智能体上下文的结构至关重要,它包含打开的文件内容等,而不仅仅是提示。在初始编码智能体中,上下文结构如图 3 所示。
首先呈现的是包含智能体定义的系统提示,列出了智能体可用工具的定义以及可调用的子智能体。系统提示的最后是系统信息,例如如何跳出智能体循环并返回调用流程的说明。
接下来是「核心提示」,它被设置为聊天模板格式中的第一条用户信息,包含呼叫者指定的要处理的问题陈述(呼叫者可能是调用智能体的用户,也可能是呼叫子智能体的智能体)。在这里,研究者还插入了智能体已打开文件的视图以及当前工作目录的表示。
最后,LLM 智能体上下文的其余部分是运行助理信息。其中包含对问题的一连串推理、工具调用及其响应、子智能体调用及其响应,以及来自异步监督系统的任何通知或评论。
LLM 上下文以这种方式布局,允许添加新内容,从而保留 KV 缓存,以减少工具调用之间的延迟和成本。对于基础智能体,此处采用了一种简单的方案,即文件编辑内容以差异形式添加,并在累积到一定数量后定期重新合并到陈旧文件视图中。智能体可以编写更复杂的 KV 缓存保存方案,以降低成本。
实验结果
研究者首先展示了在基准集中包含相对长周期任务的运行,选取了 SWE Bench Verified,包括测试问题分解、代码导航以及快速高效的文件编辑,研究者从中选择了 50 个问题的固定随机子集;他们还从 LiveCodeBench 中随机抽取了 50 个问题,这些问题类似于竞技编程,通常包含更多理论推理。此外,研究者还选取了两个「合成」基准任务示例,它们完全是在智能体的代码库中定义和策划的。
大多数智能体中使用 Sonnet 3.5 (v2) (Anthropic) 运行智能体系统,只有一个「推理智能体」使用 o3 mini。结果如图 3 所示,更详细的迭代级性能数据见表 1。
结果数据显示了令人鼓舞的进展。在文件编辑基准测试中,智能体最初只具备覆盖文件的能力,这不仅速度慢,而且 token 效率低下,但它很快就实现了基于差异和范围的自称「智能」的编辑工具;在符号导航任务中,智能体在第 9 次迭代时实施了基于 AST 的简单符号定位器(也许是利用了基准测试主要基于 Python 的事实),取得了良好的改进,这也反映在其他任务中。LiveCodeBench 的得分也有细微提高,但不如其他一些基准测试明显。
研究者还评估了自我参照智能体系统在提高推理能力较强的领域的任务性能方面的有效性。他们使用基准集中的两个问题解答任务进行了另一项实验: 图 4 显示了实验结果。这里的结果显示改进较少,并突出了基础模型和「脚手架系统」之间的重要相互作用。
图 4 中迭代 0 的基础智能体系统使用 Sonnet 3.5,「推理」子智能体使用 o3-mini。o3-mini 模型本身在 AIME 和 GPQA Diamond 上的得分分别为 87% 和 79%,具有「高」推理能力,而整个智能体系统在这两个基准测试中的平均得分为 76%。
通过观察轨迹,研究者发现,在许多运行中,主智能体只是将问题委托给基于 o3-mini 的推理智能体,并没有充分利用智能体系统的全部能力。对于 o1、o3-mini 或 DeepSeek-R1 等「推理模型」,研究者怀疑加入旨在诱导推理行为的粗糙组件(如图 4 中迭代 4 和 6 中的组件)实际上可能会打断在智能体系统之外训练的推理模型的推理思维链,从而导致性能下降。
#LUFFY(Learning to reason Under oFF-policY guidance)
边学边练,推理觉醒:LUFFY让强化学习即学即用!
破解 “只学不练” 与 “只练不学” 的难题
想象你准备参加一场高水平的数学竞赛。如果你只是反复背诵往年题目的标准答案,从不亲自动手解题,那么一旦遇到新题型,很可能束手无策;反过来,如果你闭门造车,只凭自己反复试错而从不参考老师和高手的解题经验,进步又会异常缓慢。这就好比 AI 模型训练中长期存在的两种极端:「模仿学习」 只顾照搬示范却缺乏自我实践,「强化学习」 一味自我探索却不借鉴现有经验。
这两种「只学不练」和「只练不学」的策略各有弊端:前者往往学得快但泛化差,后者可能探索勤但效率低。那么,有没有两全其美的办法,让模型既能借鉴高手经验又能保持自主探索?最近,上海 AI 实验室联合西湖大学、南京大学和香港中文大学的研究团队提出了一种全新的强化学习范式:LUFFY(Learning to reason Under oFF-policY guidance)。
- 论文链接:https://arxiv.org/abs/2504.14945
- 代码仓库:https://github.com/ElliottYan/LUFFY
LUFFY 的核心理念是:在训练过程中让模型同时借助高手的推理轨迹进行学习(离策略示范),又能继续独立地试错探索(在线推理),从而实现 「边学边练,学以致用」的目标。实验显示,LUFFY 在多个数学推理挑战任务中实现了平均 + 7.0 分的性能飞跃,并在分布外任务上展现出显著的泛化能力。
图表 1. 在六项竞赛级数学推理基准上的整体表现。在 AIME 2024、AIME 2025、AMC、MATH-500、Minerva Math 和 OlympiadBench 六个高难度基准测试中,LUFFY 取得了平均 49.6% 的准确率,较现有 Zero-RL 方法实现了超过 + 7.0 分的显著性能提升。
该工作一经发布,便登上 Hugging Face 社区的 Daily Papers 热榜第一,并在权威学术论坛 alphaXiv 上引起热烈讨论。
模仿学习与强化学习的两难困境
当前主流的大模型推理训练方法可分为两类:
- 模仿学习(SFT):模型参考专家解题轨迹进行学习,相当于「看答案抄题」,虽然能快速学习已知方法,但遇到新题可能难以适应,缺乏自主能力。
图表 2. 模仿学习(SFT):模仿专家模型生成的高质量推理轨迹。
- 强化学习(Zero-RL):模型通过不断试错获得奖励反馈并优化自身策略,虽然具备一定泛化能力,但如果起点策略弱,容易陷入局部最优,难以突破上限。
图表 3. 强化学习:与环境(如验证器)的交互反馈,不断优化自身策略。
这两种方法各有优势,却也各有短板。LUFFY 的提出,正是为了打破这种二元对立,融合两者优点,解决模型「既学得深,又练得广」的核心问题。
LUFFY 的直觉与机制:高手示范,模型探索
LUFFY 的关键思想是:在强化学习过程中引入 「离策略指导」,即使用来自更强模型或专家的推理轨迹来作为引导,这区别于当前主流的仅使用模型自身策略优化自己的主流强化学习范式。
这就像一个学生,一边借助老师提供的经典例题,一边继续独立完成练习题。在 LUFFY 中,模型通过混合使用两类轨迹进行训练:一是自己当前策略下生成的在线推理过程(on-policy),二是从强者那里借来的离线示范(off-policy)。这两类轨迹一起用于策略优化,让模型做到「边学边练」。
图表 4. LUFFY:边学边练的推理学习框架。LUFFY 在强化学习框架中引入外部优质推理轨迹,通过 「策略塑形」 机制,融合自身尝试(on-policy)与专家示范(off-policy)的优势。当模型自身推理失败时,它从专家示范中学习关键步骤;而当自身表现优异时,则保持独立探索。该机制在保持探索能力的同时,引导模型聚焦于低概率但关键的行动,从而实现推理能力的持续进化与泛化。
技术亮点:混合策略与策略塑形
LUFFY 的实现依托于 GRPO 算法框架,并围绕两项核心机制展开:
1. 混合策略训练:同时利用在线轨迹和离线示范,引导模型向高奖励动作靠拢,同时保留自身有效尝试。
2. 策略塑形函数(图 6):通过非线性加权机制强化对关键步骤的学习,防止模型过早收敛、策略熵降低,保持持续探索。图 5 展示了策略塑形对梯度更新的非线性权重以及对模型探索的影响。
图表 5. 策略塑形在 LUFFY 中的作用效果。左图:训练过程中的策略熵对比。中图:不同方法下损失函数基于决策概率的权重分配。右图:基于决策概率的梯度加权情况对比。LUFFY 通过非线性权重提升了对罕见(低概率)但重要行为的梯度响应,进而引导模型更有效地从 off-policy 示范中习得深层推理模式。
图表 6. 策略塑形函数 f () 可被看作正则约束下的重要性采样,鼓励模型关注低概率、但可能重要的行为决策。
实验结果:即学即练,举一反三
图表 7. 训练动态分析:训练初期,LUFFY 模型逐步适应外部指导,推理路径长度逐渐接近离策略轨迹,表现出有效的模仿与调整。同时,在整个训练过程中,LUFFY 始终保持了较高的策略熵,展现出持续探索的能力。而对比来看,传统 on-policy RL 的熵在早期迅速收敛,探索能力下降。
在六个公开数学推理基准中,LUFFY 相较于现有 Zero-RL 方法,平均提升达 + 7.0 分,并且在多个分布外测试集上也实现了领先表现。
图表 8. LUFFY 在六项高难度数学推理基准上的性能表现。
图表 9. 分布外测试集的性能表现(ARC-c,GPQA-diamond 和 MMLU-Pro)。
在其他模型,如更小的 1.5B 模型与指令对齐后的 Instruct 模型,LUFFY 也表现出显著优势:
图表 10. LUFFY 在 Qwen2.5-Math-1.5B 上的性能表现。
图表 11. LUFFY 在 Qwen2.5-Instruct-7B 上的性能表现。
不仅如此,LUFFY 在「推理路径长度」上也明显优于 SFT。在相同准确率下,LUFFY 能用更短的推理过程达成正确答案,减少无效展开;而在测试时调高温度以增加探索强度时,LUFFY 的性能依然保持稳定,而 SFT 则出现明显下降。
图表 12. 推理长度对比。
图表 13. 测试时探索能力对比。
展望:通用推理的新起点
LUFFY 提出了一种高效、稳定、具备泛化能力的推理训练方式,兼顾学习与实践,让模型真正掌握推理策略的内在逻辑。未来,该框架可扩展至代码生成、科学问答、自动规划等需要复杂推理的 AI 任务中,构建更具通用性和自主性的智能体。
目前项目已在 GitHub 开源,欢迎有兴趣的同学了解、复现或拓展。
作者介绍:
颜建昊,西湖大学张岳老师的博士三年级学生。主要研究兴趣在基于大模型的后训练技术,包括强化学习、在线学习以及模型编辑等。在读博之前,颜建昊曾在微信 AI 任研究员,曾赢得 WMT 机器翻译比赛。
李雅夫博士,现任上海人工智能实验室研究员,研究方向涵盖大语言模型推理、可信人工智能与机器翻译。他于浙江大学与西湖大学联合培养攻读博士学位,先后在爱丁堡大学与武汉大学获得人工智能硕士和电子信息工程学士学位。李雅夫博士在 ACL、EMNLP、ICLR 等顶级会议上发表多项研究成果,引用逾 1800 次,曾荣获 ACL 2023 最佳论文提名,并担任 ACL 领域主席及多个国际顶会与期刊的审稿人。博士期间,他曾获得国家奖学金,入选腾讯犀牛鸟精英人才计划并获得杰出奖学金。
#大模型也很任性,知道最优路径偏要撞南墙
该研究对 LLM 常见的失败模式贪婪性、频率偏差和知 - 行差距,进行了深入研究。
大语言模型(LLMs)的成功激发了人们对各种智能体的兴趣。将 LLM 用于智能体的一个关键假设是,LLMs 利用常识和思维链(Chain-of-Thought, CoT)进行推理,从而智能体可以有效地探索并高效地解决复杂领域的问题。
然而,LLM 智能体存在次优探索和知 - 行差距(knowing-doing gap)的问题,即无法有效地将模型中的知识转化为行动。
本文,来自谷歌 DeepMind 的研究者系统地研究了为什么 LLM 在决策场景中表现次优的原因。特别是,本文深入研究了三种常见的失败模式:贪婪性、频率偏差和知 - 行差距。
在此基础上,本文提出通过强化学习对自动生成的 CoT 推理过程进行微调,以缓解这些不足。实验表明 RL 微调能有效提升 LLMs 的决策能力 —— 既增强了智能体探索性行为,又缩小了知 - 行差距。
- 论文标题: LLMs are Greedy Agents: Effects of RL Fine-tuning on Decision-Making Abilities
- 论文地址:https://www.alphaxiv.org/abs/2504.16078
方法介绍
本文系统性地分析了中小规模 LLMs 存在的三种典型缺陷:贪婪性策略、频率偏差以及知行差距。分析表明,由于 LLMs 过早陷入贪婪动作选择策略,导致动作覆盖率停滞(最高达 55% 未探索),最终性能持续低于最优水平。
具体而言,本文发现小规模 LLMs(2B)倾向于机械复制上下文中的高频动作(无视其奖励差异),这种现象被定义为频率偏差。
相比之下,大规模 LLMs(27B)虽能显著减弱频率偏差,但依旧维持贪婪行为。
同样值得注意的是,本文通过量化知 - 行差距发现:LLMs 虽能正确理解任务要求,却因执着于贪婪动作而无法有效执行所知方案。
为克服这些缺陷,本文提出在自动生成思维链(CoT)推理的基础上进行强化学习微调方法(RLFT)。
RLFT 方法依赖于从环境交互中获得的奖励,对自生成的 CoT 原理进行微调。在 RLFT 过程中,模型会学习迭代地优化其推理过程,从而倾向于选择能够带来更高奖励的 CoT 模式和动作(参见图 1)。本文方法更专注于决策场景。
上下文表示:在步骤 t 时,输入 Token 包括输入指令
,输出指令
和最近的交互历史
。历史表示包含最近 C 个状态、动作和奖励的轨迹
。
微调目标:本文使用 Schulman 等人引入的裁剪目标进行微调,并对参考策略
进行额外的 KL 约束:
实验结果
比较模型:实验比较了 Gemma2 模型的三种尺寸大小:2B、9B 和 27B 。
环境:多臂老虎机(MAB,Multi-Armed Bandit)以及井字棋游戏。
为什么 LLM 在决策方面表现不佳?
先前的研究发现,LLM 智能体在交互环境中表现欠佳,且探索不足。因此,本文首先研究模型表现欠佳的原因,并确定了三种常见的故障模式:(1) 贪婪,(2) 频率偏差,以及 (3) 知 - 行差距。发现三种故障模式在各个模型尺寸上均持续存在。
贪婪是第一个也是最普遍的故障模式,其特征是 LLM 过度偏向于迄今为止看到的一小部分操作中表现最佳的操作。为了说明这种故障模式,本文展示了 Gemma2 2B/9B/27B 在启用和禁用 CoT 的情况下,在 64 个 MAB(包含 10 个和 20 个分支)上,并且在 50 个交互步骤中实现的平均操作覆盖率(见图 3 a 和 b)。
结果显示模型过早地采用贪婪策略,导致动作覆盖率在 10 步之后停滞不前。增加分支数量会使贪婪更加明显,最大的模型仅覆盖了所有动作的 45%。因此,尽管这些模型比随机智能体有显著改进(参见图 3c),但与 UCB ( Upper-confidence Bound )相比,遗憾值仍然很高。
本文探索的下一个常见故障模式是频率偏差,其特点是模型重复选择上下文中出现频率最高的动作,即使该动作的奖励很低。
结果显示,Gemma2 2B 严重受到重复动作的影响,随着重复次数的增加,熵值不断降低(见图 4a)。相反,27B 模型摆脱了频率偏差(见图 4c)。事实上,对于 2B 来说,频率偏差随着重复次数的增加而不断增加。虽然 27B 摆脱了频率偏差,但它严重受到贪婪的影响。
知 - 行差距。智能体清楚地知道如何解决任务,所有推理中有 87% 是正确的(见图 5)。然而,即使对于正确计算的推理,模型也经常会选择贪婪动作(58%)而不是最优动作(21%)。这种差异凸显了 LLM 在了解算法的情况下采取行动不一的缺陷。
RL 微调的有效性
接下来,本文研究 RLFT 对累积遗憾的影响(相对于最优策略),以及它是否能缓解这些故障模式。
结果显示 RLFT 降低了遗憾值。在各种环境中,LLM 的表现明显优于随机基线,并且 RLFT 降低了 2B 和 9B 的遗憾值。
此外,RLFT 可缓解贪婪性,通过 RLFT,智能体学会了探索,从而缓解了贪婪性。