掘金 人工智能 06月04日 16:08
如何微调推理大模型?以Qwen3/DeepSeek-R1为例
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了如何微调推理大模型,以Qwen3和DeepSeek-R1为例,介绍了三种微调方法。首先,通过推理大模型将指令数据集蒸馏为推理数据,构建思维链数据集。其次,利用COT数据集构造推理数据集。最后,可以直接使用指令数据集微调推理大模型。文章还提供了具体的实现方法和实测效果,为读者提供了实用的微调策略。

💡 **方法一:数据蒸馏** 通过强大的推理大模型(如DeepSeek-R1)将现有的指令数据集蒸馏成思维链数据集。该过程涉及调用企业级API,并对生成的数据进行二次校验和评分,例如,针对数学和考试数据,使用Math-Verify校对,无法规则抽取结果的数据,再利用Qwen2.5-72B-Instruct模型进行打分;针对其他数据,则从无害性、有用性、正确性/完整性三个角度进行打分。

✨ **方法二:构建COT数据集** 采用COT(思维链)数据集来构造推理大模型的训练数据。文章以medical-o1-reasoning-SFT医学推理数据集为例,该数据集基于医学可验证问题和LLM验证器构建,其构造过程与方法一类似。关键在于使用预定义的模板,填充COT字段,从而构建训练样本。

🚀 **方法三:直接微调** 采用“素”的指令数据集直接微调推理大模型。这种方法不包含推理思维链字段,但实测显示,微调后的模型效果依然出色,甚至在特定任务上超越了同等参数的对话模型。这种方法简单粗暴,适用于不追求思考过程的场景。

如何微调推理大模型?以Qwen3/DeepSeek-R1为例

前言

首先先简单介绍下两个系列的模型:

DeepSeek-R1是由深度求索公司推出的首款推理模型,该模型在数学、代码和推理任务上的表现优异。深度求索不仅开源了DeepSeek-R1模型,还发布了从DeepSeek-R1基于Llama和Qwen蒸馏而来的六个密集模型,在各项基准测试中均表现出色。本文以蒸馏模型DeepSeek-R1-Distill-Qwen-7B为例,为您介绍如何微调该系列模型。

Qwen3是阿里云通义千问团队于2025年4月29日发布的最新大型语言模型系列,包含2个MoE模型和6个Dense模型。其基于广泛的训练,在推理、指令跟随、Agent 能力和多语言支持方面取得了突破性的进展。PAI-Model Gallery已接入全部8个尺寸模型,以及其对应的Base模型、FP8模型,总计22个模型。本文为您介绍如何在Model Gallery部署评测该系列模型。

刚好最近在做一个推理训练任务,现在有现成的训练集,推理模型这么强的情况下,怎么把之前传统对话大模型+指令微调训练模式 转变成推理大模型+指令微调任务

后训练广义可能范围比较大,包括微调、* 强化学习*等。 可能我们构造强化学习数据集或者思维链数据集的成本比较高的,所以今天咱们就聊一聊怎么偷懒地将把之前的指令数据集或者指令微调的工作推演到推理大模型训练上呢?有没有比较省事或者比较规范的做法呢?

方法1:通过推理大模型将指令数据集蒸馏为推理数据

通过能力比较强的推理大模型底座将之前指令数据集蒸馏为思维链数据集,然后进行筛选过滤。

具体做法我们可以参考刘聪大佬开源的Chinese-DeepSeek-R1-Distill-data-110k,大致流程是调用企业版满血R1 API,然后数据生成结果进行了二次校验,并保留了评价分数:

方法2:使用COT数据集构造推理大模型训练数据

下面以一个推理数据集为例,

medical-o1-reasoning-SFT医学推理数据集,该数据集基于医学可验证问题和 LLM 验证器构建,这个数据集构造过程和方法1提到的差不多。方法1强调如何通过推理大模型蒸馏指令数据集,方法2强调如何通过已有COT构造推理数据集

以下面模板为例:

代码语言:javascript

代码运行次数:0

运行

AI代码解释

train_prompt_style = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. Before answering, think carefully about the question and create a step-by-step chain of thoughts to ensure a logical and accurate response.### Instruction:You are a medical expert with advanced knowledge in clinical reasoning, diagnostics, and treatment planning. Please answer the following medical question. ### Question:{}### Response:<think>{}</think>{}"""

有了模板下面我们直接通过占位符填充COT字段即可

代码语言:javascript

代码运行次数:0

运行

AI代码解释

EOS_TOKEN = tokenizer.eos_token# Must add EOS_TOKENdef formatting_prompts_func(examples):inputs = examples["Question"]cots = examples["Complex_CoT"]outputs = examples["Response"]texts = []for input, cot, output in zip(inputs, cots, outputs):text = train_prompt_style.format(input, cot, output) + EOS_TOKENtexts.append(text)return {"text": texts,}

方法3:直接使用指令数据集微调推理大模型

那么还有一种方式就是,我们是不是也可以直接通过比较"素"的指令数据集训练R1类似模型呢,答案是可以!

这里“素”指的是只有instruction/input/output,没有推理思维链类似字段

笔者实测过, 这样微调出来的效果是丢失了思考过程,但是效果发现是没问题,设置32B推理模型超过了72B对话模型。

实测

针对下游任务,如果我们不想要思考过程,可以直接采用第三种方法,这种微调简单粗暴,效果也比传统同参数对话模型好一些。如果想要思考过程,可以参考方法1和方法2来准备数据,然后采用微调的方式进行训练即可。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

推理大模型 微调 Qwen3 DeepSeek-R1
相关文章