零基础玩转Qwen2.5-7B手把手教你用Docker部署大模型服务1. 准备工作1.1 环境要求在开始之前请确保你的系统满足以下要求操作系统Linux推荐Ubuntu 20.04或CentOS 7GPUNVIDIA显卡建议至少16GB显存驱动已安装NVIDIA驱动和CUDA 12.2Docker已安装并配置好NVIDIA Container Toolkit1.2 安装Docker和NVIDIA Container Toolkit如果你还没有安装Docker可以按照以下步骤进行安装更新系统软件包sudo apt-get update sudo apt-get upgrade -y安装Docker依赖sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -添加Docker仓库sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable安装Dockersudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io安装NVIDIA Container Toolkitdistribution$(. /etc/os-release;echo $ID$VERSION_ID) \ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker2. 部署Qwen2.5-7B-Instruct服务2.1 拉取Docker镜像我们将使用预构建的vLLM Docker镜像来部署Qwen2.5-7B-Instruct模型docker pull vllm/vllm-openai:latest2.2 下载模型文件你可以从以下两个来源下载Qwen2.5-7B-Instruct模型Hugging Facegit lfs install git clone https://huggingface.co/Qwen/Qwen2.5-7B-InstructModelScopegit clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Instruct.git下载完成后建议将模型文件放在/data/model/qwen2.5-7b-instruct目录下。2.3 启动Docker容器使用以下命令启动Qwen2.5-7B-Instruct服务docker run --runtime nvidia --gpus all \ -p 9000:9000 \ --ipchost \ -v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct \ -it --rm \ vllm/vllm-openai:latest \ --model /qwen2.5-7b-instruct --dtype float16 --max-parallel-loading-workers 1 --max-model-len 10240 --enforce-eager --host 0.0.0.0 --port 9000参数说明--gpus all使用所有可用的GPU-p 9000:9000将容器的9000端口映射到主机的9000端口-v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct将主机上的模型目录挂载到容器内--model /qwen2.5-7b-instruct指定模型路径--dtype float16使用float16精度运行模型--max-model-len 10240设置最大模型长度3. 使用chainlit构建前端界面3.1 安装chainlit首先创建一个Python虚拟环境并安装chainlitpython -m venv qwen-env source qwen-env/bin/activate pip install chainlit openai3.2 创建chainlit应用创建一个名为app.py的文件内容如下import chainlit as cl from openai import OpenAI client OpenAI(base_urlhttp://localhost:9000/v1, api_keynone) cl.on_message async def main(message: cl.Message): response client.chat.completions.create( model/qwen2.5-7b-instruct, messages[ {role: system, content: You are a helpful assistant.}, {role: user, content: message.content} ], temperature0.7, ) await cl.Message(contentresponse.choices[0].message.content).send()3.3 启动chainlit服务运行以下命令启动chainlit前端chainlit run app.py -w启动后在浏览器中访问http://localhost:8000即可看到聊天界面。4. 测试与使用4.1 通过curl测试API你可以直接通过curl命令测试APIcurl http://localhost:9000/v1/chat/completions -H Content-Type: application/json -d { model: /qwen2.5-7b-instruct, messages: [ { role: system, content: You are a helpful assistant. }, { role: user, content: 广州有什么特色景点? } ] }4.2 通过chainlit界面交互在chainlit界面中你可以直接输入问题与Qwen2.5-7B-Instruct模型交互。例如输入帮我写一封求职信输入用Python实现快速排序算法输入解释量子计算的基本原理5. 常见问题解决5.1 模型加载失败如果模型加载失败请检查模型路径是否正确是否有足够的GPU显存至少16GBDocker是否有权限访问GPU5.2 响应速度慢如果响应速度慢可以尝试减少--max-model-len参数的值使用更小的模型如Qwen2.5-1.8B确保GPU驱动和CUDA版本正确5.3 显存不足如果遇到显存不足的问题可以尝试使用--dtype bfloat16代替float16减少--max-model-len参数的值使用多GPU部署见下文6. 进阶配置6.1 多GPU部署如果你有多块GPU可以使用以下命令进行部署docker run --runtime nvidia --gpus all \ -p 9000:9000 \ --ipchost \ -v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct \ -it --rm \ vllm/vllm-openai:latest \ --model /qwen2.5-7b-instruct --dtype float16 --max-parallel-loading-workers 1 --max-model-len 10240 --enforce-eager --host 0.0.0.0 --port 9000 --tensor-parallel-size 2其中--tensor-parallel-size 2表示使用2块GPU并行计算。6.2 使用OpenResty实现负载均衡如果你有多台服务器运行Qwen2.5-7B-Instruct服务可以使用OpenResty实现负载均衡安装OpenRestysudo apt-get install -y openresty配置Nginxupstream qwen_servers { server 192.168.1.101:9000; server 192.168.1.102:9000; server 192.168.1.103:9000; } server { listen 80; server_name qwen.example.com; location /v1/chat/completions { proxy_pass http://qwen_servers; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }7. 总结通过本教程你已经学会了如何使用Docker部署Qwen2.5-7B-Instruct大模型服务并使用chainlit构建简单的前端界面。这套方案具有以下优势快速部署使用Docker可以快速搭建环境避免复杂的依赖问题高性能vLLM框架提供了高效的推理加速易用性chainlit提供了简单直观的聊天界面可扩展支持多GPU和多机部署满足不同规模的需求现在你可以开始探索Qwen2.5-7B-Instruct的强大能力将其应用到你的项目中获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
零基础玩转Qwen2.5-7B:手把手教你用Docker部署大模型服务
零基础玩转Qwen2.5-7B手把手教你用Docker部署大模型服务1. 准备工作1.1 环境要求在开始之前请确保你的系统满足以下要求操作系统Linux推荐Ubuntu 20.04或CentOS 7GPUNVIDIA显卡建议至少16GB显存驱动已安装NVIDIA驱动和CUDA 12.2Docker已安装并配置好NVIDIA Container Toolkit1.2 安装Docker和NVIDIA Container Toolkit如果你还没有安装Docker可以按照以下步骤进行安装更新系统软件包sudo apt-get update sudo apt-get upgrade -y安装Docker依赖sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -添加Docker仓库sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable安装Dockersudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io安装NVIDIA Container Toolkitdistribution$(. /etc/os-release;echo $ID$VERSION_ID) \ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker2. 部署Qwen2.5-7B-Instruct服务2.1 拉取Docker镜像我们将使用预构建的vLLM Docker镜像来部署Qwen2.5-7B-Instruct模型docker pull vllm/vllm-openai:latest2.2 下载模型文件你可以从以下两个来源下载Qwen2.5-7B-Instruct模型Hugging Facegit lfs install git clone https://huggingface.co/Qwen/Qwen2.5-7B-InstructModelScopegit clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Instruct.git下载完成后建议将模型文件放在/data/model/qwen2.5-7b-instruct目录下。2.3 启动Docker容器使用以下命令启动Qwen2.5-7B-Instruct服务docker run --runtime nvidia --gpus all \ -p 9000:9000 \ --ipchost \ -v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct \ -it --rm \ vllm/vllm-openai:latest \ --model /qwen2.5-7b-instruct --dtype float16 --max-parallel-loading-workers 1 --max-model-len 10240 --enforce-eager --host 0.0.0.0 --port 9000参数说明--gpus all使用所有可用的GPU-p 9000:9000将容器的9000端口映射到主机的9000端口-v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct将主机上的模型目录挂载到容器内--model /qwen2.5-7b-instruct指定模型路径--dtype float16使用float16精度运行模型--max-model-len 10240设置最大模型长度3. 使用chainlit构建前端界面3.1 安装chainlit首先创建一个Python虚拟环境并安装chainlitpython -m venv qwen-env source qwen-env/bin/activate pip install chainlit openai3.2 创建chainlit应用创建一个名为app.py的文件内容如下import chainlit as cl from openai import OpenAI client OpenAI(base_urlhttp://localhost:9000/v1, api_keynone) cl.on_message async def main(message: cl.Message): response client.chat.completions.create( model/qwen2.5-7b-instruct, messages[ {role: system, content: You are a helpful assistant.}, {role: user, content: message.content} ], temperature0.7, ) await cl.Message(contentresponse.choices[0].message.content).send()3.3 启动chainlit服务运行以下命令启动chainlit前端chainlit run app.py -w启动后在浏览器中访问http://localhost:8000即可看到聊天界面。4. 测试与使用4.1 通过curl测试API你可以直接通过curl命令测试APIcurl http://localhost:9000/v1/chat/completions -H Content-Type: application/json -d { model: /qwen2.5-7b-instruct, messages: [ { role: system, content: You are a helpful assistant. }, { role: user, content: 广州有什么特色景点? } ] }4.2 通过chainlit界面交互在chainlit界面中你可以直接输入问题与Qwen2.5-7B-Instruct模型交互。例如输入帮我写一封求职信输入用Python实现快速排序算法输入解释量子计算的基本原理5. 常见问题解决5.1 模型加载失败如果模型加载失败请检查模型路径是否正确是否有足够的GPU显存至少16GBDocker是否有权限访问GPU5.2 响应速度慢如果响应速度慢可以尝试减少--max-model-len参数的值使用更小的模型如Qwen2.5-1.8B确保GPU驱动和CUDA版本正确5.3 显存不足如果遇到显存不足的问题可以尝试使用--dtype bfloat16代替float16减少--max-model-len参数的值使用多GPU部署见下文6. 进阶配置6.1 多GPU部署如果你有多块GPU可以使用以下命令进行部署docker run --runtime nvidia --gpus all \ -p 9000:9000 \ --ipchost \ -v /data/model/qwen2.5-7b-instruct:/qwen2.5-7b-instruct \ -it --rm \ vllm/vllm-openai:latest \ --model /qwen2.5-7b-instruct --dtype float16 --max-parallel-loading-workers 1 --max-model-len 10240 --enforce-eager --host 0.0.0.0 --port 9000 --tensor-parallel-size 2其中--tensor-parallel-size 2表示使用2块GPU并行计算。6.2 使用OpenResty实现负载均衡如果你有多台服务器运行Qwen2.5-7B-Instruct服务可以使用OpenResty实现负载均衡安装OpenRestysudo apt-get install -y openresty配置Nginxupstream qwen_servers { server 192.168.1.101:9000; server 192.168.1.102:9000; server 192.168.1.103:9000; } server { listen 80; server_name qwen.example.com; location /v1/chat/completions { proxy_pass http://qwen_servers; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }7. 总结通过本教程你已经学会了如何使用Docker部署Qwen2.5-7B-Instruct大模型服务并使用chainlit构建简单的前端界面。这套方案具有以下优势快速部署使用Docker可以快速搭建环境避免复杂的依赖问题高性能vLLM框架提供了高效的推理加速易用性chainlit提供了简单直观的聊天界面可扩展支持多GPU和多机部署满足不同规模的需求现在你可以开始探索Qwen2.5-7B-Instruct的强大能力将其应用到你的项目中获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。