一、关于中文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>'
训练效果:(有部分内容省略)














网友评论