美文网首页
基于DeepSeek-R1蒸馏的中文数据集训练推理模型

基于DeepSeek-R1蒸馏的中文数据集训练推理模型

作者: 梅西爱骑车 | 来源:发表于2025-03-03 16:07 被阅读0次

一、关于中文DeepSeek-R1(满血)蒸馏数据集

1.1 数据集概况

近期,刘聪NLP开源了开源中文DeepSeek-R1(满血)蒸馏数据集,其中包括SFT版本。基于满血DeepSeek-R1蒸馏的中文数据集-110k-SFT地址如下:
https://modelscope.cn/datasets/liucong/Chinese-DeepSeek-R1-Distill-data-110k-SFT

1.2 开源此数据集初衷

DeepSeek-R1的效果十分强大,并且基于R1蒸馏数据SFT的小模型也展现出了强大的效果,但目前我们发现,大部分开源的R1蒸馏数据集均为英文数据集。同时,R1的报告中展示,蒸馏模型中同时也使用了部分通用场景数据集,来保障训练中不丢失通用能力。为了帮助大家更好地复现R1蒸馏模型的效果,特此开源中文数据集。

1.3 数据分布情况

该中文数据集中的数据分布如下:
• Math:共计36568个样本,
• Exam:共计2432个样本,
• STEM:共计12648个样本,
• General:共计58352,包含弱智吧、逻辑推理、小红书、知乎、Chat等

1.4 数据样例及蒸馏过程
同时为了方便大家溯源,在每条数据的repo_name字段中都加入的原始数据源repo。数据示例: 数据示例

在蒸馏过程中,按照DeepSeek-R1官方提供的细节,进行数据蒸馏。
• 不增加额外的系统提示词
• 设置temperature为0.6
• 如果为数学类型数据,则增加提示词,“请一步步推理,并把最终答案放到 \boxed{}。”
• 防止跳出思维模式,强制在每个输出的开头增加"\n",再开始生成数据。

二、蒸馏实践

下面介绍基于蒸馏数据训练Qwen2.5-1.5B过程。

ms-swift已经接入了中文基于满血DeepSeek-R1蒸馏数据集,通过指定--dataset liucong/Chinese-DeepSeek-R1-Distill-data-110k-SFT即可选择该数据集进行训练。ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架。

ms-swift开源地址:https://github.com/modelscope/ms-swift

本章将展示使用ms-swift对该数据集进行SFT。在开始训练之前,请先安装ms-swift:

# pip install git+https://github.com/modelscope/ms-swift.git 
git clone https://github.com/modelscope/ms-swift.git 
cd ms-swift 
pip install -e .

微调脚本如下,我们随机抽样数据集中的1800条进行训练:

nproc_per_node=2
CUDA_VISIBLE_DEVICES=0,1 \
NPROC_PER_NODE=$nproc_per_node \
swift sft \
    --model Qwen/Qwen2.5-1.5B \
    --train_type full \
    --dataset 'liucong/Chinese-DeepSeek-R1-Distill-data-110k-SFT#1800' \
    --torch_dtype bfloat16 \
    --num_train_epochs 10 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-5 \
    --gradient_accumulation_steps $(expr 16 / $nproc_per_node) \
    --eval_steps 200 \
    --save_steps 200 \
    --save_total_limit 5 \
    --logging_steps 5 \
    --max_length 8192 \
    --output_dir output \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --deepspeed zero2

训练显存占用:(训练时长:40分钟)


训练日志: 训练日志

推理脚本如下,需要将--model替换成训练产生的last checkpoint文件夹:

# pip install vllm -U
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --model output/vx-xxx/checkpoint-xxx \
    --stream true \
    --infer_backend vllm \
    --max_model_len 8192 \
    --max_new_tokens 2048 \
    --temperature 0.3

推送到ModelScope:

swift export \
    --model output/vx-xxx/checkpoint-xxx \
    --push_to_hub true \
    --hub_model_id '<your-model-id>' \
    --hub_token '<your-sdk-token>'

训练效果:(有部分内容省略)


相关文章

网友评论

      本文标题:基于DeepSeek-R1蒸馏的中文数据集训练推理模型

      本文链接:https://www.haomeiwen.com/subject/xbkcmjtx.html