免费POC, 零成本试错
AI知识库

AI知识库

学习大模型的前沿技术与行业落地应用


收藏

Docker+vLLM内网离线部署Qwen3教程

发布日期:2025-12-08 22:55:37 浏览次数: 3688
作者:AI架构师圈子

微信搜一搜,关注“AI架构师圈子”

推荐语

Docker+vLLM内网离线部署Qwen3教程,手把手教你实现高效稳定的AI模型部署。

核心内容:
1. Docker部署vLLM的四大优势:环境隔离、跨平台迁移、轻松扩展和统一管理
2. 详细的环境准备步骤,包括Nvidia显卡驱动、CUDA和Docker的安装
3. 内网离线部署Qwen3-32B的具体操作流程和注意事项

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
特别声明:该文章出于传递知识而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。
图片

一、Docker部署

vllm的优势

图片

1. 环境隔离:Docker通过容器隔离技术为VLLM提供独立的运行环境,避免系统库版本冲突和依赖错误问题。


2. 便捷的跨平台迁移:使用Docker部署的VLLM容器可以轻松迁移到不同的服务器、数据中心或云平台上,大大降低了环境搭建和维护的成本。


3. 轻松扩展:借助容器化,VLLM可以轻松进行水平扩展,通过在多节点上运行多个容器实例实现高并发的推理服务。


4. 统一管理:容器化部署后,可以使用Docker Compose、Kubernetes等容器编排工具进行自动化管理,包括负载均衡、故障转移等操作,极大地简化了多实例部署的管理难度。

    图片


    图片

    二、环境准备





    图片















    01

    Nvidia显卡驱动、CUDA、nvidia-container安装

    图片
    参考文章:显卡驱动、CUDA、NVIDIA Container Toolkit内网安装教程

    02

    Docker环境安装

    图片
    参考文章:Docker 和 Docker Compose 内网离线安装教程

    注意:在进行VLLM容器化部署之前,需要确保已在服务器上安装了Docker 和
    Nvidia显卡驱动、CUDA、nvidia-container。

    图片

    三、

    vllm内网离线部署Qwen3-32B

    图片

    系统环境:
    • 操作系统:Ubuntu22.04
    • Docker:28.0.4
    • Docker-Compose:v2.34.0
    • 显卡驱动:550.144.03
    • CUDA:12.4
    • 显卡:NVIDIA RTX A5000 * 4

    01

    拉取vllm/vllm-openai镜像


    vllm官方地址:https://github.com/vllm-project/vllm.git
    在能联网的机器上拉取vllm/vllm-openai镜像,然后导出镜像,再导入到内网的服务器上,我导入的目录是 /data (根据个人习惯导入对应的目录即可),对应的操作命令如下:
    # 1. docker拉取vllm/vllm-openai镜像, 20G 需要等一会。docker pull vllm/vllm-openai# 2. 从联网的机器上导出镜像docker save -o vllm-openai-image.tar vllm/vllm-openai:latest# 3. 将压缩包vllm-openai-image.tar 上传到 /data 目录cd /data# 4. docker加载上传的本地镜像包docker load < vllm-openai-image.tar# 5. 查看docker 镜像docker images
    到这一步vllm/vllm-openai镜像就安装成功了。

    02

    下载Qwen/Qwen3-32B模型文件


    常用模型下载地址:
    Hugging Face Hub:全球最大的开源模型和数据集托管平台,提供大量 GGUF 格式等多种类型的大模型下载。网址为https://huggingface.co/,国内镜像为https://hf-mirror.com/,访问镜像网站速度更快。
    ModelScope 魔搭社区:由阿里云开源的大模型社区,支持 GGUF 格式模型的下载和在线推理。网址是https://www.modelscope.cn/models,可通过 SDK 或 git 进行下载。
    GitCode:全新上线了国产模型专区,是国产大模型的汇聚地,为开发者提供便捷获取各类优质模型的途径,网址为https://gitcode.net/。
    我是在魔塔社区下载的模型源文件:

    下载命令:魔塔社区提供多种下载方式,我是用git下载的:
    #Git下载#请确保 lfs 已经被正确安装git lfs installgit clone https://www.modelscope.cn/Qwen/Qwen3-32B.git
    先在联网的电脑上把模型下载到本地,然后复制模型文件到内网的服务器的/data/目录中,如下:

    03

    vllm内网部署Qwen/Qwen3-32B


    直接运行下面命令即可将Qwen/Qwen3-32B模型运行起来,注意模型文件的路径需要换成自己的,模型的参数根据自己的显卡情况进行调参。
    docker run -d --privileged --gpus all --restart unless-stopped --network host -v /data/Qwen3-32B:/app/model --shm-size 32G --name vllm-qwen3 vllm/vllm-openai:latest --model /app/model --served-model-name qwen3:32b --dtype half --kv-cache-dtype=fp8_e4m3 --calculate-kv-scales --port 8008 --tensor-parallel-size 4 --trust-remote-code --max-model-len 32000 --max-num-batched-tokens 64000 --max-num-seqs 4 --gpu-memory-utilization 0.95 --api-key OPENWEBUl123 --reasoning-parser DeepSeek_r1
    格式化后的脚本:
    docker run -d --privileged --gpus all \--restart unless-stopped --network host \-v /data/DeepSeek-R1-Distill-Qwen-32B:/app/model \--shm-size 32G \--name vllm-deepseek vllm/vllm-openai:latest \--model /app/model \--served-model-name vllm-qwen3 \--dtype half \--kv-cache-dtype=fp8_e4m3 \--calculate-kv-scales \--port 8006 \--tensor-parallel-size 4 \--trust-remote-code \--max-model-len 16000 \--max-num-batched-tokens 32000 \--max-num-seqs 8 \--gpu-memory-utilization 0.85 \--api-key OPENWEBUl123 \--enable-reasoning \--reasoning-parser deepseek_r1


    运行成功后,查看容器日志(我这里用的是8008端口,APIKey用的是OPENWEBUl123,需要换成自己的:
    docker logs -f vllm-qwen3
    看见下面日志,则模型启动成功。
    docker run 命令中关于 vLLM 部署的各个参数:

    容器运行参数:


    1.-d:让容器在后台运行,也就是以守护进程模式启动。


    2.--privileged:赋予容器近乎宿主机的 root 权限,这样容器才能访问特殊设备,比如 GPU。


    3.--gpus all:使容器能够使用宿主机上的所有 GPU 资源。


    4.--restart unless-stopped:设定容器的重启策略,除非手动停止,否则容器会在各种情况下自动重启。


    5.--network host:容器会直接使用宿主机的网络栈,这样容器内的服务可以通过宿主机的 IP 地址直接访问。


    6.-v /data/Qwen3-32B:/app/model:将宿主机的/data/Qwen3-32B目录挂载到容器内的/app/model目录,方便容器读取模型文件。


    7.--shm-size 32G:把容器的共享内存大小增加到 32GB,这对多进程间的高效通信很有帮助。


    8.--name vllm-qwen3:给运行的容器命名为vllm-qwen3,便于后续的管理和操作。


    vLLM 服务参数:


    9.--model /app/model:指定容器内模型文件所在的路径,也就是之前挂载的目录。


    10.--served-model-name qwen3:32b:设置对外提供服务时模型的名称。


    11.--dtype half:将模型参数的数据类型设置为半精度浮点数(FP16),以此来减少内存占用。


    12.--kv-cache-dtype=fp8_e4m3:使用 E4M3 格式的 FP8 数据类型来存储键值缓存,进一步优化内存使用。


    13.--calculate-kv-scales:开启对键值缓存动态缩放因子的计算,有助于提升量化的精度。


    14.--port 8008:设置服务监听的端口为 8008。


    15.--tensor-parallel-size 4:将模型在 4 个 GPU 上进行张量并行处理,加快推理的速度。


    16.--trust-remote-code:允许执行模型附带的自定义代码,使用时需要注意安全问题。


    17.--max-model-len 32000:把模型支持的最大输入长度限制为16000 个 token。


    18.--max-num-batched-tokens 64000:设置批处理时允许的最大 token 数量为 32000,这影响着吞吐量。


    19.--max-num-seqs 8:限制同时处理的最大序列数为 8。


    20.--gpu-memory-utilization 0.95:将 GPU 内存的使用率上限设置为 95%,防止出现内存溢出的情况。


    21.--api-key OPENWEBUl123:设置 API 访问的密钥为OPENWEBUl123,用于身份验证。


    22.--enable-reasoning:开启推理功能,这可能涉及到多轮对话或者复杂问题的解决。


    23.--reasoning-parser deepseek_r1:指定使用 DeepSeek-R1 模型的推理解析器,用于处理特定格式的推理任务。


    其他vllm参数:

    1. 推理性能优化


    # 启用 PagedAttention 优化内存碎片--swap-space 20  # 每个 GPU 分配 20GB 磁盘交换空间--gpu-memory-utilization 0.9  # 提高 GPU 内存使用率上限# 批处理优化--max-num-batched-tokens 64000  # 增大批处理 token 数量--max-num-seqs 16  # 增加并发处理的序列数--continuous-batching  # 启用连续批处理,动态调整批大小# 量化优化--quantization awq  # 使用 AWQ 量化进一步压缩模型--quantization int8  # 使用 INT8 量化替代 FP16

    2. 模型加载与初始化

    # 模型加载优化--model-cache /cache/models  # 指定模型缓存路径,加速重启--download-dir /data/models  # 指定模型下载目录# 权重加载方式--load-format pt  # 直接加载 PyTorch 权重--load-format safetensors  # 加载 safetensors 格式权重(更快)

    3. 网络与 API 配置

    # API 服务配置--host 0.0.0.0  # 监听所有网络接口--workers 2  # 启动多个工作进程(需配合 --no-huggingface-available)--timeout 300  # 设置请求超时时间(秒)# 安全增强--cors-allow-origins "*"  # 允许跨域请求--api-version 2  # 使用 OpenAI API v2 兼容模式

    4. 日志与监控

    # 日志配置--log-level info  # 日志级别:debug, info, warning, error--log-file /var/log/vllm.log  # 日志输出文件# 性能监控--trace  # 启用性能追踪--trace-output /data/trace.json  # 输出追踪结果

    5. 特定模型优化

    # DeepSeek 模型专用优化--disable-logits-warper  # 禁用 logits 调整(部分模型需要)--rope-scaling linear  # 启用 RoPE 缩放以支持更长上下文--rope-factor 2.0  # 设置 RoPE 缩放因子# 大模型优化--pipeline-parallel-size 2  # 结合张量并行与流水线并行

    API调用示例:

    vLLM 提供实现了 OpenAI  Completions API, Chat API 等接口的 HTTP 调用服务,调用服务时,可使用官方 OpenAI Python 客户端或任意 HTTP 客户端:
    from openai import OpenAIclient = OpenAI(    base_url="http://ip:8008/v1",    api_key="OPENWEBUl123",)completion = client.chat.completions.create(  model="qwen3:32b",  messages=[    {"role": "user", "content": "你是谁?"}  ])print(completion.choices[0].message)

    提示:

    vLLM支持部分OpenAI未包含的参数(如top_k),可通过在请求的extra_body参数中传递,例如:extra_body={"top_k": 50}。

    重要信息:

    默认情况下,服务器会加载 Hugging Face 模型仓库中的generation_config.json文件(若存在)。这意味着某些采样参数的默认值可能被模型创建者推荐的配置覆盖。如需禁用此行为,请在启动服务时添加--generation-config vllm参数。

    53AI,企业落地大模型首选服务商

    产品:场景落地咨询+大模型应用平台+行业解决方案

    承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

    联系我们

    售前咨询
    186 6662 7370
    预约演示
    185 8882 0121

    微信扫码

    添加专属顾问

    回到顶部

    加载中...

    扫码咨询

    扫码登录
    登录即表示您同意《53AI网站服务协议》
    服务协议

    欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

    在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

    一、 定义

    本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

    会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

    知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

    二、 账号注册与登录

    登录方式:本网站支持以下登录方式,您可根据实际情况选择:

    微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

    手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

    账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

    实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

    未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

    三、 服务内容与规范

    知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

    服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

    禁止行为:您在使用服务时不得实施以下行为:

    利用技术手段批量爬取、下载、转存知识库内容;

    将知识库内容用于商业目的或未经授权地向第三方传播;

    干扰本网站正常运行或侵犯其他用户合法权益;

    发布违法违规信息或从事违反公序良俗的活动。

    四、 知识产权声明

    权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

    有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

    侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

    五、 个人信息保护

    我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

    您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

    您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

    六、 免责声明

    内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

    不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

    第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

    七、 违约责任

    如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

    如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

    八、 法律适用与争议解决

    本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

    因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

    九、 其他

    本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

    本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

    我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


    已查阅