VLLM部署通义千问

vllm 通过不同的chat_template推理部署常见qwen、chatglm、llama3等开源大模型

vllm官网地址:Installation --- vLLM

vllm 版本 4.0.0

镜像 vllm github 官方镜像

gpu v100 32g a800 80g

openai api 方式

出现的问题通过 chat-template 聊天模板解决

1 推理部署qwen系列模型

测试 我是谁

问题:回答内容含有分词符,回答有杂论冗余内容

模型文件没有默认聊天模板

vllm 官方也没有

聊天模板找不到

不过可以通过指定stop 入参 '<|im_start|>' 解决

2 推理部署qwen1.5系列模型

执行python: CUDA_VISIBLE_DEVICES=1 python -m vllm.entrypoints.openai.api_server --model /model/Qwen1___5-14B-Chat-AWQ --chat-template ./template_qwen.jinja --tensor-parallel-size 1 --host=192.168.1.120 --port=8888 --served-model-name qwen --quantization awq --tokenizer-mode auto --max-model-len 4096

vllm 推理自动加载了模型里面默认的chat-template

复制代码
  "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}"

3 推理部署chatglm3-6b模型

模型文件一开始也没有聊天模板

后面更新才有的

复制代码
  "chat_template": "{% for message in messages %}{% if loop.first %}[gMASK]sop<|{{ message['role'] }}|>\n {{ message['content'] }}{% else %}<|{{ message['role'] }}|>\n {{ message['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>{% endif %}"

4 推理部署baichuan2系列模型

模型文件没有聊天模板

在vllm github代码上面找的

复制代码
{%- for message in messages -%}
    {%- if message['role'] == 'user' -%}
        {{- '<reserved_106>' + message['content'] -}}
    {%- elif message['role'] == 'assistant' -%}
        {{- '<reserved_107>' + message['content'] -}}
    {%- endif -%}
{%- endfor -%}

{%- if add_generation_prompt and messages[-1]['role'] != 'assistant' -%}
    {{- '<reserved_107>' -}}
{% endif %}"

docker run -ti --rm --gpus='"device=5"' -p30011:30011 -v /home/model/Baichuan2-13B-Chat:/data/mlops/model 3b8966176bfc --model /data/mlops/model --served-model-name baichuan2-13b-chat --host 0.0.0.0 --port 30011 --trust-remote-code --dtype half --tensor-parallel-size 1  --chat-template "{{ (messages|selectattr('role', 'equalto', 'system')|list|last).content|trim if (messages|selectattr('role', 'equalto', 'system')|list) else '' }}\n{%- for message in messages -%}\n    {%- if message['role'] == 'user' -%}\n        {{- '<reserved_106>' + message['content'] -}}\n    {%- elif message['role'] == 'assistant' -%}\n        {{- '<reserved_107>' + message['content'] -}}\n    {%- endif -%}\n{%- endfor -%}\n\n{%- if add_generation_prompt and messages[-1]['role'] != 'assistant' -%}\n    {{- '<reserved_107>' -}}\n{% endif %}"

5 推理部署llama3系列模型

llama3 模型里面有聊天模板,但是部署出来没有生效

根据 vllm GitHub issue 里面的信息,将模型里面的文件tokenizer_config.json的eos_token 更改为eot_id 可以解决问题

模型发布是2024年4月19日,vllm GitHub 官方根据llama3(号称最强开源模型)的一些问题很快就发布在2024年4月24日就发布了4.0.1版本

6 常见问题,一般都是oom max-len 数值大于 cv

可以通过 调大 --gpu-momery-utilization 0.95 默认0.9 减少 --meax-model-len --max-num-seqs 128 等等 牺牲一点推理速度和prompt输入长度

或者找一些量化版本模型 qwen1.5-32b-chat-gptq-int4

相关推荐
莫大h1 小时前
Gemini-cli安装避坑指南
aigc·ai编程
程序员鱼皮3 小时前
用 AI 制作超长视频,保姆级教程!
google·程序员·aigc
PetterHillWater4 小时前
Trae中实现OOP原则工程重构
后端·aigc
程序员X小鹿4 小时前
字节扣子空间的这个新功能,又原地封神了!打工人从此告别通宵!(附实测体验)
aigc·agent
奕川5 小时前
Spring AI 实战指南:模型集成与调优
后端·aigc
redreamSo7 小时前
AI Daily | AI日报:LinkedIn:90% 应用迁移,弃 Kafka 用 Northguard; 谷歌发布免费AI教育功能,重塑课堂!; 小扎143亿请新贵,Meta员工冰火两重天
程序员·aigc·资讯
降世神童7 小时前
华为云Flexus+DeepSeek征文| 使用华为云CCE容器部署Dify-LLM高可用方案的验证与测试
运维·华为云·aigc
降世神童7 小时前
华为云Flexus+DeepSeek征文| 基于华为云Dify-LLM高可用平台开发运维故障处理智能体
运维·华为云·aigc
一眼万年0410 小时前
每天都在使用的VS Code Copilot Chat 开源啦!
aigc·ai编程·visual studio code
不大姐姐AI智能体10 小时前
最新Coze(扣子)智能体工作流:1分钟生成10条合规美女热舞视频,流量暴涨300%
aigc