解密DeepSeek R1:71%与79.8%准确率背后的惊人突破!来看看它如何重塑语言模型!
DeepSeek 对 LLM 推理的创新方法
DeepSeek 通过强化学习 (RL) 提出了提高大型语言模型 (LLMs) 推理能力的创新方法,详细内容见他们最近关于 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) 架构,每个 token 激活相当于 370 亿的参数。该模型展示了自我验证、反思和长链思维 (CoT) 推理等新兴推理行为。
DeepSeek-R1 则采用了更复杂的多阶段训练方法。它不是纯粹的强化学习,而是在一小组精心策划的示例(称为“冷启动数据”)上进行监督微调,然后再应用强化学习。这种方法解决了 DeepSeek-R1-Zero 的局限性,同时实现了更好的性能。该模型也保持 6710 亿个参数的数量,但在响应的可读性和连贯性方面表现更佳。
训练过程比较
训练方法:
- 强化学习:与主要依赖监督学习的传统模型不同,DeepSeek-R1 广泛使用 RL。训练利用群体相对策略优化(GRPO),专注于准确性和格式奖励,以增强推理能力,而无需大量标注数据。
- 蒸馏技术:为了使高性能模型的访问更加普遍,DeepSeek 还发布了 R1 的蒸馏版本,参数范围从 1.5 亿到 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 验证:在编程任务中表现优异,展示了其编码能力。
- 成本效率:DeepSeek-R1 的 API 定价为每百万输入令牌 $0.14,显著低于类似模型如 OpenAI 的 o1。
局限性与未来工作
论文承认有几个改进的领域:
- 模型有时在需要特定输出格式的任务上表现不佳
- 在软件工程任务上的表现可以提高
- 在多语言环境中存在语言混合的挑战
- 少量提示会持续降低性能
未来的工作将专注于解决这些局限性,并扩大模型在函数调用、多轮交互和复杂角色扮演场景等领域的能力。
部署与可访问性
- 开源与许可:DeepSeek-R1及其变体根据MIT许可证发布,促进开源协作和商业使用,包括模型蒸馏。这一举措对推动创新和降低AI模型开发的准入门槛至关重要。
- 模型格式:
- 模型及其蒸馏版本以GGML、GGUF、GPTQ和HF等格式提供,允许在本地灵活部署。
1. 通过 DeepSeek 聊天平台访问网络:
DeepSeek 聊天平台提供了一个用户友好的界面,可以与 DeepSeek-R1 进行互动,无需任何设置要求。
- 访问步骤:
- 访问 DeepSeek 聊天平台
- 注册一个账户或如果您已有账户,请登录。
- 登录后,选择“深度思考”模式,以体验 DeepSeek-R1 的逐步推理能力。
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 文档 中找到。
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 在本地提供模型:(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 — enforce-eager 来运行精简版本。
llama.cpp: 您也可以使用 llama.cpp 在本地运行模型。
查看其他人使用 DeepSeek-R1 构建的内容:
- 在我的 7 台 M4 Pro Mac Mini 和 1 台 M4 Max MacBook Pro 上运行 DeepSeek R1:
DeepSeek R1 1.5B 在您的浏览器中完全本地运行,速度为 60 tok/ sec,由 WebGPU 提供支持:
RAG 应用程序,使用 DeepSeek R1 模型与您的 PDF 文件聊天,本地运行在您的计算机上。
在手机上完美本地运行 DeepSeek R1 版本 1.5B:
轻松破解复杂数学问题!(在 M4 Max 上使用 mlx-lm 大约 35 秒内处理 ~3200 个 token.):
结论:
从 DeepSeek-R1-Zero 到 DeepSeek-R1 的进展代表了研究中的重要学习旅程。虽然 DeepSeek-R1-Zero 证明了纯强化学习可以有效,但 DeepSeek-R1 展示了如何将监督学习与强化学习相结合,创造出更强大和实用的模型。