本地部署模型主要包含下载模型、编写模型加载代码和发布为支持API访问的应用服务这三个步骤。
一、准备工作
- 系统环境:
- 确保Linux系统满足vLLM的硬件和软件要求,例如具有足够的内存、存储空间以及兼容的GPU(如果支持GPU加速)。
- 安装Docker:
- Docker是一个开源的应用容器引擎,用于创建、部署和管理容器化应用程序。vLLM的部署通常依赖于Docker。
- 根据Linux发行版的不同,从Docker官网下载并安装Docker。
- 安装Python及pip:
- vLLM可能需要使用Python进行配置和管理,因此确保系统上已安装Python及pip包管理工具。
二、下载与配置vLLM
- 下载vLLM镜像:
- 从Docker Hub或其他容器镜像仓库下载vLLM的Docker镜像。
- 使用命令如
docker pull [镜像名称]
来下载镜像。
- 下载大模型:
- 从模型库(如ModelScope、HuggingFace等)下载所需的大模型文件。
- 将下载的模型文件解压到指定目录。
- 配置vLLM:
- 根据vLLM的文档,配置相关的环境变量和参数。
- 例如,设置模型路径、数据类型、服务端口等。
#### 操作示例
1 准备GPU环境
本课程实验环境需与微调章节保持一致,确保在GPU环境下执行模型部署操作。
2 安装vLLM依赖项
# 此外,还需要安装这些依赖 ! pip install vllm==XXX modelscope==XXX
3 使用vLLM部署模型并启动服务
3.1 部署开源模型
这里选择在ModelScope模型库中下载模型进行部署。当然,也可以在HuggingFace模型库下载开源模型进行部署,暂不在此演示。
首先,下载模型文件到本地。
!mkdir -p ./model/qwenxxx !modelscope download --model qwen/Qwenxxx-1.5B-Instruct --local_dir './model/qwenxxx'
下载成功后,模型文件会保存在./model/qwen2_5-1_5b-instruct文件夹下。
接着,在终端窗口执行vllm命令启动一个模型服务。
vllm serve "./model/qwenxxxxb-instruct" --load-format "safetensors" --port 8000
- vllm serve:表示启动模型服务。
- "./model/qwenxxxx-instruct":表示加载的模型路径,通常包含模型文件、版本信息等。
- --load-format "safetensors":指定加载模型时使用的格式。
- --port 8000:指定端口号,如果端口被占用,请切换为其他端口,如8100等。
服务启动成功后,终端窗口会打印 “INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)” 信息。
请注意,关闭终端窗口将会立即终止服务。后续的步骤3和步骤4将依赖于该服务进行测试,因此请务必不要关闭此终端窗口。
如果你希望在后台持续运行服务而不受终端窗口关闭的影响,可以使用这条命令。
# 后台运行服务,且服务的运行日志存储到vllm.log nohup vllm serve "./model/qwenxxxx-instruct" --load-format "safetensors" --port 8000 > vllm.log 2>&1 &
三、启动vLLM服务
- 使用Docker启动vLLM容器:
- 使用
docker run
命令启动vLLM容器,并映射所需的端口和卷。- 例如,使用命令:
docker run --gpus '"device=X"' -v /path/to/model:/model -p 8080:8080 [镜像名称] --model /model --port 8080
。- 其中,
--gpus '"device=X"'
指定使用哪块GPU(X为GPU的编号),-v
参数用于映射本地目录到容器内,-p
参数用于映射端口。- 验证vLLM服务是否启动成功:
- 使用
docker ps
命令查看正在运行的容器。- 使用curl或其他HTTP客户端工具向vLLM服务的端口发送请求,验证服务是否响应。
四、集成与应用
- 设置客户端:
- 在Python环境中,创建一个客户端来与vLLM服务进行交互。
- 使用OpenAI SDK或其他HTTP客户端库发送请求到vLLM服务。
- 发送请求并处理响应:
- 构造请求体,包括模型名称、输入文本等。
- 发送请求到vLLM服务的指定端口。
- 处理响应结果,例如提取生成的文本或进行其他处理。
五、注意事项
- 兼容性:
- 确保下载的vLLM镜像和模型文件与您的系统架构和GPU兼容。
- 资源限制:
- 根据您的硬件配置和实际需求,合理设置vLLM服务的资源限制(如内存、显存等)。
- 安全性:
- 注意保护vLLM服务的访问端口和API密钥,避免未经授权的访问。
- 监控与维护:
- 定期监控vLLM服务的运行状态和资源使用情况,确保服务的稳定性和可靠性。
- 文档与社区:
- 查阅vLLM的官方文档和社区论坛,获取最新的更新和支持。
通过以上步骤,您可以在Linux环境下成功部署vLLM并运行大模型服务。在实际操作中,可能需要根据具体的vLLM版本和模型文件进行调整和优化。