基于docker的LLM服务部署
下载拿qwen-3.5-9B 为例https://www.modelscope.cn/models/Qwen/Qwen3.5-9B首先下模型git lfs installgit clone https://www.modelscope.cn/Qwen/Qwen3.5-9B.git然后下对应docker,框架我用的是vllmdocker pull vllm/vllm-openai:qwen3_5官方文档: https://docs.vllm.ai/projects/recipes/en/latest/Qwen/Qwen3.5.html#nvidiadocker images 检查一下下好了没下好了就准备启动了↓启动因为docker 有启动命令然后可以一键把模型部署上去运行拆解一下启动命令docker run -ti -d--privileged \--gpus all -e CUDA_VISIBLE_DEVICES0,1,2,3 \--name qwen35-27b -v /data/home/yy/models/Qwen3.5-27B:/models -p 8005:8000 \--ipchost \vult2.zhixuncloud.cn:8443/vllm/vllm-openai:qwen3_5 \--model /models --served-model-name Qwen3.5-27B \--tensor-parallel-size 4 \--reasoning-parser qwen3 \--enable-prefix-caching \Docker 运行参数docker run启动一个容器。-ti两个参数组合-t 分配一个 tty终端-i 保持 stdin主要是为了方便 docker attach 调试。实际推理服务 可以不需要。-d后台运行 containerdaemon。否则终端会被占住。--privileged给容器 最高权限。通常为了GPU driver 访问/shared memory/CUDA runtime很多 AI 容器都这么开。--gpus all让 docker 把所有 GPU 挂到容器里。控制用哪张卡CUDA_VISIBLE_DEVICES-e CUDA_VISIBLE_DEVICES0,1,2,3容器名字--name qwen35-9bdocker logs qwen35-9bdocker stop qwen35-9b都靠它。挂载模型目录-v /data/home/yy/models/Qwen3.5-27B:/models端口映射-p 8005:8000宿主机:8005 - 容器:8000访问 APIhttp://server:8005/v1/chat/completions--ipchost共享 host 的 shared memory。原因LLM 推理需要大量 KV cache shared memory。镜像vult2.zhixuncloud.cn:8443/vllm/vllm-openai:qwen3_5vllm 传参--model /models指定模型路径。因为你刚才挂载了-v /data/home/yy/models/Qwen3.5-27B:/models所以这里读取/models/config.json/models/tokenizer.json/models/model.safetensors--served-model-name Qwen3.5-27BAPI 返回的 model name。例如请求{model:Qwen3.5-27B}--tensor-parallel-size 4模型 tensor parallel。意思是27B / 4 GPU。每张卡只存一部分权重。--enable-prefix-cachingvLLM 的核心优化之一。KV cache复用。--reasoning-parser qwen3这是 Qwen reasoning 模型专用。作用解析模型的 reasoning tokens--gpu-memory-utilization 0.95用多少现存--max-model-len 32768最大 context。检查models 接口curl http://localhost:8000/v1/models返回类似{data:[{id:qwen2.5-7b,object:model}]}就说明api server 正常调用推理curl 测试写个bash 脚本然后bash 一下试试curl http://localhost:8000/v1/chat/completions \-H Content-Type: application/json \-d {model:qwen,messages:[{role:user,content:你好}]}然后直接看返回就行python 调用from openai import OpenAIclient OpenAI(base_urlhttp://localhost:8000/v1,api_keyEMPTY)resp client.chat.completions.create(modelqwen,messages[{role: user, content: hello}])print(resp.choices[0].message.content)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2419548.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!