首页   

DeepSeek R1 入门指南:架构、训练、本地部署和硬件要求

新机器视觉  · 科技自媒体 AI  · 23 小时前

主要观点总结

DeepSeek通过引入强化学习改进了大型语言模型的推理能力,发布了名为DeepSeek-R1的新模型。该模型在多个基准测试中表现出色,并具有成本效益。文章详细介绍了DeepSeek-R1及其训练过程、性能指标、局限性以及未来工作。此外,文章还涵盖了模型的部署与可访问性,包括通过DeepSeek聊天平台和API的访问,以及在本地运行模型的方法。

关键观点总结

关键观点1: DeepSeek-R1使用强化学习提升了大型语言模型的推理能力。

DeepSeek-R1通过强化学习,增强了大型语言模型解决复杂问题的能力,这一方法在多个基准测试中表现出色。

关键观点2: DeepSeek-R1模型的成本效益优势。

DeepSeek-R1的API定价相对较低,对于缓存命中,其成本显著低于类似模型,这使其具有成本效益优势。

关键观点3: DeepSeek-R1模型的部署与可访问性。

DeepSeek-R1及其变体在MIT许可下发布,促进了开源合作和商业使用。模型提供多种格式,并可通过DeepSeek聊天平台和API访问。此外,DeepSeek还提供了在本地运行模型的方法。

关键观点4: DeepSeek-R1的局限性及未来工作。

DeepSeek-R1在需要特定输出格式的任务、软件工程任务以及多语言环境中仍存在一些挑战。未来的工作将重点解决这些限制,并扩展模型在函数调用、多轮交互和复杂角色扮演场景等方面的能力。


正文

转自 | 开源大雄

本文仅用于学术分享,如有侵权,请联系后台作删文处理

DeepSeek 改进大型语言模型推理能力的新方法

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)架构,每个标记激活相当于 370 亿个参数。这个模型展现出了新兴的推理行为,如自我验证、反思和长链思维(CoT)推理。

相比之下,DeepSeek-R1 使用了更复杂的多阶段训练方法。它不是纯粹依赖强化学习,而是在应用强化学习之前,首先在一小部分经过精心挑选的示例(称为“冷启动数据”)上进行监督微调。这种方法解决了 DeepSeek-R1-Zero 的局限性,同时实现了更好的性能。该模型同样保持了 6710 亿参数,但在响应的可读性和连贯性方面表现更佳。

训练过程比较

训练方法论:

  • 强化学习(RL): 与主要依赖监督学习的传统模型不同,DeepSeek-R1 广泛使用 RL。训练利用群体相对策略优化(GRPO),专注于准确性和格式奖励,以在不需要大量标签数据的情况下增强推理能力。
  • 蒸馏技术: 为了普及高性能模型的访问,DeepSeek 还发布了从 15 亿到 700 亿参数的 R1 蒸馏版本。这些模型基于 Qwen 和 Llama 等架构,表明复杂的推理能力可以被封装在更小、更高效的模型中。蒸馏过程包括使用由完整 DeepSeek-R1 生成的合成推理数据对这些较小的模型进行微调,从而在降低计算成本的同时保持高性能。

DeepSeek-R1-Zero 的训练过程非常简单:

  1. 从基础模型开始
  2. 直接应用强化学习
  3. 使用基于准确性和格式的简单奖励

DeepSeek-R1 的训练过程则包括四个不同阶段:

  1. 使用数千个高质量示例进行初始监督微调
  2. 重点针对推理任务进行强化学习
  3. 通过拒绝采样收集新的训练数据
  4. 在所有类型的任务上进行最终的强化学习

性能指标:

  • 推理基准测试: 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。

局限性与未来工作

论文承认了几项需要改进的领域:

  • 模型在需要特定输出格式的任务上有时会遇到困难
  • 在软件工程任务上的性能可以进一步提升
  • 在多语言环境中存在语言混合的挑战
  • 少样本提示(Few-shot prompting)会持续降低性能

未来的工作将重点解决这些限制,并扩展模型在函数调用、多轮交互和复杂角色扮演场景等方面的能力。

部署与可访问性

开源与许可: DeepSeek-R1 及其变体在 MIT 许可下发布,促进了开源合作和商业使用,包括模型蒸馏。此举对于促进创新和降低 AI 模型开发的门槛至关重要。

模型格式: 两种模型及其蒸馏版本均提供 GGML、GGUF、GPTQ 和 HF 等格式,允许灵活地在本地部署。

通过 DeepSeek 聊天平台的网页访问

DeepSeek 聊天平台提供了一个用户友好的界面,可以无需任何设置即可与 DeepSeek-R1 互动。

访问步骤:

  • 访问 DeepSeek 聊天平台
  • 注册一个账号或登录已有账号
  • 登录后,选择“Deep Think”模式,体验 DeepSeek-R1 的逐步推理能力

通过 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-R1

两种模型(R1 和 R1-Zero):

  • 硬件要求: 由于其庞大的规模,完整模型需要显著的硬件支持。推荐使用具有大量 VRAM(如 Nvidia RTX 3090 或更高)的 GPU。对于 CPU 使用,至少需要 48GB 的 RAM 和 250GB 的磁盘空间,尽管没有 GPU 加速,性能会较慢。
  • 蒸馏模型: 为了在资源需求较低的硬件上进行本地部署,DeepSeek 提供了蒸馏版本。这些模型的参数范围从 15 亿到 700 亿,使其适合具有更为适度硬件的系统。例如,7B 模型可以在至少 12GB VRAM 的 GPU 或在 CPU 上以 GGML/GGUF 格式运行,所需 RAM 大约为 16GB。

本地运行的软件工具:

  • Ollama:你可以使用 Ollama 在本地提供模型服务:Ollama 是一个用于在你的机器上本地运行开源 AI 模型的工具。你可以在 Ollama 下载页面 下载它。

    接下来,你需要本地下载并运行 DeepSeek R1 模型。

    Ollama 提供了不同大小的模型——基本上,模型越大,AI 越聪明,但需要更好的 GPU。以下是模型系列:

    为了开始实验 DeepSeek-R1,建议从较小的模型开始,以熟悉设置并确保与你的硬件兼容。你可以通过打开终端并执行以下命令来启动这个过程:

    ollama run deepseek-r1:8b

    • 1.5B 版本(最小):

      ollama run deepseek-r1:1.5b

    • 8B 版本:

      ollama run deepseek-r1:8b

    • 14B 版本:

      ollama run deepseek-r1:14b

    • 32B 版本:

      ollama run deepseek-r1:32b

    • 70B 版本(最大/最智能):

      ollama run deepseek-r1:70b

通过 Ollama 向本地下载的 DeepSeek-R1 发送请求:

Ollama 提供了一个 API ,可以以编程方式与 DeepSeek-R1 互动。确保 Ollama 服务器在本地运行后再进行 API 请求。你可以通过运行以下命令启动服务器:

ounter(lineollama serve

服务器启动后,你可以使用 curl 发送请求,如下所示:

ounter(lineounter(lineounter(lineounter(lineounter(linecurl -X POST  -d '{  "model": "deepseek-r1",  "prompt": "你的问题或提示内容"}'

将“你的问题或提示内容”替换为你希望提供给模型的实际输入。该命令向本地 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-Zero 到 DeepSeek-R1 的这一进展,代表了研究中的重要学习历程。虽然 DeepSeek-R1-Zero 证明了纯强化学习的可行性,但 DeepSeek-R1 展示了将监督学习与强化学习相结合如何能够创建一个更强大且实用的模型。


    © 2024 精读
    删除内容请联系邮箱 2879853325@qq.com