
白嫖资源训练 DeepSeek R1 推理模型 精华
DeepSeek 颠覆了 AI 领域,通过推出一系列全新高级推理模型挑战 OpenAI 的主导地位。最棒的是?这些模型完全免费使用,没有任何限制,每个人都可以使用。您可以在下面观看有关如何微调 DeepSeek 的视频教程。
在本教程中,我们将在 Hugging Face 的医疗思维链数据集上对模型进行微调,微调的基础模型为 DeepSeek-R1-Distill-Llama-8B。这个精简的 DeepSeek-R1 模型是通过在使用 DeepSeek-R1 生成的数据上对 Llama 3.1 8B 模型进行微调而创建的。它展示了与原始模型类似的推理能力。
如果您是 LLM 和微调的新手,我强烈建议您参加 Python 中的大型语言模型导论 课程。
DeepSeek R1 简介
中国人工智能公司 DeepSeek AI (深度求索)已开源其第一代推理模型 DeepSeek-R1 和 DeepSeek-R1-Zero,它们在数学、编码和逻辑等推理任务上的表现可与 OpenAI 的 o1 相媲美。您可以访问 DeepSeek 的官方网站 了解更详细的内容。
DeepSeek-R1-Zero
DeepSeek-R1-Zero 是第一个完全用大规模强化学习(而不是监督式微调)来训练的开源模型。这种方式让模型能够自己探索思路链推理,解决复杂问题,并不断改进输出。不过,它也有一些问题,比如会重复推理步骤、生成的内容不容易读懂,还有可能会混杂不同的语言,这些都会影响它的清晰度和实用性。
DeepSeek-R1
DeepSeek-R1 的推出是为了改进 DeepSeek-R1-Zero 的不足,通过在强化学习前加入一些初始数据,为处理推理和非推理任务打下更好的基础。这种分阶段的训练方法让模型在数学、代码和推理测试中的表现达到了与 OpenAI-o1 相当的高水平,同时还提高了输出内容的可读性和连贯性。
DeepSeek 蒸馏
除了那些需要大量计算资源和内存支持的大型语言模型外,DeepSeek 还开发了一系列精简版模型。这些更紧凑且高效的模型已经证明能够在推理性能上保持高水平。它们的参数规模从 1.5B 到 70B 不等,同时保留了卓越的推理能力。特别值得一提的是,DeepSeek-R1-Distill-Qwen-32B 模型在多个基准测试中均超过了 OpenAI-o1-mini 的表现。较小规模的模型成功地继承了大规模模型的推理特性,充分展示了知识蒸馏技术的有效性。
来源:deepseek-ai/DeepSeek-R1
阅读DeepSeek -R1:功能、o1 比较、提炼模型等博客,了解其主要功能、开发过程、提炼模型、访问、定价以及与 OpenAI o1 的比较。
微调所需资源
模型 | GPU | CPU | 内存 | 磁盘 | 耗时 |
DeepSeek-R1-Distill-Llama-8B | T4 x 2 15G | 4核 | 32G | 200G | 23分钟 |
什么?你说上面的配置太高?😱 好吧,跟我往下走,教你如何白嫖!👇👇👇
微调 DeepSeek R1:分步指南
要微调DeepSeek R1模型,您可以按照以下步骤操作:
1. 设置
对于这个项目,我们使用 Kaggle 作为我们的 Cloud IDE,因为它可以免费访问 GPU,而这些 GPU 通常比 Google Colab 中提供的 GPU 更强大。首先,启动一个新的 Kaggle 笔记本,并将您的 Hugging Face 令牌和 Weights & Biases 令牌添加为机密。关于如何获取令牌参考文末 QA 环节。
您可以通过导航到 Add-onsKaggle 笔记本界面中的选项卡并选择Secrets选项来添加机密。
设置机密后,安装 unslothPython 包。Unsloth 是一个开源框架,旨在使微调大型语言模型 (LLM) 的速度提高 2 倍,并且更节省内存。
阅读我们的 Unsloth 指南:优化和加速 LLM 微调,以了解 Unsloth 的主要特性、各种功能以及如何优化您的微调工作流程。
使用我们从 Kaggle Secrets 中安全提取的 Hugging Face API 登录到 Hugging Face CLI。
使用您的 API 密钥登录 Weights & Biases(wandb)并创建一个新项目来跟踪实验和微调进度。
2. 加载模型和标记器
对于这个项目,我们正在加载DeepSeek-R1-Distill-Llama-8B 的 Unsloth 版本。此外,我们将以 4 位量化加载模型,以优化内存使用和性能。
3. 微调前的模型推理
为了为模型创建提示样式,我们将定义一个系统提示,并包含用于生成问题和响应的占位符。提示将引导模型逐步思考并提供合乎逻辑且准确的响应。
在这个例子中,我们将向提供一个医疗问题 prompt_style,将其转换为标记,然后将标记传递给模型进行响应生成。
英文效果
中文效果
即使没有微调,我们的模型也成功地生成了思路链,并在给出最终答案之前进行了推理。推理过程封装在 <think></think> 标签中。
那么,为什么我们还需要微调呢?推理过程虽然详细,但却冗长而不简洁。此外,最终答案是以项目符号格式呈现的,这偏离了我们想要微调的数据集的结构和风格。
4.加载和处理数据集
我们将通过添加复杂思路链列的第三个占位符来稍微改变处理数据集的提示样式。
编写 Python 函数,在数据集中创建一个“文本”列,该列由训练提示样式组成。用问题、文本链和答案填充占位符。
我们从 Hugging Face 获取 医疗行业的思维链数据集 中加载前 500 个样本。之后,我们将 text 使用formatting_prompts_func 函数映射列。
数据集样例
正如我们所看到的,文本列有一个系统提示、说明、思路链以及答案。
5. 建立模型
使用目标模型,我们将通过向模型添加低秩适配器来建立模型。
接下来,我们将设置训练参数并创建训练器,通过提供模型、分词器、数据集以及其他重要的训练参数,这些参数将优化我们的微调过程。
如果报错提示:AttributeError: _unwrapped_old_generate 则更新下库
6.模型训练
运行以下命令开始训练。
等待,训练中,不知道为啥只用一个 GPU 可能是没有开并行训练的事,后续可以改下脚本试下
训练过程耗时 23 分钟。训练损失逐渐减少,这是模型性能提高的一个好兆头。
登录 wandb.ai 并查看项目,查看模型评估报告。
如果您在运行上述代码时遇到问题,请参阅 微调 DeepSeek R1(推理模型) Kaggle 笔记本。
7. 微调后的模型推理
为了比较结果,我们将向微调模型提出与之前相同的问题,看看有什么变化。
这要好得多且更加准确。思路连贯,答案直截了当且在一个段落中。微调是成功的。
8. 本地保存模型
现在,让我们在本地保存 adopter、full model 和 tokenizer ,以便我们可以在其他项目中使用它们。
9. 将模型推送至 Hugging Face Hub
我们还可以把 adopter, tokenizer, and model 推送到 Hugging Face Hub,以便 AI 社区可以将此模型集成到他们的系统中来利用它。
注意:要提交到自己的命名空间下,提供的 HF 的 token 必须要有 write 权限
等待上传....
ok,上传完成,登录 HF 查看,模型已经存在
学习之旅的下一步是将模型部署到云端。您可以按照 如何使用 BentoML 部署 LLM 指南进行操作,该指南提供了使用 BentoML 和 vLLM 等工具高效且经济高效地部署大型语言模型的分步流程。
或者,如果您更喜欢在本地使用该模型,您可以将其转换为 GGUF 格式并在您的机器上运行。为此,请查看 微调 Llama 3.2 并在本地使用:分步指南 指南,其中提供了有关本地使用的详细说明。
微调结束,记着手动关闭 kaggle 环境,节省 GPU 资源
结论
在人工智能领域,情况正在迅速变化。开源社区正在崛起,挑战过去三年中一直统治人工智能领域的专有模型的主导地位。开源大型语言模型(LLMs)正变得更好、更快、更高效,使得在较低的计算和内存资源上对其进行微调比以往任何时候都更容易。在本教程中,我们探索了 DeepSeek R1 推理模型,并学习了如何对其精简版本进行微调以用于医疗问答任务。经过微调的推理模型不仅能提高性能,还能使其在医学、紧急服务和医疗保健等关键领域得到应用。为了应对 DeepSeek R1 的推出,OpenAI 推出了两个强大的工具:OpenAI 的 o3,一个更先进的推理模型,以及由新的计算机使用代理(CUA)模型驱动的 OpenAI 的 Operator AI 代理,它可以自主浏览网站并执行任务。xAI 推出了带深度思考的 Grok 3,一个用 20 万块显卡训练的大模型,性能超过所有同类开源和闭源模型,但是实测也差强人意,每日智能免费问两次,收费也贵的吓人,得到了 30 美元/月,我摸了摸钱包还是很自觉的去用 DeepSeek R1 了,免费又好用,谁能不爱?
如果你觉着一步一步的写代码比较费时,不要紧我已经给你准备好了懒人脚本,如下:
https://www.kaggle.com/code/kingabzpro/fine-tuning-deepseek-r1-reasoning-model
你说我对你好不好?🐶
关于小白问题的 QA 解答
1. 如何获取 HF 令牌
访问 Hugging Face 官网 并登录你的账户。
点击右上角你的头像,选择 “Settings”(设置)。
在左侧菜单中选择 “Access Tokens”(访问令牌)。
点击 “New token”(新令牌),为令牌设置一个名称,选择合适的权限(通常选择 “read” 即可),然后点击 “Generate a token”(生成令牌),复制生成的令牌。
2. 如何获取 Weights & Biases 令牌
访问 Weights & Biases 官网 并登录你的账户。
点击右上角你的头像,选择 “Settings”(设置)。
在 “API Keys”(API 密钥)部分,点击 “Generate”(生成),复制生成的 API 密钥。
3. Kaggle 使用
添加密钥
开启免费 GPU
点星标,不迷路,获取最新最前沿的人工智能技术
图片
[1] Python 中的大型语言模型导论:https://www.datacamp.com/courses/introduction-to-llms-in-python
[2] 强化学习:基于 Python 示例的介绍:https://www.datacamp.com/tutorial/reinforcement-learning-python-introduction
[3] 思维链推理习:https://www.datacamp.com/tutorial/chain-of-thought-prompting
[4] DeepSeek-R1:https://github.com/deepseek-ai/DeepSeek-R1
[5] DeepSeek-R1 功能和 o1 的比较、蒸馏模型等:https://www.datacamp.com/blog/deepseek-r1
[6] Weights & Biases 官网(wandb) : https://wandb.ai/home
[7] kaggle:https://www.kaggle.com/
[8] 原文链接:https://www.datacamp.com/tutorial/fine-tuning-deepseek-r1-reasoning-model?utm_source=chatgpt.com
[9] Unsloth 指南:https://www.datacamp.com/tutorial/unsloth-guide-optimize-and-speed-up-llm-fine-tuning
[10] 基模 HF 地址:https://huggingface.co/unsloth/DeepSeek-R1-Distill-Llama-8B
[11] Kaggle 使用指南:https://blog.csdn.net/weixin_42426841/article/details/143591586
[12] 医学思维链数据集:https://huggingface.co/datasets/FreedomIntelligence/medical-o1-reasoning-SFT?row=46
[13] 微调 DeepSeek R1(推理模型)Kaggle 笔记本 :https://www.kaggle.com/code/kingabzpro/fine-tuning-deepseek-r1-reasoning-model
[14] 如何使用 BentoML 部署 LLM:https://www.datacamp.com/tutorial/deploy-llms-with-bentoml
[15] 微调 Llama 3.2 并在本地使用:分步指南:https://www.datacamp.com/tutorial/fine-tuning-llama-3-2
[16] Hugging Face 官网:https://huggingface.co/
[17] OpenAI 的 O3:特性、与 O1 的比较、发布日期及更多内容:https://www.datacamp.com/blog/o3-openai
[18] OpenAI 的 Operator:示例、用例、竞争及更多:https://www.datacamp.com/blog/operator
[19] 懒人脚本:https://www.kaggle.com/code/kingabzpro/fine-tuning-deepseek-r1-reasoning-model
[20] DeepSeek 的官方网站:https://www.deepseek.com/
本文转载自 AIGC前沿技术追踪,作者: 喜欢学习的小仙女
