avatar

Wang's Blog

Be Open, Share Knowledge, Keep Learning

  • 首页
  • 数理基础
  • 宇宙机
  • LLM
  • 管理与经济
  • 游戏
Home 增强SLMs的Tool use能力
文章

增强SLMs的Tool use能力

Posted 2025-09-28 Updated 2025-09- 28
By Administrator
17~22 min read

附录

主要记录自己在阅读论文、技术博客过程中见到的概念、现象。

基于人类反馈的强化学习(RLHF)和带可验证奖励的强化学习(RLVR)之间的区别(两种范式!)

两者之间最大的区别在于奖励信号的来源和性质:

  • RLHF (Reinforcement Learning from Human Feedback):奖励来自于人类主观的偏好。

    • 核心思想是通过学习人类的偏好来训练一个“奖励模型”,然后用这个奖励模型作为指导,通过强化学习来优化语言模型。

    • 收集人类偏好数据->训练奖励模型->强化学习进行微调

    • 本质上是为了解决没有明确、客观正确答案的问题。

  • RLVR (Reinforcement Learning with Verifiable Rewards):奖励来自于客观、可自动验证的规则或事实。

    • 核心思想是依赖于客观、可通过程序自动验证的奖励,而不是主观的人类偏好。不需要训练一个单独的奖励模型,而是直接定义一个可验证的奖励函数 (Verifiable Reward Function)。这个函数能够自动、客观地判断模型生成的答案是否“正确”。

    • 模型针对问题生成一个答案(包含解题步骤)->一个独立的验证器检测答案(单元测试、数学求解器/计算器、事实核查数据库)->根据验证结果给予奖励->强化学习算法优化模型

    • 本质上是为了解决那些有明确、客观对错标准的任务。追求的是正确性而不是主观上的好。

什么是探索空间(Exploration Space)

在强化学习的语境中,探索空间(Exploration Space)是指一个智能体(Agent)为了完成一个任务,所有可能采取的“行动序列”的集合。

  • 智能体 (Agent):在我们的讨论中,就是语言模型。

  • 行动 (Action):对于语言模型来说,一个“行动”通常是生成下一个词或标记(token)。

  • 行动序列 (Action Sequence):模型生成的一整个句子、段落或解题步骤。

  • 任务 (Task):回答一个问题、写一首诗、或者解决一个数学题。

对于一个语言模型来说,探索空间就是它为了回答一个给定的提示(Prompt),可能生成的所有文本输出的集合。

RLVR 对较小的 k 在 pass@k 上表现出性能提升,但对于较大的 k,其效果会下降

pass@k 是一个评测指标:它用来衡量模型解决问题(特别是编程或数学题)的能力。它的意思是:让模型对同一个问题尝试生成 k 个不同的答案,只要其中有至少一个答案是正确的,就算通过(pass)

  • 小k的pass@k(例如 pass@1):

    • 衡量模型“首选答案”的准确率

    • pass@1意味着模型只有一次机会,它必须在第一次尝试时就给出正确答案

    • pass@1的提升,意味着模型变得更可靠、更精确了。它对自己最有信心的那条推理路径,打磨得越来越正确

  • 大 k 的 pass@k (例如 pass@100):

    • 这衡量的是模型的“解题思路的多样性”或“知识广度”。

    • pass@100 意味着模型有一百次机会,只要在这一百个五花八门的答案里能凑出一个正确的就行。

    • 这个指标的高低,取决于模型是否知道足够多的、可能通往正确答案的路径。

这句话说明,RLVR的作用机制是:在模型已有的多种解题思路中,找到那个最可能正确的,并通过奖励不断强化它,让它成为模型的首选。它的核心作用,是在模型现有的知识范围内,通过奖励信号打磨出一条最优的推理路径,并砍掉那些没用的、错误的探索方向,从而让模型的思考过程更聚焦、更可靠。

我们提出使用熵变化率——一个衡量可探索空间的直观指标——来平衡‘召回’(Recall)和‘扩展’(Extend)阶段,从而解决小模型在强化学习中探索空间不足的问题,以及蒸馏过程中固有的冗余和复杂性问题,最终实现两者的有效互补。

如何理解“熵”在语言模型中的含义,以及它如何与“探索空间”和训练阶段联系起来。

  • “熵”(Entropy)表示模型的不确定性

  • “熵变化率”(Entropy Variation Ratio)衡量模型在生成一个完整回答的过程中,其不确定性(熵)的变化剧烈程度

比如模型在求解数学题:

  1. 开始解题时:可能会有很多种起手方式,模型不确定哪种最好,此时熵比较高。

  2. 进入计算步骤:当它遵循一条固定的计算逻辑时,每一步都相对确定,此时熵会降低。

  3. 遇到一个决策点(比如“接下来是用方法A还是方法B?”):熵可能会再次升高。

  4. 得出最终答案:在写下“所以,最终答案是...”之后,模型非常确定答案是什么,熵会骤降到极低水平。

熵变化率就是捕捉这种“高-低-高-低”的波动模式。一个健康的、高效的推理过程,其熵应该是剧烈变化的,而不是一马平川。熵变化率直观地反映了模型在推理过程中“思考”的深度和广度。

  • 高熵变化率:模型在生成过程中,经历了从“迷茫探索”到“笃定执行”的多次切换。它在关键节点(高熵处)思考了多种可能性,然后在确定路径后(低熵处)又能果断执行。

    • 表明模型面对的是一个广阔且有价值的探索空间。

  • 低熵变化率:模型在生成过程中,其不确定性水平一直很稳定

    • 一直很低:说明模型在“背答案”,它对每一步都过于自信,完全没有思考其他可能性。这往往是过度拟合SFT数据(蒸馏)的症状,导致了“冗余和复杂性”(模型只是在机械地复现教师模型的每一个字)。

    • 一直很高:说明模型全程“一脸懵”,从头到尾都不知道自己在说什么,毫无头绪。

    • 表明模型的探索空间要么及其狭窄(只会背书),要么毫无价值(胡言乱语)。

LLM
License:  CC BY 4.0
Share

Further Reading

Sep 28, 2025

代码阅读与运行1

RLHF 试着运行了一份非常基础的RLHF代码,来源于:https://github.com/lansinuote/Simple_RLHF_tiny B站上有对应视频 📁项目结构 Simple_RLHF_tiny-main/ ├── 🔧 核心代码文件 │ ├── util.py # 工具类:To

Sep 28, 2025

大模型入门(6)——Agent、MCP、FunctionCall

内容来自B站视频:【10分钟讲清楚 Prompt, Agent, MCP 是什么】https://www.bilibili.com/video/BV1aeLqzUE6L?vd_source=a704063646d181fb265230f6b49cca81 System Prompt和User Pro

Sep 28, 2025

代码阅读与运行2

这次运行的是大名鼎鼎的OpenRLHF 遇到的一些问题 自己的设备是colab提供的A100 GPU,显存40GB 安装的过程没有太大问题,都能顺利解决,安装之后按照README的顺序试着用以下命令启动SFT的训练(提供的脚本还没试过) !deepspeed --module openrlhf.cl

OLDER

大模型入门(7)——RAG

NEWER

MiniMind项目复现记录

Recently Updated

  • C++
  • Hello World
  • 数据仓库复习整理
  • 代码阅读与运行1
  • 大模型入门(6)——Agent、MCP、FunctionCall

Trending Tags

Halo 前端 强化学习 Python obsidian

Contents

©2026 Wang's Blog. Some rights reserved.

Using the Halo theme Chirpy