一步步将DeepSeek R1微调成一个Safety engineer(安全工程师)
DeepSeek
DeepSeek 颠覆了 AI 领域,挑战 OpenAI 的主导地位,推出了一系列先进的推理模型。最令人兴奋的是?这些模型完全免费,且没有任何使用限制,人人都可以访问。
本教程将基于 DeepSeek-R1-Disti-Lama-88 模型,通过 Hugging Face 的安全领域数据集进行微调,让其具备安全工程师的能力。
什么是DeepSeek R1
DeepSeek-R1和DeepSeek-R1-Zer0 在数学、编程和逻辑推理任务上与OpenAl 的o1性能相当,且均为开源模型。DeepSeek-R1-Zero通过大规模强化学习训练,能独立探索思维链推理,但存在推理步骤重复、可读性差等问题。DeepSeek-R1则引入冷启动数据,多阶段训练使其在基准测试中表现出色,输出可读性和连贯性更好。此外,Deepseek的蒸馏模型参数范围1.5B-70B,保留强大推理能力,如DeepSeek-R1-Distil-Qwen-32B在多个基准测试中超越 OpenAl-o1-mini。
逐步微调DeepSeeksR1
1. 环境设置
选用 Kaggle 作为云 IDE,其提供免费 GPU 资源。启动新的 Kaggle notebook,添加 Hugging Face token 和 Weights & Biases token 为密钥。安装 unsloth Python 包提升微调效率,登录 Hugging Face CLI 用于下载数据集和上传模型,登录 Weights & Biases 并创建新项目跟踪实验进展。相关代码如下:
2. 加载模型和 tokenizer
加载 Unsloth 版本的 DeepSeek-R1-Distil-Llama-88 模型,并以4-bit 量化方式加载优化内存和性能。代码如下:
3. 微调前的模型推理
构建提示模板引导模型思考。示例问题为:“在建筑施工过程中,某施工现场频繁出现工人未正确佩戴安全帽的情况,作为安全工程师,你该采取哪些措施来解决这一问题并预防类似安全隐患?"即使未微调,模型能生成思维链和答室,但存在几长、格式不符等问题。代码如下:
4. 加载和处理数据集
调整提示模板,为复杂思维链添加占位符。编写函数处理数据集,从 Hugging Face Hub 加载安全领域数据集
(假设Safetyintelligence/safety-engineer-reasoning-SFT)前 500 个样本,并映射处理。代码如下:
5. 设置模型
向模型添加低秩适配器,设置训练参数和训练器。代码如下:
6. 训练模型
执行训练,训练过程约 22 分钟,训练损失降低表明模型性能提升。可登录 Weights & Biases 查看评估报告。代码及训练结果如下:
7. 微调后的模型推理
用相同问题测试微调后的模型,结果显示思维链简洁,答案准确直接。代码如下:
8. 本地保存模型
将适配器、模型和 tokenizer 保存到本地,方便后续项目使用。代码如下:
9. 将模型推送到 Hugging Face Hub
把相关内容推送到 Hugging Face Hub,供 AI 社区使用。代码如下:
总结
AI 开源社区蓬勃发展,微调开源 LLM 变得更易实现。本教程利用 DeepSeek R1 模型,通过微调使其能处理安全工程相关问题,有望应用于安全生产、风险隐患排查等领域。随着技术发展,此类模型将在更多场景发挥重要作用。
上一篇:DeepSeek 赋能智慧客服:开启知识管理与坐席协同新篇章
下一篇:这些领域都在用 DeepSeek!你还没行动?(附实操指南)