如何微调推理大模型?以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,然后数据生成结果进行了二次校验,并保留了评价分数:

  • 针对Math和Exam数据,先利用Math-Verify进行校对,无法规则抽取结果的数据,再利用Qwen2.5-72B-Instruct模型进行打分,正确为10分,错误为0分。

  • 针对其他数据,直接利用Qwen2.5-72B-Instruct模型从无害性、有用性、正确性/完整性三个角度进行打分,分值范围为0-10分。

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


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

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

picture.image

以下面模板为例:

  
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字段即可

  
EOS\_TOKEN = tokenizer.eos\_token# Must add EOS\_TOKEN  
  
  
def 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\_TOKEN  
texts.append(text)  
return {  
"text": texts,  
}

picture.image

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

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

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

picture.image

关于DeepSeek-R1微调,LLaMA Factory有些讨论或者踩坑,我下面直接贴了链接,有兴趣大家可以看下:

  • LLaMA Factory:微调DeepSeek-R1-Distill-Qwen-7B模型实现新闻标题分类器

https://gallery.pai-ml.com/#/preview/deepLearning/nlp/llama\_factory\_deepseek\_r1\_distill\_7b

  • deepseek r1微调 #7027

https://github.com/hiyouga/LLaMA-Factory/issues/7027

总结

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

picture.image

添加微信,备注” LLM “进入大模型技术交流群

picture.image

picture.image

如果你觉得这篇文章对你有帮助,别忘了点个赞、送个喜欢

/ 作者:致Great

/ 作者:欢迎转载,标注来源即可

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
IDC 大模型应用落地白皮书
大模型技术已深度融入业务实践,各企业期望其释放更大商业价值。 但大模型落地之路面临许多挑战和顾虑。 如何精准对接业务需求与发展蓝图,制定切实可行的大模型落地策略? IDC发布首个大模型应用策略与行动指南 一为您揭晓一
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论