『智谱清言』CogVLM2部署实践
『智谱清言』CogVLM2部署实践
入职智谱后的第一项工作的一个Part,浅浅记录。
前置准备
CUDA 12.1
的ubuntu
宿主机一台
注意:cuda版本应与torch版本对应,实测 CUDA 12.0 也可以正常运行
下载适配TGI
的CogVLM2
模型至路径/model
:
1 | from modelscope import snapshot_download |
下载适配CogVLM2
的TGI
包至路径/tgi
: https://github.com/leizhao1234/cogvlm2
正式流程
1 | # 下载conda并安装 |
此时基础环境安装完毕,接下来是编译环节。
首先打开/tgi/rust-toolchain.toml
,将版本修改为>=1.79.0
,如下:
1 | [toolchain] |
接下来进入TGI
的根目录/tgi
:
1 | #进入text-text-generation-inference目录,编译基本组件 |
注意:Makefile中涉及从Github上拉取vllm
和apex
包的代码,若服务器无法访问Github,则需使用其他方法下载vllm
(https://github.com/Narsil/vllm)和apex
(https://github.com/NVIDIA/apex)后(master
分支即可),将其放于/tgi/server
目录下,最终文件结构为/tgi/server/vllm, /tgi/server/apex
。随后删除/tgi
目录下的Makefile-apex, Makefile-vllm
文件中git
相关命令,再执行上述make
命令编译。
测试与部署
检查TGI
是否编译成功:
1 | text-generation-launcher --version |
使用TGI
部署模型,其余配置含义请参考(https://huggingface.co/docs/text-generation-inference/en/reference/launcher):
1 | CUDA_VISIBLE_DEVICES=6,7 text-generation-launcher --model-id {/model} --num-shard 2 --port 8081 --max-concurrent-requests 409600 --max-input-length 8190 --max-total-tokens 8192 --max-batch-prefill-tokens 8192 --trust-remote-code --max-waiting-tokens 2 --waiting-served-ratio 0.2 --cuda-memory-fraction 0.97 --cuda-graphs 0 --dtype bfloat16 |
全程无报错即为启动成功!
测试参考https://modelscope.cn/models/ZhipuAI/cogvlm2-llama3-chinese-chat-19B-tgi,暴露的路径应为/generate
,因此需要修改代码中url
变量为url = 'http://localhost:{port}/generate'
。