DeepSeek 的 LLM 推理新方法
DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力,而无需过度依赖监督式微调,这是一个重大进步。
DeepSeek-R1 技术概述
模型架构:
DeepSeek-R1 不是一个单一的模型,而是一个模型系列,包括:DeepSeek-R1-Zero和DeepSeek-R1
让我澄清一下 DeepSeek-R1 和 DeepSeek-R1-Zero 之间的主要区别:
主要区别
DeepSeek-R1-Zero代表了该团队使用纯强化学习进行的初步实验,没有任何监督式微调。他们从基础模型开始,直接应用强化学习,让模型通过反复试验来开发推理能力。虽然这种方法取得了令人印象深刻的结果(AIME 2024 上的准确率为 71%),但它有一些明显的局限性,特别是在可读性和语言一致性方面。它具有 6710 亿个参数,采用混合专家 (MoE) 架构,其中每个标记激活相当于 370 亿个参数。该模型展示了新兴的推理行为,例如自我验证、反思和长链思维 (CoT) 推理。
相比之下, DeepSeek-R1采用了更复杂的多阶段训练方法。它不是采用纯粹的强化学习,而是先对一小组精心挑选的示例(称为“冷启动数据”)进行监督微调,然后再应用强化学习。这种方法解决了 DeepSeek-R1-Zero 的局限性,同时实现了更好的性能。该模型还保留了 6710 亿个参数,但在响应中实现了更好的可读性和连贯性。
训练过程对比
培训方法:
- 强化学习:与主要依赖监督学习的传统模型不同,DeepSeek-R1 广泛使用强化学习。训练利用组相对策略优化 (GRPO),专注于准确性和格式奖励,以增强推理能力,而无需大量标记数据。
- 提炼技术:为了使高性能模型的普及,DeepSeek 还发布了 R1 的提炼版本,参数范围从 15 亿到 700 亿。这些模型基于 Qwen 和 Llama 等架构,表明复杂的推理可以封装在更小、更高效的模型中。提炼过程涉及使用完整 DeepSeek-R1 生成的合成推理数据对这些较小的模型进行微调,从而以较低的计算成本保持高性能。
DeepSeek-R1-Zero 的训练过程非常简单:
- 从基础模型开始
- 直接应用强化学习
- 根据准确性和格式使用简单的奖励
DeepSeek-R1 的训练过程分为四个不同的阶段:
- 使用数千个高质量示例进行初始监督微调
- 强化学习专注于推理任务
- 通过拒绝抽样收集新的训练数据
- 针对所有类型任务的最终强化学习
绩效指标:
- 推理基准:DeepSeek-R1 在各种基准测试中都表现出了令人印象深刻的结果:
- AIME 2024:通过率为 79.8%,而 OpenAI 的 o1-1217 的通过率为 79.2%。
- MATH-500:得分高达 97.3%,略高于 o1–1217 的 96.4%。
- SWE-bench Verified:在编程任务中表现出色,展示了其编码能力。
- 成本效益:DeepSeek-R1 的 API 定价为每百万输入令牌 0.14 美元(缓存命中),比 OpenAI 的 o1 等同类模型便宜得多。
局限性和未来工作
论文承认了几个需要改进的领域:
- 该模型有时会在需要特定输出格式的任务上遇到困难
- 软件工程任务的性能可以提高
- 多语言环境中的语言混合存在挑战
- 少量提示会持续降低表现
未来的工作将集中于解决这些限制并扩展模型在函数调用、多轮交互和复杂角色扮演场景等领域的功能。
部署和可访问性
- 开源和许可:DeepSeek-R1 及其变体在 MIT 许可下发布,促进开源协作和商业使用,包括模型提炼。此举对于促进创新和降低 AI 模型开发的准入门槛至关重要。
- 模型格式:
- 这两种模型及其提炼版本均采用 GGML、GGUF、GPTQ 和 HF 等格式,从而可以灵活地在本地部署。
1.通过DeepSeek聊天平台进行网页访问:
DeepSeek 聊天平台提供了用户友好的界面,无需任何设置要求即可与 DeepSeek-R1 进行交互。
- 访问步骤:
- 导航至DeepSeek 聊天平台
- 注册一个帐户,如果已有帐户,请登录。
- 登录后,选择“深度思考”模式,即可体验DeepSeek-R1的一步步推理能力。
DeepSeek 聊天平台
2.通过DeepSeek API访问:
对于编程访问,DeepSeek 提供了与 OpenAI 格式兼容的 API,允许集成到各种应用程序中。
使用API的步骤:
a. 获取 API 密钥:
- 访问DeepSeek API 平台创建帐户并生成你的唯一 API 密钥。
b.配置你的环境:
- 将 设置
base_url
为https://api.deepseek.com/v1
。 - 使用你的 API 密钥进行身份验证,通常通过 HTTP 标头中的 Bearer Token 进行。
c. 进行 API 调用:
- 利用 API 发送提示并接收来自 DeepSeek-R1 的响应。
- DeepSeek API 文档中提供了详细的文档和示例。
DeepSeek API 调用示例
3. 在本地运行 DeepSeek-R1:
两种型号(R1 和 R1-Zero):
- 硬件要求:完整模型由于其大小而需要大量硬件。建议使用具有大量 VRAM 的 GPU(如 Nvidia RTX 3090 或更高版本)。对于 CPU 使用,你至少需要 48GB 的 RAM 和 250GB 的磁盘空间,尽管如果没有 GPU 加速,性能会很慢。
- 精简模型:对于资源密集程度较低的硬件的本地部署,DeepSeek 提供了精简版本。这些模型的参数范围从 1.5B 到 70B,适合硬件较差的系统。例如,7B 模型可以在至少具有 6GB VRAM 的 GPU 上运行,或者在具有大约 4GB RAM 的 CPU 上运行(适用于 GGML/GGUF 格式)。
本地运行的软件工具:
- 将成为:
你可以使用Ollama在本地提供模型: (Ollama 是一种在你的机器上本地运行开源 AI 模型的工具。在此处获取:https: //ollama.com/download )
接下来,需要在本地提取并运行 DeepSeek R1 模型。
Ollama 提供不同尺寸的模型 — 基本上,更大的模型等于更智能的 AI,但需要更好的 GPU。以下是阵容:
1.5B version (smallest):
ollama run deepseek-r1:1.5b
8B version:
ollama run deepseek-r1:8b
14B version:
ollama run deepseek-r1:14b
32B version:
ollama run deepseek-r1:32b
70B version (biggest/smartest):
ollama run deepseek-r1:70b
要开始尝试 DeepSeek-R1,建议从较小的模型开始,以熟悉设置并确保与硬件的兼容性。你可以通过打开终端并执行以下命令来启动此过程:
ollama run deepseek-r1:8b
通过 Ollama 向本地下载的 DeepSeek-R1 发送请求:
Ollama 提供了一个 API 端点,用于以编程方式与 DeepSeek-R1 进行交互。在发出 API 请求之前,请确保 Ollama 服务器在本地运行。你可以通过运行以下命令来启动服务器:
ollama serve
一旦服务器处于活动状态,你就可以使用curl
以下命令发送请求:
curl -X POST http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt": "Your question or prompt here"
}'
将其替换"Your question or prompt here"
为你希望向模型提供的实际输入。此命令向本地 Ollama 服务器发送 POST 请求,该服务器使用指定的 DeepSeek-R1 模型处理提示并返回生成的响应。
在本地运行/访问模型的其他方法包括:
vLLM/SGLang:用于在本地提供模型。vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B — tensor-parallel-size 2 — max-model-len 32768 — force-eager 等命令可用于精简版本。
llama.cpp:还可以使用 llama.cpp 在本地运行模型。
结论:
从 DeepSeek-R1-Zero 到 DeepSeek-R1 的这一进展代表了研究中重要的学习历程。虽然 DeepSeek-R1-Zero 证明了纯强化学习是可行的,但 DeepSeek-R1 展示了如何将监督学习与强化学习相结合来创建一个更强大、更实用的模型。