DeepSeek R1监督微调全攻略:Stage 1与Stage 2训练参数配置与实践

发布时间:2026/7/16 17:22:02
DeepSeek R1监督微调全攻略:Stage 1与Stage 2训练参数配置与实践 DeepSeek R1监督微调全攻略Stage 1与Stage 2训练参数配置与实践【免费下载链接】train-deepseek-r1Building DeepSeek R1 from Scratch项目地址: https://gitcode.com/gh_mirrors/tr/train-deepseek-r1GitHub 加速计划 / tr / train-deepseek-r1项目专注于从基础构建DeepSeek R1模型通过监督微调SFT等技术提升模型的推理能力和输出质量。本文将详细介绍DeepSeek R1监督微调中Stage 1与Stage 2的训练参数配置与实践方法帮助新手和普通用户轻松掌握模型优化的关键步骤。准备工作环境配置与依赖安装在开始监督微调之前需要确保环境配置正确并安装必要的依赖库。项目提供的requirements.txt文件列出了所有必需的包包括PyTorch、Transformers、Datasets等。# 克隆仓库 git clone https://gitcode.com/gh_mirrors/tr/train-deepseek-r1 cd train-deepseek-r1 # 安装依赖 pip install -r requirements.txtrequirements.txt中关键依赖项包括torch深度学习框架transformersHugging Face模型库datasets数据集处理工具accelerate分布式训练支持peft参数高效微调库trl强化学习训练工具Stage 1基于冷启动数据的监督微调冷启动数据准备DeepSeek R1的Stage 1监督微调需要高质量的冷启动数据这些数据通常通过以下方式构建Few-shot Prompting with Long CoT提供少量带有详细推理步骤Chain-of-Thought的示例引导模型学习结构化推理。例如Problem: Whats the square root of 9 plus 5? Solution: |special_token| First, find the square root of 9, which is 3. Then, add 5 to 3. 3 5 equals 8. |special_token| Summary: The answer is 8.Direct Prompting直接指示模型展示推理步骤并验证答案例如Problem: Solve this, show reasoning step-by-step, and verify: What is 2 3 * 4?Post Processing Refinement对模型生成的输出进行人工或自动优化确保推理清晰、格式正确。项目中推荐使用类似Bespoke-Stratos-17k的数据集该数据集包含17k个聚焦数学和代码的问题适合作为冷启动数据。Stage 1训练参数配置使用trl库中的SFTTrainer进行Stage 1微调关键参数配置如下training_args TrainingArguments( output_dir./data/Qwen-SFT-training, # 输出目录 overwrite_output_dirTrue, num_train_epochs1, # 训练轮次 per_device_train_batch_size8, # 每设备批次大小 gradient_accumulation_steps2, # 梯度累积步数 learning_rate2e-5, # 学习率 warmup_ratio0.1, # 热身比例 weight_decay0.01, # 权重衰减 logging_steps10, # 日志记录步数 save_strategysteps, # 保存策略 save_steps50, # 保存步数 save_total_limit2, # 最大保存 checkpoint 数 bf16True, # 使用混合精度训练 gradient_checkpointingTrue, # 启用梯度 checkpointing )启动Stage 1训练from trl import SFTTrainer from transformers import AutoModelForCausalLM, AutoTokenizer # 加载模型和分词器 model_name Qwen/Qwen2.5-0.5B-Instruct tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained(model_name, trust_remote_codeTrue, torch_dtypetorch.bfloat16) # 加载数据集 dataset load_dataset(bespokelabs/Bespoke-Stratos-17k, splittrain) # 初始化 SFTTrainer sft_trainer SFTTrainer( modelmodel, train_datasetdataset, tokenizertokenizer, argstraining_args, ) # 开始训练 sft_trainer.train()训练完成后模型将保存到./data/Qwen-SFT-training目录可用于后续推理或Stage 2微调。Stage 2基于拒绝采样的监督微调拒绝采样Rejection SamplingStage 2的关键是通过拒绝采样筛选高质量推理数据。模型生成多个候选答案通过评估如奖励模型或人工检查保留最优样本具体步骤生成候选答案使用Stage 1微调后的模型为每个问题生成多个推理结果。评估质量通过准确率、推理清晰度、格式正确性等指标筛选优质样本。构建精炼数据集将筛选后的样本与非推理数据结合形成Stage 2训练数据。Stage 2训练参数配置Stage 2微调参数与Stage 1类似但可根据数据特点调整学习率和批次大小training_args TrainingArguments( output_dir./data/Qwen-SFT-stage2-training, overwrite_output_dirTrue, num_train_epochs1, per_device_train_batch_size4, # 减小批次大小以适应复杂数据 gradient_accumulation_steps4, learning_rate1e-5, # 降低学习率以稳定训练 warmup_ratio0.1, weight_decay0.01, logging_steps10, save_steps50, save_total_limit2, bf16True, gradient_checkpointingTrue, )启动Stage 2训练# 加载Stage 1微调后的模型 model AutoModelForCausalLM.from_pretrained(./data/Qwen-SFT-training, torch_dtypetorch.bfloat16) # 加载拒绝采样后的精炼数据集 refined_dataset load_dataset(path/to/refined-dataset, splittrain) # 初始化 SFTTrainer sft_trainer_stage2 SFTTrainer( modelmodel, train_datasetrefined_dataset, tokenizertokenizer, argstraining_args, ) # 开始训练 sft_trainer_stage2.train()模型评估与保存评估指标监督微调后可通过以下指标评估模型性能准确率推理答案的正确性。推理清晰度使用正则表达式检测推理步骤中的关键词如Step 1、First等。格式一致性检查输出是否符合RichMediaReference推理过程/RichMediaReference/think答案/RichMediaReference的格式要求。模型保存训练完成后保存模型和分词器供后续使用# 保存模型和分词器 model.save_pretrained(./data/deepseek-r1-final) tokenizer.save_pretrained(./data/deepseek-r1-final)常见问题与解决方案训练不稳定尝试降低学习率或使用梯度累积。推理格式错误增加格式奖励权重确保模型输出符合要求。数据质量问题通过拒绝采样和人工审核提升训练数据质量。总结DeepSeek R1的监督微调分为两个关键阶段Stage 1通过冷启动数据奠定推理基础Stage 2通过拒绝采样优化数据质量。合理配置训练参数如学习率、批次大小和严格筛选训练数据是提升模型性能的核心。通过本文的指南你可以轻松上手DeepSeek R1的监督微调打造高性能的推理模型。项目中提供的code.ipynb包含完整的训练代码示例可参考其中的细节实现进一步优化微调过程。【免费下载链接】train-deepseek-r1Building DeepSeek R1 from Scratch项目地址: https://gitcode.com/gh_mirrors/tr/train-deepseek-r1创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考