【基础】8G 显存玩转书生大模型 Demo
| 任务 | 任务描述 |
|---|---|
| 基础任务 | 使用 LMDeploy 完成 InternLM2-Chat-1.8B 模型的部署,并生成 300 字小故事,记录复现过程并截图 |
| 进阶任务1 | 使用 LMDeploy 完成 InternLM-XComposer2-VL-1.8B 的部署,并完成一次图文理解对话,记录复现过程并截图 |
| 进阶任务2 | 使用 LMDeploy 完成 InternVL2-2B 的部署,并完成一次图文理解对话,记录复现过程并截图 |
lmdeploy主页:https://github.com/InternLM/lmdeploy/blob/main/README_zh-CN.md
lmdeploy快速上手:https://github.com/InternLM/lmdeploy/blob/main/docs/zh_cn/get_started.md
配置conda环境
# LMDeploy的预编译包默认是基于 CUDA 12 编译的
conda create -n demo python==3.10 -y
conda activate demo
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia

基础任务
使用 LMDeploy 完成 InternLM2-Chat-1.8B 模型的部署,并生成 300 字小故事,记录复现过程并截图
1.启动InternLM2-Chat-1.8B
# 安装依赖
pip install lmdeploy
# 启动
lmdeploy chat internlm/internlm2-chat-1_8b
等待模型加载完成,键入内容示例:
你好,请创作一个 300 字左右的小故事

使用gradio进行可视化对话
# 安装依赖
pip install lmdeploy[serve]
# 启动
lmdeploy serve gradio internlm/internlm2-chat-1_8b
打开 http://localhost:6006 键入内容示例如下:

进阶任务
1.图片理解 (InternLM-XComposer2-VL-1.8B)
使 LMDeploy 完成 InternLM-XComposer2-VL-1.8B 的部署,并完成一次图文理解对话,记录复现过程并截图
# lmdeploy chat internlm/internlm-xcomposer2-vl-1_8b
lmdeploy serve gradio internlm/internlm-xcomposer2-vl-1_8b
打开 http://localhost:6006 (上传图片后) 键入内容示例如下:
请分析一下图中内容

2.图片理解 (InternVL2-2B)
使用 LMDeploy 完成 InternVL2-2B 的部署,并完成一次图文理解对话,记录复现过程并截图
下载模型脚本:
import os
os.makedirs('/root/models', exist_ok=True)
#验证SDK token
from modelscope.hub.api import HubApi
api = HubApi()
api.login(your_sdk_token) # your_sdk_token
# https://modelscope.cn/models/OpenGVLab/InternVL2-2B/
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('OpenGVLab/InternVL2-2B', cache_dir='/root/models')
部署脚本:
# lmdeploy serve gradio internlm/internvl2-2b
import gradio as gr
from lmdeploy import pipeline, TurbomindEngineConfig
backend_config = TurbomindEngineConfig(session_len=2048) # 图片分辨率较高时请调高session_len
pipe = pipeline('/root/models/OpenGVLab/InternVL2-2B', backend_config=backend_config)
def model(image, text):
if image is None:
return [(text, "请上传一张图片。")]
else:
response = pipe((text, image)).text
return [(text, response)]
demo = gr.Interface(fn=model, inputs=[gr.Image(type="pil"), gr.Textbox()], outputs=gr.Chatbot())
demo.launch()
打开 http://localhost:7860 (上传图片后) 键入内容示例如下:
请描述一下图中内容

出现显存不足问题


浙公网安备 33010602011771号