可验证奖励的强化学习(RLVR)

`` `` ``可验证奖励的强化学习(RLVR)`` `` `` `` `` `` `
` `` `
` `
` `
` `
` `

` ``可验证奖励的强化学习`` `

` `

` 轻量化大语言模型的推理新范式 `

` `
` ````2025年6月 ````技术报告 `</div>` `</div>` `
` `神经网络抽象艺术图` `
` `
` `</div>` `</div>` `</section>` `` `
` `
` `
` `
` `

```客观验证`

` `

`使用确定性验证器替代主观人类反馈,确保奖励信号的客观性和可重复性。`

` `
` `
` `

```轻量化训练`

` `

`GRPO算法无需独立Critic网络,显著降低计算开销,适合轻量化模型。`

` `
` `
` `

```推理优化`

` `

`特别适用于数学、代码生成等需要精确推理的任务,提升模型逻辑能力。`

` `
` `
` `
` `
` `` `
` `` `
` `

`概述`

` `
` `

` 可验证奖励的强化学习(RLVR)是一种专为提升大语言模型(LLM)在特定推理任务上表现而设计的训练范式。它通过引入一个客观、自动化的"验证器"来替代传统强化学习中依赖人类反馈或复杂奖励模型的评估机制。 `

` `
` `

` 在RLVR框架中,LLM作为智能体,接收任务提示并生成响应,该响应随后被送入验证器进行检验。验证器根据预设的规则或程序,判断模型的输出是否正确,并返回一个明确的奖励信号。这种直接的、基于结果正确性的反馈机制,使得模型能够通过不断的试错学习,自主地优化其生成策略,从而更有效地解决具有明确答案的推理问题,如数学计算、代码生成和逻辑谜题等。 `

` `
` `` `
` `

`RLVR核心概念与原理`

` `
` `

`RLVR的定义与动机`

` `

` 可验证奖励的强化学习(Reinforcement Learning with Verifiable Rewards, RLVR)是一种新兴的、专为提升大语言模型(LLM)在逻辑推理和精确任务上表现而设计的训练范式。其核心思想在于,将强化学习(RL)的奖励信号直接与一个客观、可自动验证的正确性标准挂钩,而非依赖于主观的人类偏好或一个需要单独训练的奖励模型``[175]``。 `

` `
` `

`核心优势`

` `
    ` `
  • `省去独立奖励模型的训练,降低计算开销`
  • ` `
  • `避免奖励黑客(Reward Hacking)问题`
  • ` `
  • `奖励信号直接与任务目标对齐`
  • ` `
  • `特别适合轻量化模型的推理能力提升`
  • ` `
` `
` `
` `
` `

`RLVR与RLHF的对比`

` `
` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `
`特性``RLHF``RLVR`
`核心目标``对齐人类偏好,生成更受欢迎的回答``提升客观正确性,解决具体问题`
`奖励来源``基于人类偏好数据训练的独立奖励模型``基于任务内在规则的外部验证器`
`奖励性质``连续、主观的分数``二元(正确/错误)或基于明确规则`
`适用场景``开放域对话、创意写作等主观任务``数学推理、代码生成等客观任务`
` `
` `
` `
` `` `
` `

`RLVR的工作流程`

` `

` RLVR的训练过程是一个迭代循环,通过不断的"生成-验证-优化"来逐步提升模型的推理能力。这个流程可以分解为四个关键步骤: `

` `
` `
` `

```问题定义与提示工程`

` `

`精心设计输入提示,包含系统指令和少样本示例,引导模型生成结构化输出。`

` `
` `
` `

```思维链生成`

` `

`模型生成包含详细推理过程的思维链,使用特定标签如 ``<think>``和 ``<answer>``来组织内容。 `

` `
` `
` `

```答案验证与奖励计算`

` `

`从模型输出中提取答案,通过验证器进行客观检验,计算正确性奖励和格式奖励。`

` `
` `
` `

```策略优化与模型更新`

` `

`使用GRPO等算法,基于奖励信号更新模型参数,优化生成策略。`

` `
` `
` `
` `` `
` `

`核心算法:组相对策略优化(GRPO)`

` `
` `

`GRPO算法概述`

` `

` 组相对策略优化(Group Relative Policy Optimization, GRPO)是一种专门为提升大语言模型(LLM)推理能力而设计的强化学习算法,它作为近端策略优化(PPO)的一种高效变体,在RLVR框架中扮演着核心角色``[143]``。 `

` `
` `

`GRPO的核心创新`

` `

`GRPO完全摒弃了独立的Critic网络,转而采用一种更为直接和高效的方式来估计优势:`

` `
    ` `
  • `对于每个提示,生成一组(Group)多个响应`
  • ` `
  • `计算组内奖励的均值和标准差`
  • ` `
  • `通过"白化"(whitening)计算每个响应的相对优势`
  • ` `
  • `优势 = (个体奖励 - 组平均奖励) / 组标准差`
  • ` `
` `
` `
` `
` `

`GRPO的数学原理`

` `

`组内相对优势计算`

` `
` `

`对于一组响应 G,计算均值 μ 和标准差 σ:`

` `

`μ = (1/G) × Σ(r_i)`

` `

`σ = √[(1/G) × Σ(r_i - μ)²]`

` `

`每个响应的相对优势:A_i = (r_i - μ) / σ`

` `
` `

`损失函数设计`

` `
` `

`L(θ) = E[min(ratio × A_i, clip(ratio, 1-ε, 1+ε) × A_i)] - β × D_KL(π_θ || π_ref)`

` `

`其中 ratio = π_θ(y_i|x) / π_θ_old(y_i|x)`

` `
` `
` `
` `` `
` `

`代码实战:使用RLVR微调轻量化模型`

` `
` `

`环境准备与依赖安装`

` `
` `
`# 安装核心依赖库

pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121
pip install transformers==4.47.1
pip install trl
pip install peft
pip install datasets`
`
`

` 这些库构成了RLVR训练的基础环境: `

` `
    ` `
  • `PyTorch``:深度学习框架`
  • ` `
  • `Transformers``:加载预训练模型和分词器`
  • ` `
  • `TRL``:Transformer Reinforcement Learning库,包含GRPOTrainer`
  • ` `
  • `PEFT``:参数高效微调,支持LoRA等技术`
  • ` `
  • `Datasets``:加载和处理数据集`
  • ` `
` `
` `
` `

`核心代码实现`

` `

`1. 加载模型与分词器`

` `
` `
`from transformers import AutoTokenizer, AutoModelForCausalLM

import torch

# 加载轻量化模型和分词器

model_name = "gpt2" # 或 "Qwen2.5-Math-1.5B" 等
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 设置 padding token

if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token`
`
`

`2. 定义提示模板与答案提取`

` `
` `
`def extract_answer(text):
    """从模型输出中提取答案"""
    try:
        answer_part = text.split("<answer>")[1].split("</answer>")[0]
        return answer_part.strip()
    except IndexError:
        return ""

# 定义系统提示

SYSTEM_PROMPT = "Respond in the following format: <reasoning>...</reasoning><answer>...</answer>"`
`
`

`3. 实现奖励函数`

` `
` `
`def correctness_reward(completions, human_answers, **kwargs):
    """正确性奖励函数"""
    rewards = []
    for completion, human_answer in zip(completions, human_answers):
        model_answer = extract_answer(completion)
        reward = 1.0 if model_answer == human_answer else -1.0
        rewards.append(reward)
    return rewards

def formatting*reward(completions, \*\*kwargs):
"""格式遵循奖励函数"""
return [0.5 for * in completions] # 简化版本`
`
`

`4. 配置LoRA与GRPO参数`

` `
` `
`from peft import LoraConfig, get_peft_model, TaskType

from trl import GRPOConfig, GRPOTrainer

# 配置 LoRA

lora_config = LoraConfig(
r=8,
lora_alpha=16,
lora_dropout=0.05,
task_type="CAUSAL_LM",
)

# 应用 LoRA 到模型

model = get_peft_model(model, lora_config)

# 配置 GRPO 训练参数

training_args = GRPOConfig(
batch_size=4,
llm_batch_size=4,
num_epochs=5,
learning_rate=3e-4,
)`
`
`

`5. 加载数据并启动训练`

` `
` `
`from datasets import load_dataset

# 加载 GSM8K 数据集

def get_gsm8k_questions(split="train"):
dataset = load_dataset("gsm8k", "main", split=split)

    def extract_xml_answer(example):
        answer_text = example["answer"].split("####")[-1].strip()
        return {
            "prompt": [
                {"role": "system", "content": SYSTEM_PROMPT},
                {"role": "user", "content": example["question"]}
            ],
            "answer": answer_text
        }

    return dataset.map(extract_xml_answer)

train_dataset = get_gsm8k_questions(split="train")

# 初始化 GRPOTrainer

trainer = GRPOTrainer(
model=model,
args=training_args,
train_dataset=train_dataset,
tokenizer=tokenizer,
peft_config=lora_config,
correctness_reward=correctness_reward,
formatting_reward=formatting_reward,
)

# 启动训练

trainer.train()

# 保存训练好的模型

trainer.save_model("rlvr_tuned_model")`
`
5 `` `
` `

`讨论与展望`

` `
` `
` `

```面临的挑战`

` `
    ` `
  • ` `` `
    ` ``对可验证任务的依赖`` `
    ` 仅适用于有明确正确答案的领域,难以扩展到主观性任务 `
    ` `
  • ` `
  • ` `` `
    ` ``奖励函数设计复杂`` `
    ` 需要精心设计复合奖励函数,避免奖励黑客问题 `
    ` `
  • ` `
  • ` `` `
    ` ``模型能力限制`` `
    ` 轻量化模型的基础能力限制了其在复杂任务上的表现 `
    ` `
  • ` `
` `
` `
` `

```未来发展方向`

` `
    ` `
  • ` `` `
    ` ``算法创新`` `
    ` 结合更多强化学习算法,如基于模型的RL、多智能体RL `
    ` `
  • ` `
  • ` `` `
    ` ``领域扩展`` `
    ` 开发智能验证器,将RLVR扩展到更多主观任务领域 `
    ` `
  • ` `
  • ` `` `
    ` ``能力提升`` `
    ` 设计更精细的奖励函数,提升模型推理和泛化能力 `
    ` `
  • ` `
` `
` `
` `
` `

`总结`

` `

` RLVR作为一种新兴的训练范式,为大语言模型,特别是轻量化模型的推理能力提升提供了新的思路。通过结合客观验证和高效算法,它能够在资源受限的情况下,显著提升模型在特定任务上的表现。随着技术的不断发展,RLVR有望在更多领域发挥重要作用,推动AI技术的普惠化发展。 `

` `
` `
` `
` `` `
` `
` `

`参考文献`

` `
` `
` ``[175]`` Reinforcement Learning with Verifiable Reward (RLVR): A New Paradigm for LLM Training - ``LinkedIn Article`` `
` `
` ``[143]`` DeepSeekMath Paper - ``arXiv:2503.06639`` `
` `
` ``[164]`` Awesome RLVR Collection - ``OpenDILab Collection`` `
` `
` ``[172]`` Tulu v3 Paper Explanation - ``Medium Article`` `
` `
` ``[13]`` How to Finetune Small Language Models to Think with Reinforcement Learning - ``Towards Data Science`` `
` `
` `
` `
` `</main>` `` </body> </html>
Written on 2025年08月05日