随着人工智能技术的飞速发展,像 DeepSeek 这样强大的大语言模型(LLM)正逐渐改变我们处理自然语言任务的方式。DeepSeek 凭借其在推理和编程任务上的出色表现,吸引了无数开发者的目光。然而,要在本地运行这样一个拥有数十亿甚至数千亿参数的模型,往往需要昂贵的硬件投入,这对于许多个人开发者或初创公司来说是一个不小的门槛。
这正是“云计算”大显身手的时候。通过利用云平台弹性的计算能力,特别是强大的 GPU 实例,我们可以快速、经济高效地部署 DeepSeek,而无需在本地购置昂贵的工作站。
在这篇文章中,我们将深入探讨如何在 Linode 和 Google Cloud Platform (GCP) 这两个主流云平台上,从零开始部署 DeepSeek-R1。我们将带领大家完成从选择合适的实例、配置驱动环境,到最终运行模型并进行推理的完整过程。无论你是 AI 爱好者还是希望将模型集成到生产环境中的开发者,这篇指南都将为你提供切实可行的操作步骤和最佳实践。
为什么选择云平台运行 DeepSeek?
在动手之前,我们需要解决一个常见的问题:面对众多的云服务提供商,应该如何选择?这通常取决于我们的具体需求、预算以及对技术栈的熟悉程度。让我们简单对比一下本文将要探讨的两个平台的特点,帮助你做出更明智的决定。
Linode (Akamai)
:—
提供主流 GPU(如 NVIDIA A100, T4),性价比较高
非常适合中小企业和个人开发者,定价透明
界面简洁直观,非常适合初学者快速上手
专注于基础设施即服务,需要手动配置较多
我们的建议:如果你是初学者,或者主要为了测试、开发中小型应用,Linode 的简洁和低成本会给你带来极好的体验。而如果你计划进行大规模的模型微调或需要应对极高的并发请求,GCP 强大的生态和性能优势则更加明显。
准备工作:必不可少的先决条件
为了确保接下来的部署过程顺利进行,请让我们先检查一下是否已经准备好以下工具和权限。这些是连接云端与本地操作的关键桥梁。
- 云服务账户:你需要拥有一个 Linode 和/或 GCP 的账户,并且该账户已启用计费功能(请注意,运行 GPU 实例会产生费用,建议在测试完成后及时释放资源)。
- SSH 访问能力:熟悉如何通过终端使用 SSH 密钥连接到远程服务器。
- 基础环境认知:虽然我们会涵盖安装步骤,但对 Linux 命令行、Python 环境以及 CUDA(GPU 加速计算平台)有基本了解会很有帮助。
—
实战一:在 Linode 上部署 DeepSeek-R1
Linode 以其简洁著称,这使得它成为快速原型开发的理想场所。让我们一步步构建我们的 DeepSeek 运行环境。
步骤 1:创建并配置 GPU 实例
首先,我们需要一台拥有“高性能心脏”的服务器。普通的 CPU 计算实例很难支撑大模型的推理任务,因此必须选择 GPU 实例。
- 登录 Linode 控制台。
- 点击左侧菜单的 Create,选择 Linode。
- 在区域选择方面,建议选择距离你或目标用户最近的机房以减少延迟。
- 关键步骤:在“Image”中选择 Ubuntu 22.04 LTS(这是一个稳定且广泛支持的版本)。
- 在“Linode Plan”中,务必切换到 GPU 选项卡。这里推荐选择 NVIDIA Tesla T4 或 A100,具体取决于你的预算。对于 DeepSeek-R1 的蒸馏版本(如 7B 或 8B),T4 通常已足够。
- 设置你的 Root 密码或上传 SSH 密钥,最后点击 Deploy。
步骤 2:连接到我们的服务器
当实例状态变为“Running”时,我们就可以通过终端连接到它了。打开你的本地终端,输入以下命令(记得替换为你实际的 IP 地址):
# 替换 为你的公网 IP 地址
ssh root@
步骤 3:配置驱动与系统环境
为了让 DeepSeek 能够调用 GPU 的算力,我们需要安装 NVIDIA 驱动和 CUDA 工具包。这是一个基础的“打地基”过程。
首先,更新我们的软件包列表,确保我们能安装到最新版本的软件:
# 更新系统并安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip wget
接下来,安装 NVIDIA 驱动。Linode 的 GPU 镜像通常已经预置了驱动,但手动安装或更新可以确保兼容性:
# 安装 NVIDIA 驱动 (针对 Ubuntu 22.04 的示例)
sudo apt install -y nvidia-driver-535
# 安装完成后,通常需要重启实例以加载驱动
# sudo reboot
验证 GPU 状态:重启连接回来后,输入以下命令。如果你看到了显卡信息的列表(如 GPU 型号、显存大小等),恭喜你,驱动安装成功了!
nvidia-smi
步骤 4:安装 DeepSeek 与依赖库
现在环境已经就绪,让我们把 DeepSeek-R1 的代码拉取下来。我们需要使用 Git 来克隆官方仓库。
# 克隆 DeepSeek-R1 的官方仓库
git clone https://github.com/deepseek-ai/DeepSeek-R1.git
# 进入项目目录
cd DeepSeek-R1
为了让 Python 能够识别和运行项目所需的库,我们需要安装 requirements.txt 中列出的依赖,以及必不可少的 PyTorch 框架。
# 升级 pip 并安装项目依赖
pip install --upgrade pip
pip install -r requirements.txt
# 安装 PyTorch (包含 CUDA 支持,版本可根据实际情况调整)
# 这里的命令安装的是支持 CUDA 12.x 的最新稳定版 PyTorch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
实用见解:安装深度学习库通常需要一些时间,因为它们的体积很大。如果你的网络环境访问国外资源较慢,可以考虑配置临时的 pip 镜像源来加速下载,但在生产环境中请务必使用官方源以保证安全性。
步骤 5:运行模型并进行测试
最激动人心的时刻来了。让我们尝试运行一个简单的推理任务。我们可以直接使用 Python 脚本来加载模型并生成文本。
以下是一个简化的推理示例,展示了如何使用 Transformers 库加载 DeepSeek 模型(请确保你有足够的显存,对于大模型,你可能需要加载量化版本):
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# 设定模型路径 (这里假设已下载或使用 Hugging Face Hub)
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 加载模型,并自动映射到可用的 GPU 上
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16, # 使用半精度浮点数以节省显存并提升速度
device_map="auto"
)
# 构造一个数学问题的 Prompt
prompt = "求解方程: 3x + 5 = 20"
# 编码输入文本并生成回复
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=100)
# 打印结果
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
运行这段代码后,你应该能看到 DeepSeek 模型给出的逻辑推导过程。
—
实战二:在 Google Cloud Platform (GCP) 上部署 DeepSeek-R1
如果你选择了 GCP,你将获得更强大的企业级工具支持。虽然步骤与 Linode 类似,但 GCP 的控制台提供了更细粒度的配置选项。
步骤 1:设置 Compute Engine 实例
GCP 的虚拟机被称为 Compute Engine (VM)。
- 在 Google Cloud Console 中,导航至 Compute Engine > VM instances。
- 点击 Create instance。
- 名称:随意命名,例如
deepseek-r1-server。 - 机器配置:这是重点。在 Machine configuration 中,点击 Customize。
- GPU 选择:展开 Add GPUs 菜单。对于性价比测试,选择 NVIDIA Tesla T4 是个不错的开始。如果是生产级负载,建议选择 NVIDIA L4 或 A100。
- 操作系统:选择 Ubuntu 20.04 LTS 或 22.04 LTS。
- 点击 Create 启动实例。
步骤 2:安全连接 GCP 实例
GCP 提供了非常方便的浏览器内 SSH 终端,你可以直接点击实例列表旁边的“SSH”按钮连接。但如果你更喜欢本地终端,可以使用 gcloud 命令行工具:
# 使用 gcloud CLI 进行连接
# 是你刚才设置的名字
# 是实例所在的区域,如 us-central1-a
gcloud compute ssh --zone=
步骤 3:环境安装与依赖配置
连接后,流程与 Linode 非常相似。我们需要确保系统的驱动和 Python 环境是最新的。
# 1. 更新系统
sudo apt update && sudo apt upgrade -y
# 2. 安装 NVIDIA 驱动 (CUDA Toolkit)
# GCP 有时会预装驱动,但执行以下命令可确保完整性
sudo apt install -y nvidia-driver-470
# 验证驱动
nvidia-smi
如果安装了新驱动,建议重启实例 (sudo reboot) 并重新连接。随后,安装 Python 和必要的构建工具:
# 安装 Python 和 Git
sudo apt install -y python3-pip git
步骤 4:部署代码与运行 DeepSeek
接下来,我们将 DeepSeek 部署到 GCP 的强大算力上。
# 克隆仓库
git clone https://github.com/deepseek-ai/DeepSeek-R1
cd DeepSeek-R1
# 安装 Python 依赖
pip install -r requirements.txt
pip install torch transformers accelerate
在 GCP 上,由于网络带宽通常很好,我们还可以尝试使用 accelerate 库来更有效地管理模型加载和设备映射。以下是一个用于生产环境的推理代码示例,它增加了流式输出,让你能实时看到模型的生成过程,这在交互式应用中非常重要。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextIteratorStreamer
from threading import Thread
model_id = "deepseek-ai/DeepSeek-R1"
# 加载模型
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
torch_dtype=torch.float16
)
# 使用 Streamer 实现流式输出
streamer = TextIteratorStreamer(tokenizer)
# 构造对话上下文
prompt = "用 Python 写一个快速排序算法"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# 在后台线程中运行生成
generation_kwargs = dict(inputs, streamer=streamer, max_new_tokens=200)
thread = Thread(target=model.generate, kwargs=generation_kwargs)
thread.start()
# 实时打印生成的文本
print("DeepSeek Output: ")
for new_text in streamer:
print(new_text, end="")
thread.join()
常见问题与性能优化建议
在云平台上运行大模型时,你可能会遇到一些挑战。以下是我们总结的经验和解决方案:
- 内存溢出 (OOM):这是最常见的问题。即使你租用了 GPU,如果模型参数量过大,显存依然不够用。
* 解决方案:使用 4-bit 或 8-bit 量化 技术。通过 bitsandbytes 库加载模型,可以将显存占用减少到原来的 1/4 左右,代价是微乎其微的精度损失。
* 代码示例:INLINECODEe8ac6242 或 INLINECODE9a041b27。
- 推理速度慢:
* 解决方案:确保使用了 INLINECODE6ce182bd 或 INLINECODEf78999b1 数据类型,而不是默认的 float32。这不仅能节省显存,还能显著提升计算速度。
- 成本控制:GPU 实例按小时计费,如果不小心忘记关闭,费用会迅速累积。
* 最佳实践:在测试完成后,立即在控制台停止或删除实例。你可以使用 Docker 容器来固化环境配置,这样下次启动时只需几分钟就能重新就绪。
总结与后续步骤
通过这篇文章,我们探索了如何在 Linode 和 GCP 上将强大的 DeepSeek-R1 模型变为现实。我们已经看到,从选择合适的 GPU 实例到配置 Linux 驱动环境,再到编写 Python 代码调用模型,整个过程其实并不复杂。
现在,你可以尝试调整 Prompt 来解决不同领域的实际问题,比如代码生成、逻辑推理甚至是创意写作。如果你想让这个应用更上一层楼,下一步可以尝试将推理代码封装成一个简单的 REST API(使用 Flask 或 FastAPI),这样你就能通过任何网页或移动端应用来调用运行在云端的 DeepSeek 大脑了。
祝你在云端 AI 开发的旅程中收获满满!如果你在操作过程中遇到任何问题,欢迎随时查阅我们提供的代码示例和日志进行排查。