基于GRPO将QWEN训练为和deepseek一样的推理模型!

 GRPO

群体相对策略优化(GRPO)算法最初由deepseek团队提出,是近端策略优化(PPO)的一个变体。

GRPO 是一种在线学习算法,它通过使用训练过程中已训练模型自身生成的数据进行迭代改进。GRPO 目标背后的逻辑是在确保模型与参考策略保持接近的同时,最大化生成的completion的优势。

DeepSeek团队在使用纯强化学习 训练 R1-Zero 时观察到了一个“aha moment”。该模型学会了通过重新评估其初始方法来延长其思考时间,而无需任何人工指导或预定义指令。

  1. 该模型将生成多个响应

  2. 每个响应都根据正确性或由某奖励函数而不是 LLM 奖励模型创建的另一个指标进行评分

  3. 计算该组的平均分数

  4. 将每个响应的分数与组平均值进行比较

  5. 该模型经过强化,有利于得分较高的响应

例如,假设我们想要一个模型来求解:

1+1=?>> 思维链/解决 >> 答案是 2.                          

2+2=?>> 思维链/解决 >> 答案是 4.

以前必须收集大量数据来填充锻炼/思维链过程。但是GRPO可以引导模型自动展示推理功能并创建推理跟踪。

构建聊天模板

提示模型在提供答案之前阐明其推理。需要先将提示和响应建立一个明确的格式。

# system prompt
SYSTEM_PROMPT = """
Respond in the following format:
<reasoning>
...
</reasoning>
<answer>
...
</answer>
"""

XML_COT_FORMAT = """\
<reasoning>
{reasoning}
</reasoning>
<answer>
{answer}
</answer>
"""

数据集

选择OpenAI的 GSM8K 数据集,其中包含小学数学问题,每个答案都会有一个推理过程,并在 “####”后面附上最终答案。(该数据集在诸多论文中出现过)


 

数据集是通过提取答案并将其格式化为结构化字符串来准备的 

# 准备数据集
import re
from datasets import load_dataset, Dataset

# 提取推理过程
def extract_xml_answer(text: str) -> str:
    answer = text.split("<answer>")[-1]
    answer = answer.split("</answer>")[0]
    return answer.strip()

# 提取最终答案
def extract_hash_answer(text: str) -> str | None:
    if "####" not in text:
        return None
    return text.split("####")[1
### Qwen2.5 DeepSeek R1 微调大模型概述 Qwen2.5 是通义千问系列中的一个版本,以其强大的多模态处理能力广泛的适用场景而闻名。它不仅能够生成高质量的文本,还支持代码生成、图像生成等多种任务[^2]。在微调方面,Qwen2.5 可以通过特定的技术手段(如 GRPO)进行优化,以适应特定领域的复杂推理任务,例如医学推理[^3]。 DeepSeek R1 是由 DeepSeek 开发的一系列大型语言模型之一,主要以高效性高性能著称。其架构设计训练方法经过详细分析,适合多种应用场景[^1]。对于微调,DeepSeek R1 提供了基于 LoRA 的高效技术路径,允许用户在较低计算成本的情况下实现模型的定制化调整[^4]。 以下是对 Qwen2.5 DeepSeek R1 微调大模型的详细介绍: #### Qwen2.5 微调概述 Qwen2.5 的微调可以通过多种方式实现,其中一种是使用 GRPO 工具。GRPO 是一种高效的微调框架,能够在不显著增加计算资源的情况下提升模型在特定任务上的表现。例如,在医学推理领域,通过 GRPO 训练后的 Qwen2.5 模型可以更准确地解析非结构化问题并提供专业答案[^3]。 此外,Qwen2.5 还支持通过其他技术手段进行微调,例如使用特定的数据集进行指令微调或适配特定任务的需求。这使得 Qwen2.5 在多个垂直领域中表现出色,包括但不限于法律咨询、教育辅助科学研究[^5]。 #### DeepSeek R1 微调概述 DeepSeek R1 的微调主要依赖于 LoRA 技术。LoRA(Low-Rank Adaptation)是一种低秩分解方法,通过在模型权重上添加低秩矩阵来实现参数效率高的微调过程。这种方法不仅可以显著降低计算成本,还能保持模型的原始性能[^1]。 具体实现时,用户可以通过指定本地数据集缓存目录下载模型的方式来完成微调准备。例如,使用 `snapshot_download` 函数可以从远程仓库下载预训练模型到本地,并指定存储路径[^4]。以下是相关代码示例: ```python from modelscope.hub.snapshot_download import snapshot_download cache_dir = "./models" model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-14B', cache_dir=cache_dir) ``` 通过上述方法,用户可以在本地环境中对 DeepSeek R1 进行高效微调,从而满足特定应用场景的需求。 ### 结论 Qwen2.5 DeepSeek R1 均为功能强大的大模型,各自具备独特的微调技术应用场景。Qwen2.5 更加注重多模态处理领域适配能力,而 DeepSeek R1 则以其高效的微调方案出色的性能表现受到关注[^2][^3][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值