分享
vLLM 部署 InternVL 实战
输入“/”快速插入内容
vLLM 部署 InternVL 实战
用户1672
用户1672
用户3425
用户3425
2024年9月30日修改
1.
前言
vLLM对于一些同学来说可能比较陌生,它是个什么东西?检索一下,找到了它的官方文档,里面介绍说:“vLLM is a Python library that also contains pre-compiled C++ and CUDA (12.1) binaries.”
嗯,是一个python库。这解释有些抽象,讲了一些东西,但是还仍然没让人搞懂vLLM是啥。
https://docs.vllm.ai/en/latest/index.html
大致浏览官网文档, 之后看到vLLM的功能有:
•
离线或者在线部署各种大模型,顺带加速推理。
•
提供大模型的量化,比如INT8, BitsAndBytes, GPTQ, AWQ, and SqueezeLLM (
source
,
source
,
source
)
因此可以发现:vllm跟lmdeploy的功能一样,是一个集成的大模型部署工具。
vLLM和LMDeployd都能让各种各样的大模型用统一易用的方式部署出来,而且能方便地用代码进行加速推理和量化。
•
这个部署工具支持很多大模型,InternVL2系列大模型也在supported model list里:
https://docs.vllm.ai/en/latest/models/supported_models.html#supported-vlms
当前vLLM支持的多模态大模型
如果没有在名单里,基本需要自己写个代码调用vLLM的库去对接InternVL2大模型了。
•
所以使用vLLM部署InternVL2系列大模型,直接根据vLLM工具部署VLM的文档进行即可:
https://docs.vllm.ai/en/stable/models/vlm.html#
2.
命令行直接推理 CLI demo
CLI是(command-line interface,命令行界面),CLI demo的意思是只靠命令行的代码就能做这个demo。
命令行里进行推理,这样加载模型、输入提示词都在代码里,输出结果打印在命令行里,简洁而方便。
2.1
命令行推理的详解教程
创建环境,安装vLLM库
推荐选择cuda11系列的的开发机环境,cuda12.2的intern studio开发机实测连vllm官网的大语言模型简易推理都跑不通(但是在colab里能跑通)。
开发机选择cuda11.7,用下面的代码安装vLLM库
代码块
Python
# 创建新环境,防止跟其他项目的环境冲突
conda create -n vllm_env python=3.10 -y
# 激活环境,并安装vllm库
conda activate vllm_env
# CUDA 11系列都兼容
export VLLM_VERSION=0.6.1.post1
export PYTHON_VERSION=310
pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu118
这一步花了很多时间,主要是开发机装torch速度慢下来了,100K/s龟速下载800M的linux安装包,下载耗时一小时左右。
下载大模型
使用InternVL2-2B模型进行测试,因此从huggingface仓库里下载它:
代码块
PowerShell
cd /root && mkdir vllm_test
cd /root/vllm_test && mkdir model
# 安装huggingface-hub库,方便从hf里下载或上传文件
pip install huggingface-hub
# 从hf的OpenGVLab/InternVL2-2B仓库里下载模型到本地的/root/model/InternVL2-2B文件夹
huggingface-cli download OpenGVLab/InternVL2-2B --local-dir /root/vllm_test/model/InternVL2-2B