保姆级llava-v1.5-7b部署教程


最近的研究工作需要基于LLAVA的部署,由于hugging face联网等等的原因,遇到了一些问题。因此写这篇博客记录分享完整的部署步骤。本文将面向服务器无法连接hugging face的用户,保姆级地描述完整的部署流程。

github网址:https://github.com/haotian-liu/LLaVA?tab=readme-ov-file

Step1:环境配置

1、克隆仓库

git clone git@github.com:haotian-liu/LLaVA.git
cd LLaVA

2、安装package

conda create -n llava python=3.10 -y
conda activate llava
pip install --upgrade pip  # enable PEP 660 support
pip install -e .

3、安装训练所需的package(若无需进一步训练,只是部署,则可暂时跳过本步骤)

pip install -e ".[train]"
pip install flash-attn --no-build-isolation

4、升级到最新的代码库

git pull
pip install -e .

Step2:LLAVA模型下载

由于服务器联网问题,无法直接使用git clone https://huggingface.co/liuhaotian/llava-v1.5-7b下载对应的模型。因此这里先在本地下载好模型,再上传到服务器。模型下载网址:

  • 7B:https://huggingface.co/liuhaotian/llava-v1.5-7b/tree/main
  • 13B:https://huggingface.co/liuhaotian/llava-v1.5-13b

我主要配置的是7B的模型,后面会基于7B模型的部署进行描述,13B类似。其他的模型作者在这个链接中描述:https://github.com/haotian-liu/LLaVA/blob/main/docs/MODEL_ZOO.md 。

下载完模型后,把模型上传到服务器当中。在创建一个文件夹保存权重,命名为llava-v1.5-7b(如果是13B就是llava-v1.5-13b,注意这里的命名不要错了,后面有代码会解析这个名字)
在这里插入图片描述

Step3:vit模型下载

如果服务器可以正常连接hugging face,那么直接跳过本步骤即可。但如果脚本报了与openai/clip-vit-large-patch14-336相关的错误,就是连接hugging face的问题,导致代码无法自动下载vit模型,则需要按照下面的步骤执行:

1、在电脑主机下载下面链接的文件:

  • https://huggingface.co/openai/clip-vit-large-patch14-336

2、在服务器中创建一个名为clip-vit-large-patch14-336的文件夹,并把刚刚下载好的文件上传到这个文件夹下。

在这里插入图片描述

3、修改在Step2中llava-v1.5-7b/config.json文件,把"mm_vision_tower"修改为刚刚上传的clip-vit-large-patch14-336文件夹路径。

在这里插入图片描述

Step4:启动demo

在做完上述准备工作,我们就可以来测试部署的LLaVA了。总共有两种测试方法:

  • CLI推理
  • 网页端测试

1、CLI推理

运行下面的命令:

python -m llava.serve.cli     --model-path {模型权重路径}     --image-file "https://llava-vl.github.io/static/images/view.jpg"     --load-4bit

注意,这个–model-path要换成你在Step2中权重文件夹的路径,–image-file后面可以换成你自己想要交流的图片,–load-4bit,是使用量化位(4 位)启动模型工作线程,减少GPU内存占用的情况下运行推理。

运行效果如下(我在下面的截图中加上了CUDA_VISIBLE_DEVICES=1是因为服务器不够用了,可以忽略):
在这里插入图片描述

2、网页端测试

1.在第一个终端中启动控制器:

python3 -m llava.serve.controller --host 0.0.0.0 --port 20000

在这里插入图片描述

2.在第二个终端启动 gradio Web 服务器:

python3 -m llava.serve.gradio_web_server --controller http://localhost:20000 --model-list-mode reload --share

在这里插入图片描述

注意上面标红的URL,最后是在这里测试LLaVA的网页的。(注意:如果是在服务器中运行,主机上打开网页,应当用服务器网址替换0:0:0:0,即在主机浏览器中网页输入的网址应该是:服务器ip:端口号,端口号在图中为7861)

3.在第三个终端启动model worker

python3 -m llava.serve.model_worker --host 0.0.0.0 --controller http://localhost:20000 --port 40000 --worker http://localhost:40000 --model-path {模型权重路径} --load-4bit

在这里插入图片描述

最后打开前面说的测试LLaVA的网页

在这里插入图片描述

就能开启相关服务了。

至此,LLaVA模型部署完毕。

最后,最重要的,如果需要用到LLaVA模型,需要引用作者的文章:


@misc{liu2023improvedllava,
      title={Improved Baselines with Visual Instruction Tuning}, 
      author={Liu, Haotian and Li, Chunyuan and Li, Yuheng and Lee, Yong Jae},
      publisher={arXiv:2310.03744},
      year={2023},
}

@misc{liu2023llava,
      title={Visual Instruction Tuning}, 
      author={Liu, Haotian and Li, Chunyuan and Wu, Qingyang and Lee, Yong Jae},
      publisher={arXiv:2304.08485},
      year={2023},
}
  • 72
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值