当前位置: 首页 > news >正文

部署大模型的极简笔记

部署大模型的极简笔记

一、VLLM部署

0、wsl 安装

Linux可跳过此步骤。

如果是Windows系统,可以使用 WSL:

Windows --> Linux

wsl --update
wsl --install
# 如果慢就用这个: 
wsl --update --web-download
# 卸载
wsl --uninstall
# 查看版本信息
wsl -l -v
# 默认启动发行版
wsl --setdefault Ubuntu-22.04
# 启动
wsl
# 退出
exit

之后都是默认在 Linux 终端

1、基础环境
sudo apt update               # 更新软件包索引
sudo apt upgrade -y           # 升级已安装的软件包
sudo apt upgrade python3 python3-pip
# 查看版本信息
python3 --version
pip3 --version
2、虚拟环境

Conda:二选一,下载安装,回车 + yes

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh #Miniconda
wget https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh #anaconda
bash Miniconda3-latest-Linux-x86_64.sh  #Miniconda
bash Anaconda3-2025.06-0-Linux-x86_64.sh #anaconda
# 刷新更改
source ~/.bashrc
# 查看版本
conda --version

创建虚拟环境并激活:

conda create -n vllm1 python==3.12
conda activate vllm1
3、相关下载

依照显卡驱动(cuda)下载 pytorch 框架:
https://pytorch.org/

# 举例:CUDA12.4, pytorch v2.6.0
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124

下载vllm引擎:(直接运行这一步,自动下载也可以)

pip install vllm -i https://mirrors.aliyun.com/pypi/simple/

Huggingface下载模型:

# 安装平台插件
pip install huggingface_hub
# 加速下载设置
set HF_ENDPOINT=https://hf-mirror.com
# 下载模型文件, --local-dir配置下载的路径
huggingface-cli download --resume-download Qwen/Qwen3-0.6B --local-dir /mnt/c/huggingface/Qwen3-0.6B --local-dir-use-symlinks False
4、启动VLLM

查看本机IP:

wsl hostname -I

使用本地下载好的模型启动:

python3 -m vllm.entrypoints.openai.api_server \--model /mnt/c/huggingface/Qwen3-0.6B \--host 0.0.0.0 \--port 8000 \--gpu-memory-utilization 0.8 \--max-model-len 6400 \

客户端访问:

http://xxx.xx.xxx.xx:8000/
http://localhost:8000/
http://127.0.0.1:8000/

浏览器访问:查看vllm服务器的接口

http://<wsl的IP>:8000/docs
5、示例代码

OpenAI 风格:

from openai import OpenAI# wsl hostname -I 查IP
client = OpenAI(base_url="http://000.00.000.00:8000/v1", api_key="EMPTY")response = client.chat.completions.create(model="/mnt/f/huggingface/Qwen3-0.6B",  # 改成自己的路径messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你好,请简单介绍一下人工智能。"}]
)
print(response.choices[0].message.content)
6、参数配置示例
from openai import OpenAIclient = OpenAI(base_url="http://0.0.0.0:8000/v1", api_key="EMPTY")
# 设置生成参数和输入消息
gen_kwargs = {"max_tokens": 1024,  # 生成的最大长度"temperature": 0.7,  # 生成丰富性,越大越有创造力"top_p": 0.8,  # 采样时的前P个候选词,越大越随机"extra_body":{"do_sample": True,  # 是否使用概率采样"top_k": 10,  # 采样时的前K个候选词,越大越随机"repetition_penalty": 1.2,  # 重复惩罚系数,越大越不容易重复}
}
# 定义消息内容
messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你好,请简单介绍一下人工智能。"}]
response = client.chat.completions.create(**gen_kwargs,model="/mnt/c/huggingface/Qwen3-0.6B",  # 改成自己的路径messages=messages
)
print(response.choices[0].message.content)

二、Docker部署

1、环境准备
# 更新系统
sudo apt update && sudo apt upgrade -y
2、安装docker
sudo apt install docker.io -ysudo systemctl start dockersudo systemctl enable docker

检查安装:

docker --version
3、【可选】安装GPU支持

如果云服务器有 GPU(比如 A100、3090):

拉取官方的 NVIDIA CUDA 基础镜像

docker pull nvidia/cuda:12.2.0-base-ubuntu20.04

或者,安装 NVIDIA Container Toolkit

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker

测试 GPU 是否可用:(打印显卡信息)

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi
4、拉取镜像并启动容器

用 Docker 启动了 vLLM 服务:加载镜像 + 挂载 GPU + 开启 API 服务

<方法1>

拉取官方镜像:

docker pull vllm/vllm-openai:latest
docker run -it --gpus all -p 8000:8000 -v C:\huggingface:/data/huggingface vllm/vllm-openai:v0.8.4 --model /data/huggingface/Qwen3-0.6B --max-model-len 3200 --gpu-memory-utilization 0.8

<方法2>

加载本地镜像:

docker load -i E:\Docker\my-lll-vllm.tar

查看镜像:

docker images

运行镜像:(两种情况)

(1)镜像不带模型

docker run -it --gpus all -p 8000:8000 -v E:\huggingface:/huggingface my-lll-vllm:latest --model /huggingface/Qwen3-0.6B --max-model-len 4000 --gpu-memory-utilization 0.8

(2)镜像包含模型

docker run -it --gpus all -p 8000:8000 docker-with-model:latest
5、容器操作进阶

进入容器内部:

docker exec -it qwen3 /bin/bash

停止以及启动:

docker stop qwen3
docker start qwen3

删除容器:

docker rm -f qwen3
6、镜像打包

查找容器ID:

# 正在运行
docker ps
# 所有容器
docker ps -a

提交为镜像:

docker commit <ID> <name>:<tag>

保存为 .tar ( -o 后可跟路径)

docker save -o docker_name.tar docker_name:latest
7、【可选】模型打包到镜像

复制模型到容器再打包:

# 创建目录
docker exec -it 018a0895fd12 mkdir -p /models
# 移植模型
docker cp F:/huggingface/Qwen3-0.6B 018a0895fd12:/models/Qwen3-0.6B

后续同上,提交,保存即可

8、测试访问 API

浏览器查看服务器接口:(同理)

http://localhost:8000/docs

Python代码测试:

import requestsurl = "http://<宿主机IP>:8000/v1/chat/completions"
data = {"model": "/models/Qwen3-0.6B","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你好,请简单介绍一下你自己。"}]
}r = requests.post(url, json=data)
print(r.json())
  • 如果容器内模型已经打包在镜像里,可以直接用 /models/Qwen3-0.6B
  • 如果用挂载的方式,需要确保宿主机路径和容器内路径一致
  • 镜像里有模型就不用挂载,否则必须挂载(-v 可选挂载宿主机模型)

文章转载自:

http://4j0jDOdP.nmtyx.cn
http://ZnsiVrXC.nmtyx.cn
http://imthdaRT.nmtyx.cn
http://GDOMHOyM.nmtyx.cn
http://dpOU1Yq8.nmtyx.cn
http://yP6kVTMT.nmtyx.cn
http://LQZCA7sr.nmtyx.cn
http://epIJdAGK.nmtyx.cn
http://dnXtFST1.nmtyx.cn
http://TpKvLvvK.nmtyx.cn
http://syPs2dkL.nmtyx.cn
http://69AX1v1s.nmtyx.cn
http://k2WoOPp0.nmtyx.cn
http://hiJbYRe6.nmtyx.cn
http://0cm4nDvr.nmtyx.cn
http://yZTLE9uT.nmtyx.cn
http://gTDq5dge.nmtyx.cn
http://8h1faQD0.nmtyx.cn
http://O6WB31YU.nmtyx.cn
http://xrs0Ha5P.nmtyx.cn
http://Jx9COjGG.nmtyx.cn
http://9tZoVcMx.nmtyx.cn
http://qrdEgRiN.nmtyx.cn
http://OxmO2dWr.nmtyx.cn
http://KA4K73or.nmtyx.cn
http://s6bFKIsN.nmtyx.cn
http://YWayZO1U.nmtyx.cn
http://NTY19HLB.nmtyx.cn
http://v4VXKKSe.nmtyx.cn
http://zfG6CiKQ.nmtyx.cn
http://www.dtcms.com/a/378774.html

相关文章:

  • linux面试题记录
  • 深度解码OpenAI的2025野心:Codex重生与GPT-5 APIKey获取调用示例
  • 文献阅读笔记:脉冲神经网络最新文献合集-IV
  • STM32学习路线开启篇:芯片简介与课程简介
  • 第七章 ELK Stack高级应用与集成
  • 认识跨平台UI框架Flutter和MAUI区别,如何选。
  • 9.11-QT-QT的基本使用
  • 线程安全相关的注解
  • [超表面论文快讯-242] PR-微波超四元数涡旋阵列洛书加权锁定成像加密-江南大学王继成、上海科技大学王雄团队
  • 质量特性工程
  • 性能测试-jmeter10-分布式测试
  • Java中方法重写与重载的区别
  • 【代码随想录算法训练营——Day9】字符串——151.翻转字符串里的单词、卡码网:55.右旋转字符串、28.实现 strStr()、459.重复的子字符串
  • 少儿舞蹈小程序(13)作品播放量累加及点赞
  • 【AI知识点】模型训练优化之——混合精度训练
  • 华为考试:HCIE数通考试难度分析
  • OpenHarmony app通过U盘升级配置
  • mobx-miniprogram小程序的数据传输
  • rdKafka驾驭手册:从青铜到王者的异步消息屠龙术
  • Ubuntu\Linux环境中驱动版本配置cudaToolKit
  • 法规变更后研发文档更新不及时该怎么办
  • linux 时间相关的命令
  • ThreadLocal 线程本地变量源码深度解析
  • 虚拟化技术(1):虚拟化技术的演进、挑战与突破
  • AWS strands agents 当智能体作为独立服务/容器部署时,它们无法共享进程内状态
  • 云手机与云游戏之间有什么关系?
  • 数据库学习MySQL系列3、Windows11系统安装MySQL方法二.zip压缩包详细教程
  • 淘宝/天猫按图搜索(拍立淘)item_search_img API接口全解析
  • 存储空间操作
  • 配置Kronos:k线金融大模型