环境已就绪,怎样跑通大模型?

假设你已经完成了 Conda、CUDA、驱动的安装与配置,接下来就是让大模型真正跑起来。本文面向个人在阿里云租用单台 GPU 服务器的场景,从模型下载、框架选型,到部署、远程访问、后台运行与省钱,给出一条完整、可复现的路径。


一、先确认基础环境

登录服务器后,先确认 GPU 和 PyTorch 是否正常:

nvidia-smi
conda activate llm
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.version.cuda)"

重点看:

  • GPU 型号和显存,比如 T4 16GB、A10 24GB、V100 32GB、A100 40/80GB;
  • torch.cuda.is_available() 是否为 True;
  • torch.version.cuda 是否不超过 nvidia-smi 右上角显示的 CUDA Version。

这一步确认后,再往下走。


二、模型准备:下载模型文件

运行模型前,首先需要获取模型权重。有两种常用方式。

方式一:Hugging Face

安装下载工具:

pip install -U huggingface_hub

下载模型到本地目录:

huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --local-dir ./llama3-8b-instruct

如果下载速度慢,可设置镜像:

export HF_ENDPOINT=https://hf-mirror.com

方式二:ModelScope(国内服务器推荐)

国内阿里云服务器用 ModelScope 下载通常更快:

pip install modelscope
modelscope download --model Qwen/Qwen2.5-7B-Instruct-AWQ --local_dir ./Qwen2.5-7B-Instruct-AWQ

如果显存 24GB 以上,可以下载非量化版:

modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir ./Qwen2.5-7B-Instruct

三、按显存选模型

单台服务器上,显存决定你能跑多大的模型。参考下表:

显存 推荐模型
8–12GB Qwen2.5-3B、Llama-3.2-3B、7B 的 AWQ/GPTQ 量化版
16GB Qwen2.5-7B-Instruct-AWQ、Llama-3.1-8B-Instruct-AWQ
24GB Qwen2.5-7B/14B-AWQ,7B/8B FP16
40GB Qwen2.5-14B FP16、32B-AWQ
80GB Qwen2.5-32B FP16、72B-AWQ

个人使用优先选 Qwen2.5-7B-Instruct 或它的 AWQ 量化版。量化版显存占用低,速度也够用。


四、四种主流推理框架对比

环境就绪后,选择哪个框架来运行模型,取决于你的需求。

框架 适用场景 优点 缺点
vLLM 生产部署、高并发 API 服务 吞吐量极高,显存管理高效 仅支持 Linux,对显存要求较高
Ollama 个人快速体验、轻量级应用 极简,一键运行,跨平台 定制性较弱,性能不如 vLLM
llama.cpp 资源受限、CPU/混合推理 资源占用低,支持 CPU 和量化 配置稍复杂,需要编译
Transformers 快速脚本测试、研究 简单直接,与 Python 生态无缝集成 缺少生产级优化,性能一般

对于阿里云单台 GPU 服务器,推荐 vLLM + Open WebUI,兼顾性能与易用性;如果只想最简,Ollama + Open WebUI 也足够。


五、通用运行方法简介

5.1 vLLM:生产级高性能推理

安装:

conda create -n vllm python=3.11 -y
conda activate vllm
pip install -U vllm

启动 OpenAI 兼容 API:

vllm serve ./Qwen2.5-7B-Instruct-AWQ \
  --served-model-name qwen \
  --host 127.0.0.1 \
  --port 8000 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.9

关键参数:

  • --model:模型路径或 Hugging Face 模型 ID;
  • --port:API 端口,默认 8000;
  • --max-model-len:最大上下文长度,显存不足时降低;
  • --gpu-memory-utilization:GPU 显存利用率,默认 0.9。

测试:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen",
    "messages": [{"role": "user", "content": "你好,介绍一下你自己"}],
    "max_tokens": 200
  }'

5.2 Ollama:极简快速体验

安装:

curl -fsSL https://ollama.com/install.sh | sh

运行模型:

ollama run qwen2.5:7b

Ollama 默认监听 127.0.0.1:11434。

5.3 llama.cpp:资源受限环境

编译安装(开启 CUDA 支持):

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

运行 GGUF 模型:

./build/bin/llama-cli -m ./your-model.Q4_K_M.gguf -p "你的提示词" -n 256

5.4 Transformers:快速脚本调试

from transformers import pipeline

pipe = pipeline("text-generation", model="./llama3-8b-instruct", device_map="auto")
result = pipe("Explain the theory of relativity in simple terms.", max_new_tokens=200)
print(result[0]['generated_text'])

适合快速验证,但缺少 vLLM 那样的高级优化。


六、阿里云单台服务器推荐路线

6.1 路线一:vLLM + Open WebUI(推荐)

这是单台服务器上兼顾性能和易用性的方案。vLLM 提供 OpenAI 兼容 API,Open WebUI 提供浏览器聊天界面。

步骤 1:新建 conda 环境并安装 vLLM

建议单独建环境,避免和已有 PyTorch 冲突:

conda create -n vllm python=3.11 -y
conda activate vllm
pip install -U vllm modelscope

步骤 2:下载模型

modelscope download --model Qwen/Qwen2.5-7B-Instruct-AWQ --local_dir ./Qwen2.5-7B-Instruct-AWQ

步骤 3:启动 vLLM

vllm serve ./Qwen2.5-7B-Instruct-AWQ \
  --served-model-name qwen \
  --host 127.0.0.1 \
  --port 8000 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.9

如果显存不够,把 --max-model-len 降到 4096,或把 --gpu-memory-utilization 降到 0.8。

步骤 4:安装 Open WebUI

如果服务器上有 Docker:

docker run -d --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

--network host 让 Open WebUI 能直接访问宿主机的 127.0.0.1:8000。

6.2 路线二:Ollama + Open WebUI(极简)

如果只想快速聊天,不想折腾 vLLM:

curl -fsSL https://ollama.com/install.sh | sh
ollama run qwen2.5:7b

Ollama 默认监听 127.0.0.1:11434。同样可以配合 Open WebUI:

docker run -d --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

在 Open WebUI 里连接 Ollama:http://127.0.0.1:11434。


七、远程访问:用 SSH 隧道,不要开公网端口

假设你的阿里云公网 IP 是 1.2.3.4。在你自己电脑上执行:

ssh -L 3000:127.0.0.1:8080 -L 8000:127.0.0.1:8000 root@1.2.3.4

然后本地浏览器访问:

http://localhost:3000

Open WebUI 里配置:

  • OpenAI API 地址:http://127.0.0.1:8000/v1
  • API Key:随便填,或 vLLM 启动时设置的 key
  • 模型名:qwen

这样阿里云安全组只需要开 22 端口,不需要开放 8000、8080、11434。个人使用最安全。

如果你一定要公网访问,至少做到:

  • 安全组源 IP 限制为你自己的固定 IP;
  • vLLM 加 --api-key;
  • 前面加 Nginx + HTTPS + 密码;
  • 不要用 0.0.0.0/0 开放端口。

八、后台运行与省钱建议

8.1 用 tmux 挂后台

vLLM 用 tmux 挂后台:

tmux new -s vllm
conda activate vllm
vllm serve ./Qwen2.5-7B-Instruct-AWQ --served-model-name qwen --host 127.0.0.1 --port 8000
# 按 Ctrl+b,再按 d 退出

回来:

tmux attach -t vllm

Open WebUI 已经用 --restart always,会自动重启。

8.2 阿里云省钱注意

  • 不用时在控制台停止实例,按量付费通常停止后不再收计算资源费,但云盘和公网 IP 可能继续计费;
  • 设置自动释放或节省计划;
  • 公网流量单独计费,SSH 隧道访问基本不产生额外公网流量费;
  • 定期看账单和 nvidia-smi。

九、常见问题排查

9.1 显存不足 (CUDA Out of Memory)

如果遇到 torch.cuda.OutOfMemoryError,可以尝试:

  • 降低 --gpu-memory-utilization,例如从 0.9 降到 0.8 或 0.7;
  • 减小 --max-model-len,降低上下文长度以节省显存;
  • 使用量化模型,选择 4-bit 或 8-bit 量化版本;
  • 检查其他进程,确保没有其他程序占用 GPU 显存。

9.2 模型加载失败

  • 确认模型路径正确,且包含所有必需文件(如 config.json、tokenizer.json 等);
  • 对于某些模型(如 Qwen),可能需要添加 --trust-remote-code 参数。

9.3 服务无法访问

  • 检查端口是否被占用,可以尝试更换 --port;
  • 如果是在容器或远程服务器上运行,确保端口已正确映射或开放防火墙。

十、最快跑通命令清单

假设你已有 conda 环境 llm,显存 16GB 以上:

conda create -n vllm python=3.11 -y
conda activate vllm

pip install -U vllm modelscope
modelscope download --model Qwen/Qwen2.5-7B-Instruct-AWQ --local_dir ./Qwen2.5-7B-Instruct-AWQ

vllm serve ./Qwen2.5-7B-Instruct-AWQ \
  --served-model-name qwen \
  --host 127.0.0.1 \
  --port 8000 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.9

本地电脑:

ssh -L 3000:127.0.0.1:8080 -L 8000:127.0.0.1:8000 root@你的阿里云公网IP

浏览器打开 http://localhost:3000,在 Open WebUI 中连接 http://127.0.0.1:8000/v1,模型名 qwen,就可以聊天了。


总结

个人在阿里云单台 GPU 服务器上运行大模型,最推荐 vLLM + Open WebUI + SSH 隧道;如果只想最简,就用 Ollama + Open WebUI。核心原则:

  • 按显存选模型,优先量化版;
  • 服务只监听 127.0.0.1,通过 SSH 隧道远程访问;
  • 安全组只开 22 端口;
  • 用 tmux 挂后台,Open WebUI 加 --restart always;
  • 不用时停止实例,注意云盘和公网 IP 的计费。

按本文路径操作,你可以从环境就绪一路跑到浏览器聊天,安全、省钱、可复现。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容