4个运行DeepSeek R1的方法

由于 DeepSeek 最新推理模型的发布,本周 AI 世界经历了过山车般的波动,我想向你展示如何运行自己的 R1 模型实例。

该模型的发布正在挑战世界对 AI 训练和推理成本的看法,导致一些人质疑传统参与者 OpenAI 等是否效率低下或落后?我们现在不需要那么多花哨的 NVIDIA 芯片了吗?

如果你想在自己控制的基础设施上托管 DeepSeek 模型,我会告诉你怎么做!

1、在你的本地机器上运行DeepSeek R1

大小很重要:请注意,DeepSeek 模型有多种基础大小、蒸馏和量化,会影响整体模型大小。你必须有足够的 RAM 来容纳整个模型。最小的是 1.5B 模型,大小为 1.1GB,然后从那里开始增加。所以,如果你只是在本地玩这个模型,不要指望运行最大的 671B 模型,大小为 404GB。

1.1 使用Ollama

如果你有一台带有 GPU(NVIDIA CUDA、AMD ROCm 甚至 Apple Silicon)的机器,运行 LLM 的简单方法是 Ollama。

我之前提到过 Ollama,但它是一个易于使用的命令行工具,只需运行 ollama run <model_name> 即可运行 LLM。此外,如果你需要从 Python 等编程语言中以编程方式调用它,它甚至会托管模型的本地 API。

安装 Ollama 后,运行 ollama run deepseek-r1:1.5b。这将提取清单并配置模型以运行。对于 1.5B 模型,只需几分钟。

然后,你可以立即开始向它提问……

此处查看其他与 Ollama 兼容的 DeepSeek-R1 模型。

1.2 使用llama.cpp

或者,你可以使用名为 llama.cpp 的工具在各种其他硬件上本地托管 LLM,该工具是用于运行 .gguf 格式模型的 C++ 接口。这意味着你甚至可以在基于 CPU 的架构上运行模型。

你可以在 Hugging Face 上找到大量基于 .gguf 的 DeepSeek 模型转换。其中一组非常受欢迎的来自一个名为 Unsloth 的小组。例如,unsloth/DeepSeek-R1-UD-IQ1_S 模型的大小减小到约 135GB。

首先,你需要从 llama.cpp GitHub 下载最新的二进制文件,选择与你的硬件设置相匹配的二进制文件(带有 CUDA 的 Windows、macOS 等)。

然后,你需要将所需模型的 .gguf 文件下载到本地机器。出于演示目的,我使用 Ollama 使用的 .gguf 文件,因为它的大小只有 ~1GB。然后,你可以使用模型和所需的提示运行 llama-cli 命令。

./llama.cpp/llama-cli \
  --model deepseek-r1-1.5b.gguf \
  --prompt "<|User|>Write a blog post about LLMs.<|Assistant|>"

对于某些人来说,这可能更容易在 Docker 中运行。他们的说明概述了支持不同架构的各种 Docker 映像。

以下 Docker 命令将在我的 CPU 上运行带有 llama.cpp 的已安装卷中的 1.5B 模型:

docker run -v ./models:/models ghcr.io/ggerganov/llama.cpp:light \
  -m /models/deepseek-r1-1.5b.gguf \
  -p "Baking a cake can be done by getting the following ingredients together:" \
  -n 512

呃……这个模型的小版本没有很好地告诉我制作蛋糕的成分。

2、在 Azure 云上运行DeepSeek R1

通常,Azure AI Studio 包含流行的 LLM,例如 OpenAI 的 GPT-4o、Meta 的 Llama、Microsoft 的 Phi 等,但 DeepSeek 尚未推出。但请稍等!——还有其他方法可以在云中运行此模型。

2.1 在 Azure 机器学习工作室中

Azure ML 允许你上传几乎任何类型的模型文件(.pkl 等),然后使用一些自定义 Python 推理逻辑进行部署。在“模型”>“+注册”下,你可以上传 DeepSeek 模型的 .gguf 文件。

上传后,可以通过单击 ▶ 部署按钮将模型部署为“实时端点”或“批处理端点”。

按照部署向导中的步骤操作,为你的端点命名,选择要部署的模型等。

你需要编写一个 score.py 文件来告诉 API 如何处理请求。你可以使用 llama.cpp Python 库来处理 LLM 推理,然后将其传回 API 响应。

import os
import logging
from llama_cpp import Llama

def init():
    global model
    model_path = os.path.join(
        os.getenv("AZUREML_MODEL_DIR"), "model/deepseek-r1-1.5b.gguf"
    )
    llm = Llama(model_path)

def run(raw_data):
    logging.info("DeepSeek-R1: request received")
    output = llm(
      raw_data, # Prompt
      max_tokens=32,
      stop=["\n"],
      echo=True
    )
    logging.info("Request processed")
    return result.tolist()

要了解有关编写推理脚本的更多信息,请参阅这里

部署模型后,你将获得一个 API 端点 URL 和一个密钥/令牌来对其进行身份验证。

2.2 在虚拟机上

如有疑问,VM 是你可以选择的最基本的选项。虽然大规模管理这些变得困难,但为你的 AI 模型运行 VM 并不是一个糟糕的选择。只需确保选择具有 GPU 的 VM(例如 NC 或 ND 系列)。

VM 启动后,你需要执行以下几项操作:

  • 安装 NVIDIA CUDA 驱动程序(或选择已具有这些驱动程序的 VM 映像)+ 您需要的任何 Python 依赖项。
  • 安装 Ollama、llama.cpp 或其他 LLM 托管工具(如我在本文开头所示)。
  • 打开所选工具的端口,以便您可以访问该工具的 API 端点或 Web 应用程序 GUI。(Ollama 为 11434,llama.cpp 为 8080,等等)

此处查看 Azure GPU 加速 VM SKU 的完整列表。

3、结束语

虽然这些模型和训练它们的公司确实有一些炒作,但我想提醒大家,它们并不像你希望的那样有用。根据我的测试,在本地运行的小型模型中,几乎没有能够与最新的 OpenAI 模型相媲美的推理能力。因此,你需要一些强大的设备才能获得接近 ChatGPT Plus 每月 20 美元的性能。


汇智网翻译整理,转载请标明出处