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 美元的性能。
汇智网翻译整理,转载请标明出处