这是一个从零开始的、保姆级的详细教程。由于你使用的是阿里云(国内服务器),我们还需要解决国内无法直接访问 Hugging Face 的网络问题。
第一步:在阿里云租赁并配置服务器
要运行 7B 级别的模型并且使用bfloat16精度,模型本身会占用约 14GB 的显存,加上 8192 长度的上下文,你必须租用一张显存至少为 24GB 的 GPU(例如 NVIDIA A10, RTX 3090, RTX 4090 或 V100 32G)。
登录阿里云控制台:进入“云服务器 ECS”购买页面。
计费方式:强烈建议选择“按量付费”(用完随时释放,非常省钱)。
实例规格:
筛选“GPU 实例”。
选择带有至少 24GB 显存的显卡(例如
ecs.gn7i系列,通常配备 A10 24GB 显卡)。
镜像(操作系统):
在“公共镜像”中选择Ubuntu。
版本选择Ubuntu 22.04 64位或20.04 64位。
关键点:阿里云通常有一个选项可以“自动安装 GPU 驱动”(勾选它,选择最新的 CUDA 12.x 版本),这会帮你省去极大的麻烦。如果没有,建议在市场镜像中搜索“Ubuntu 22.04 预装 CUDA”的镜像。
网络和安全组:
必须勾选“分配公网 IPv4 地址”,否则你连不上它。
带宽按需选择(按使用流量计费即可)。
安全组(极其重要):新建一个安全组,在入方向规则中,必须开放 22 端口(用于远程连接)和8000 端口(用于我们一会儿模型对外提供 API 接口)。
登录凭证:设置一个 Root 密码,并牢记。
确认订单并启动实例。稍等片刻,在控制台找到你这台服务器的公网 IP 地址。
第二步:连接到阿里云服务器
现在我们回到你的本地电脑(Windows/Mac 均可)。
打开本地电脑的终端(Windows 用户按
Win+R输入cmd或powershell;Mac 用户打开“终端”应用)。输入以下命令连接服务器(将
Bash<你的公网IP>替换为刚才在阿里云获取的 IP):ssh root@<你的公网IP>第一次连接会提示是否信任该主机,输入
yes并回车。输入你刚才在阿里云设置的 Root 密码(输入时屏幕不会有任何显示,盲输后回车即可)。
看到
root@xxxx:~#的提示符,说明你已经成功进入了云服务器。
第三步:配置服务器环境与网络(解决 Hugging Face 连通问题)
国内服务器默认是打不开 Hugging Face 的,我们需要配置镜像站,并安装必要的 Python 库。在终端中依次执行以下命令:
1. 配置 Hugging Face 国内镜像为了让 vLLM 能够顺利下载模型,设置环境变量:
Bash
export HF_ENDPOINT=https://hf-mirror.com(注意:每次断开重新连接服务器后,如果要重新下载模型,都需要重新执行这一句。)
2. 安装 Miniconda(Python 环境管理器)
Bash
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装过程中一路按
Enter,遇到提示输入yes。安装完成后,关闭当前终端,重新 SSH 连接一次服务器,使 conda 生效。你会看到命令行前面多了一个
(base)。
3. 创建虚拟环境并安装 vLLM
Bash
# 创建一个名为 vllm_env 的 Python 3.10 环境 conda create -n vllm_env python=3.10 -y # 激活环境 conda activate vllm_env # 安装 vLLM 和相关的依赖包 pip install "vllm>=0.4.3" "transformers>=4.42.0" huggingface_hub第四步:下载并启动 Mistral 模型服务
现在环境准备好了,我们将使用你提供的命令。但我为你稍微调整了一下,增加了一个--host 0.0.0.0,这是为了允许你的本地电脑通过公网 IP 访问这个服务(默认只允许服务器内部访问)。
在服务器终端运行:
Bash
# 确保你已经激活了环境并且设置了镜像(如果没有,请再执行一遍下面两句) conda activate vllm_env export HF_ENDPOINT=https://hf-mirror.com # 启动服务 python -m vllm.entrypoints.openai.api_server \ --model mistralai/Mistral-7B-Instruct-v0.3 \ --dtype bfloat16 \ --max-model-len 8192 \ --host 0.0.0.0 \ --port 8000发生了什么?
由于是第一次运行,vLLM 会自动通过镜像站从 Hugging Face 下载大约 14GB 的模型权重(这需要几分钟到十几分钟,取决于服务器带宽)。
下载完成后,模型会被加载到显存中。
当你看到终端输出类似
Uvicorn running on http://0.0.0.0:8000时,说明部署成功,API 服务已经就绪!
第五步:在本地 VS Code 中调用模型
现在让服务器上的终端挂着(不要关闭),我们回到你的本地电脑。
打开本地的 VS Code。
新建一个文件夹和 Python 文件,例如
test_mistral.py。在本地电脑的终端中安装 OpenAI 的官方 Python 库(因为 vLLM 提供的接口与 OpenAI 完全兼容):
Bashpip install openai在
test_mistral.py中写入以下代码:
Python
from openai import OpenAI # 1. 配置客户端 # 将下面的 IP 替换为你阿里云服务器的【公网IP】 client = OpenAI( base_url="http://<你的阿里云公网IP>:8000/v1", api_key="EMPTY", # vLLM 默认不需要验证,随便填即可 ) # 2. 发送对话请求 print("正在呼叫阿里云上的 Mistral 模型...") response = client.chat.completions.create( model="mistralai/Mistral-7B-Instruct-v0.3", messages=[ {"role": "system", "content": "You are a helpful AI assistant. Please reply in Chinese."}, {"role": "user", "content": "请用通俗易懂的话解释一下什么是大语言模型(LLM)?"} ], temperature=0.7, max_tokens=512 ) # 3. 打印结果 print("\n=== 模型的回答 ===") print(response.choices[0].message.content)在 VS Code 中运行这个 Python 文件。如果一切顺利,你就能在本地终端看到远端服务器上 Mistral 模型实时生成的回答了。
💡 小白避坑排查指南
本地运行 Python 报错
ConnectionRefusedError或超时: 百分之百是因为阿里云安全组没有开放 8000 端口。请回到阿里云控制台 -> 实例详情 -> 安全组 -> 配置规则 -> 添加一条规则:协议选 TCP,端口范围填8000/8000,授权对象填0.0.0.0/0(允许所有人访问)。服务器运行 vLLM 时报错
Out of Memory (OOM): 说明你租的显卡显存不足。如果是 16GB 的卡(如 T4),8192 的长度加上 bfloat16 的 7B 模型会爆显存。你可以尝试将命令中的--max-model-len 8192改小,例如改成--max-model-len 4096,或者换租显存更大的实例。测试完毕后:千万记得在阿里云控制台释放实例,按量付费的服务器如果只关机是不停止扣费的(除非开启了停机不收费功能),不用了必须“释放”。