使用vLLM本地部署大模型

使用的系统

css 复制代码
gillbert@pop-os:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Pop
Description:    Pop!_OS 24.04 LTS
Release:        24.04
Codename:       noble

硬件环境

需要安装好GPU启动,安装CUDA和cuDNN

推荐安装方式: 手动安装GPU驱动,然后使用pip命令安装CUDA和cuDNN

安装GPU驱动

我们需要根据自己的GPU型号安装对应的驱动版本,我的是RTX 2070,安装了580版本的驱动

arduino 复制代码
apt install nvidia-driver-580-open

安装完成后重启系统,重启后我们可以看到显卡被正常驱动了

sql 复制代码
gillbert@pop-os:~$ nvidia-smi
Sat Apr 18 15:26:38 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.18             Driver Version: 580.126.18     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 2070        Off |   00000000:03:00.0 Off |                  N/A |
| 45%   30C    P8             12W /  175W |       1MiB /   8192MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

创建虚拟环境

首先我们配置下conda环境,配置方式可以参考juejin.cn/post/760107...

使用conda切换到llm虚拟python环境

ruby 复制代码
# 创建虚拟环境
conda create -n llm python=3.12
# 切换到llm虚拟环境
(base) gillbert@pop-os:~$ conda activate llm
(llm) gillbert@pop-os:~$ 

下载模型

这里我们使用git下载

ruby 复制代码
# 安装git
(llm) gillbert@pop-os:~$ sudo apt install git git-lfs

# 下载模型
(llm) gillbert@pop-os:~$ cd models/
(llm) gillbert@pop-os:~/models$ git clone https://www.modelscope.cn/Qwen/Qwen3.5-0.8B.git

安装vLLM

安装vLLM时候会自动安装CUDA和cuDNN

ruby 复制代码
# 注意:在我们激活的python环境下安装
(llm) gillbert@pop-os:~$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
(llm) gillbert@pop-os:~$ pip install vllm

启动模型

css 复制代码
vllm serve Qwen3.5-0.8B --tensor-parallel-size 1 --gpu-memory-utilization 0.7 --max-model-len 4096 --host 0.0.0.0 --port 8000 --api-key 123456

逐参数解释(超级通俗版)

  1. vllm serve Qwen3.5-2B
  • 作用 :启动 vLLM 服务,并加载 千问 3.5-2B 这个模型
  • serve = 启动 API 服务(OpenAI 兼容接口)

  1. --tensor-parallel-size 1
  • 张量并行大小
  • 意思:使用 1 张显卡运行模型
  • 你只有一张 RTX 2070,所以必须写 1

  1. --gpu-memory-utilization 0.7
  • GPU 显存利用率上限 = 70%
  • 0.7 = 最多占用 70% 显存
  • 好处:不会爆显存,系统不会卡
  • RTX 2070 8G 显存非常适合这个值

  1. --max-model-len 4096
  • 模型最大上下文长度 = 4096
  • 简单说:一次最多能处理 4096 个 tokens(文字)
  • 约等于 3000 个汉字 的对话长度

  1. --host 0.0.0.0
  • 允许局域网所有设备访问
  • 手机、其他电脑、Open WebUI 都能连
  • 如果只允许本机用:改成 127.0.0.1

  1. --port 8000
  • 服务端口号:8000
  • 访问地址:http://localhost:8000

  1. --api-key 123456
  • API 密钥
  • Open WebUI 连接时需要填这个密钥

启动Open WebUI

Open WebUI 是一款可扩展、功能丰富且易用的自托管 AI 平台 ,专为完全离线运行 而设计。它支持 Ollama 以及各类 OpenAI 兼容接口,是一款强大的、不依赖特定服务商的解决方案,可用于本地模型与云端模型。

创建新的python虚拟环境

lua 复制代码
# 创建open-webui虚拟环境
(base)gillbert@pop-os:~$ conda create -n open-webui python=3.12

# 激活虚拟环境
(base) gillbert@pop-os:~$ conda activate open-webui
(open-webui) gillbert@pop-os:~$

安装Open WebUI

kotlin 复制代码
# 配置清华源
(open-webui) gillbert@pop-os:~$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装open-webui
(open-webui) gillbert@pop-os:~$ pip install open-webui

启动

设置代理,由于Open Web UI需要下载一些模型,访问外网速度会很慢,因此我们设置下代理(在open-webui虚拟环境下执行)

ini 复制代码
# 把 192.168.0.2:10809 换成你的代理(http 或 socks5)
export http_proxy="http://192.168.0.2:10809"
export https_proxy="http://192.168.0.2:10809"
export all_proxy="socks5://192.168.0.2:10809"

# 本地/内网不走代理(必须加)
export no_proxy="localhost,127.0.0.1,::1,192.168.0.0/16,.local"

# 大写变量(有些程序只认大写)
export HTTP_PROXY="$http_proxy"
export HTTPS_PROXY="$https_proxy"
export ALL_PROXY="$all_proxy"
export NO_PROXY="$no_proxy"

Open WebUI默认监听在8080端口

kotlin 复制代码
(open-webui) gillbert@pop-os:~$ open-webui serve 

服务启动后访问8080端口,首先创建账号

配置模型,这里配置上前面我们使用vLLM启动的模型

测试对话正常使用了

相关推荐
jserTang2 小时前
手撕 Claude Code-4: TodoWrite 与任务系统
前端·javascript·后端
jserTang2 小时前
手撕 Claude Code-5:Subagent 与 Agent Teams
前端·javascript·后端
柯西劝我别收敛2 小时前
K8s Scheduling Framework 解析
后端
金銀銅鐵2 小时前
[Java] 从 class 文件看 cglib 对 MethodInterceptor 的处理 (下)
java·后端
Walter先生3 小时前
WebSocket 连接池生产级实现:实时行情高可用与负载均衡
后端·websocket·架构
skiy3 小时前
Spring Framework 中文官方文档
java·后端·spring
jserTang3 小时前
Claude Code 源码深度解析 - 前言
前端·javascript·后端
清溪5494 小时前
Damn Vulnerable Web Application(中)
后端
清溪5494 小时前
Damn Vulnerable Web Application(上)
后端