这两天发烧了,烧退了,继续学习,书接上文~
写在最前面:建议解锁30%a100的权限,仅供参考。
环境配置
官方给了两种环境配置方法:
studio-conda -t lmdeploy_vlm -o pytorch-2.1.2
conda activate lmdeploy_vlm
pip install lmdeploy[all]==0.4.2
pip install timm==0.9.16
pip install modelscope==1.14.0
时速因人而异,但是我这studio-conda慢的一批.......所以我换了种通用方式。
这个挺快,20min左右就创建好环境了。
conda create -n lmdeploy_vlm python=3.10
conda activate lmdeploy_vlm
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
pip install lmdeploy[all]==0.4.2
pip install timm
使用 LMDeploy 完成 InternLM-XComposer2-VL-1.8B 的部署
环境部署好,直接lmdeploy启动!
lmdeploy serve gradio /share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-1_8b
踩雷:没有完成端口映射
正确做法:
开发机的端口是6006,需要映射到本地端口上
映射的时候需要把本地端口号,和开发机器端口号填好。在本地cmd或者powershell运行完成映射,例如我这台开发机就是下面的命令,将开发机端口号6006映射到我本地7860上面去。
ssh -p 37700 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:6006 -o StrictHostKeyChecking=no
Warning: Permanently added '[ssh.intern-ai.org.cn]:37700' (ED25519) to the list of known hosts.
打开页面,地址应该是
http://localhost:{本地端口号}/
eg http://localhost:7860/
Pipeline 离线推理
事前先下载Modelscope,不然会报错
pip install modelscope==1.14.0
新建一个pipeline.py,填入下述内容
from lmdeploy.vl import load_image
from lmdeploy import pipeline
pipe = pipeline('/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-1_8b')
image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('请描述图中内容', image))
print(response.text)
然后运行pipeline.py得到描述文本
一只斑纹老虎正在绿草地上休息。老虎的毛色黑白相间,它懒洋洋地躺在草地上,眼睛睁得大大的,似乎在凝视着什么。
使用 LMDeploy 完成InternVL2-2B 的部署
在前面环境已经配置好了
这里直接lmdeploy启动!
lmdeploy serve gradio /root/share/new_models/OpenGVLab/InternVL2-2B
不出意外的话应该要出意外,报错
执行命令
pip install --upgrade lmdeploy
我更新后的lmdeploy版本是0.5.1,然后跑通了
端口映射后打开网页
再跑一下pipeline
from lmdeploy.vl import load_image
from lmdeploy import pipeline
pipe = pipeline('/root/share/new_models/OpenGVLab/InternVL2-2B')
image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('请描述图中内容', image))
print(response.text)
完结撒花~