DeepSeek作为强大的开源大语言模型,将其部署在AWS云服务器上,可以为您提供一个私有、可控且高性能的AI推理环境。恒讯科技将一步步指导您完成从创建服务器到最终运行模型的全部过程。
DeepSeek模型对计算和内存有较高要求,因此实例选择至关重要。
登录AWS管理控制台:进入EC2服务页面,点击“启动实例”。
为实例命名:例如 deepseek-server。
选择Amazon Machine Image (AMI):
推荐选择 Ubuntu Server 22.04 LTS。它拥有良好的兼容性和广泛的社区支持,非常适合运行AI应用。
选择实例类型(关键步骤):
CPU部署(适用于较小模型或测试):如果只想运行较小的模型(如DeepSeek-Coder 1.3B),可以选择通用实例如 m6i.xlarge(4vCPU, 16GiB内存)或 m6i.2xlarge。
GPU部署(推荐用于高效推理):要流畅运行更大的模型(如DeepSeek-LLM 67B),必须使用GPU实例。
性价比之选:g5.xlarge(1 x A10G GPU,24GiB显存)
高性能选择:p4d.24xlarge(8 x A100 GPU)或 g5.48xlarge(8 x A10G GPU)
提示:对于初次尝试,g5.xlarge 是一个平衡了成本与性能的绝佳起点。
创建或选择密钥对:
这是您安全连接至EC2实例的“钥匙”。创建一个新密钥对(如 deepseek-key)并妥善保管下载的 .pem 文件。
配置网络设置:
确保“允许SSH流量”和“允许HTTP流量”来自您的IP或任意位置(0.0.0.0/0)。为了后续通过浏览器访问,我们还需要添加一个自定义规则:
类型: 自定义TCP
端口范围: 7860 (这是Gradio库的默认端口)
来源: 0.0.0.0/0 (或您的特定IP地址以增强安全性)
配置存储:
DeepSeek模型文件很大(数十GB)。建议将根卷大小调整为 至少100 GB,卷类型选择更快的 gp3。
启动实例:检查所有配置无误后,点击“启动实例”。等待几分钟使其进入“运行中”状态。
通过SSH连接到您的服务器。
在Mac/Linux终端或Windows(WSL/Git Bash)中执行:
bash
ssh -i /path/to/your/deepseek-key.pem ubuntu@<你的EC2实例公有IP>
将 /path/to/your/deepseek-key.pem 替换为您的密钥文件实际路径。
将 <你的EC2实例公有IP> 替换为控制台中显示的IPv4地址。
连接成功后,在Ubuntu系统上执行以下命令。
更新系统包:
bash
sudo apt update && sudo apt upgrade -y
安装必要的系统工具:
bash
sudo apt install -y python3-pip python3-venv git
安装NVIDIA GPU驱动(仅GPU实例需要):
最简单的方法:使用AWS提供的预装驱动的AMI。在第一步选择AMI时,可以筛选并选择 “NVIDIA GPU-optimized” 版本的Ubuntu AMI。
手动安装:如果未使用预装驱动的AMI,可以运行:
bash
sudo apt install -y nvidia-driver-535
安装完成后,重启实例 sudo reboot。重新连接后,运行 nvidia-smi 命令验证驱动和GPU是否被正确识别。
创建独立的Python虚拟环境:
bash
python3 -m venv deepseek-env
source deepseek-env/bin/activate
(您的命令行提示符前会出现 (deepseek-env),表示已激活该环境。)
安装PyTorch及其依赖:
访问 PyTorch官方网站 获取最适合您CUDA版本的安装命令。
对于最新的CUDA 12.x,命令通常如下:
bash
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
安装Transformer和加速库:
bash
pip install transformers accelerate
安装Gradio(用于创建Web界面):
bash
pip install gradio
我们将使用Hugging Face的 transformers 库来加载模型。
创建一个Python脚本:
bash
nano run_deepseek.py
将以下代码复制到文件中:
python
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import gradio as gr
# 指定模型名称
model_name = "deepseek-ai/DeepSeek-LLM-7B-Chat" # 您可以替换为其他模型,如 "deepseek-ai/DeepSeek-Coder-1.3B"
# 加载tokenizer和模型
print("正在加载tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
print("正在加载模型...(这可能需要几分钟,请耐心等待)")
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto", # 自动分配到GPU
trust_remote_code=True
)
# 创建文本生成管道
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=512
)
# 定义处理函数
def chat_with_deepseek(message, history):
# 构建对话提示
prompt = f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
# 生成回复
outputs = pipe(prompt, do_sample=True, temperature=0.7)
response = outputs[0]['generated_text'][len(prompt):].strip()
return response
# 创建Gradio界面
demo = gr.ChatInterface(
fn=chat_with_deepseek,
title="DeepSeek Chat on AWS",
description="与部署在AWS EC2上的DeepSeek模型对话。"
)
# 启动服务,监听所有网络接口
demo.launch(server_name="0.0.0.0", server_port=7860)
重要提示:
脚本中的 model_name 可以根据需要更换,例如 "deepseek-ai/DeepSeek-Coder-6.7B" 或 "deepseek-ai/DeepSeek-LLM-67B-Chat"。请确保您的实例资源(尤其是显存)足以承载所选模型。
device_map="auto" 让Transformers库自动管理模型在GPU和CPU上的分布。
保存并退出:按 Ctrl+X,然后按 Y,再按 Enter。
运行脚本:
bash
python run_deepseek.py
首次运行会下载模型,这可能需要很长时间(取决于模型大小和网络速度)。模型会被缓存到 ~/.cache/huggingface/hub。
下载完成后,模型会被加载到GPU/CPU,之后您会看到类似 Running on local URL: http://0.0.0.0:7860 的输出。
在您的本地电脑浏览器中,打开以下地址:
text
http://<你的EC2实例公有IP>:7860
您现在应该能看到一个清晰的聊天界面,并可以开始与您自己部署的DeepSeek模型对话了!
后续优化与提示
保持连接:如果您关闭了SSH会话,Python脚本也会停止。可以使用 tmux 或 screen 等工具来保持进程在后台运行。
安全考虑:生产环境中,您应该配置域名、SSL证书(HTTPS)并使用防火墙严格限制访问IP,而不是向全世界开放 7860 端口。
成本管理:完成测试后,请记得停止或终止您的EC2实例,以避免产生不必要的费用。
相关阅读:
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


