AI个人学习
和实操指南
TRAE

InternVL:开源多模态大模型,支持图像、视频和文本处理

综合介绍

InternVL 是由上海人工智能实验室(OpenGVLab)开发的一个开源多模态大模型项目,托管在 GitHub 上。它集成了视觉和语言处理能力,支持图像、视频和文本的综合理解与生成。InternVL 的目标是打造一个媲美商业模型(如 GPT-4o)的开源替代品,广泛应用于视觉感知、跨模态检索和多模态对话等任务。该项目以其强大的视觉编码器、动态高分辨率支持和高效训练策略著称,模型规模从 1B 到 78B 参数不等,适合从边缘设备到高性能服务器的多种应用场景。代码、模型和数据集均开放,遵循 MIT 许可,鼓励研究者和开发者自由使用与改进。

InternVL:开源多模态大模型,支持图像、视频和文本处理-1


 

功能列表

  • 多模态对话:支持图像、视频和文本输入,生成自然语言回答,适用于聊天、问答和任务指导。
  • 图像处理:动态处理高达 4K 分辨率的图像,支持图像分类、分割和物体检测。
  • 视频理解:分析视频内容,进行零样本视频分类和文本-视频检索。
  • 文档解析:处理复杂文档,擅长 OCR、表格识别和文档问答,适用于 DocVQA 等任务。
  • 多语言支持:内置多语言文本编码器,支持 110+ 种语言的生成任务。
  • 高效推理:通过 LMDeploy 提供简化的推理流程,支持多图像和长上下文处理。
  • 数据集开放:提供 ShareGPT-4o 等大规模多模态数据集,包含图像、视频和音频。

 

使用帮助

安装流程

要在本地使用 InternVL,需要配置 Python 环境并安装相关依赖。以下是详细的安装步骤:

  1. 克隆仓库
    在终端运行以下命令,获取 InternVL 源码:

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. 创建虚拟环境
    使用 conda 创建 Python 3.9 环境并激活:

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. 安装依赖
    安装项目所需依赖,默认包含多模态对话和图像处理的必要库:

    pip install -r requirements.txt
    

    如果需要额外的功能(如图像分割或分类),可手动安装特定依赖:

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. 安装 Flash-Attention(可选)
    为加速模型推理,建议安装 Flash-Attention:

    pip install flash-attn==2.3.6 --no-build-isolation
    

    或者从源码编译:

    git clone https://github.com/Dao-AILab/flash-attention.git
    cd flash-attention
    git checkout v2.3.6
    python setup.py install
    
  5. 安装 MMDeploy(可选)
    如果需要部署模型到生产环境,安装 MMDeploy:

    pip install -U openmim
    mim install mmdeploy
    

使用方法

InternVL 提供多种使用方式,包括命令行推理、API 服务和交互式演示。以下以 InternVL2_5-8B 模型为例,介绍主要功能的操作流程:

1. 多模态对话

InternVL 支持图像和文本输入的对话。以下是使用 LMDeploy 进行推理的示例:

  • 准备模型和图像:确保已下载模型(如 OpenGVLab/InternVL2_5-8B)并准备一张图像(例如 tiger.jpeg)。
  • 运行推理:执行以下 Python 代码,描述图像内容:
    from lmdeploy import pipeline, TurbomindEngineConfig
    from lmdeploy.vl import load_image
    model = 'OpenGVLab/InternVL2_5-8B'
    image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
    pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192))
    response = pipe(('描述这张图片', image))
    print(response.text)
    
  • 结果:模型会输出图像的详细描述,例如“图片中是一只站立的老虎,背景是绿色草地”。

2. 多图像处理

InternVL 支持同时处理多张图像,适合比较或综合分析:

  • 代码示例
    from lmdeploy.vl.constants import IMAGE_TOKEN
    image_urls = [
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg',
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg'
    ]
    images = [load_image(url) for url in image_urls]
    prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片'
    response = pipe((prompt, images))
    print(response.text)
    
  • 结果:模型会分别描述每张图片的内容,并可能总结它们之间的关系。

3. 文档解析

InternVL 在文档问答(DocVQA)和表格识别任务中表现优异。操作流程如下:

  • 准备文档图像:上传包含文字、表格或图表的图像。
  • 提问:使用类似“提取表格中的数据”或“总结文档内容”的提示词。
  • 代码示例
    image = load_image('document.jpg')
    response = pipe(('提取图片中表格的内容', image))
    print(response.text)
    
  • 结果:模型会返回表格的结构化数据或文档的摘要。

4. 部署 API 服务

为方便生产环境使用,InternVL 支持通过 LMDeploy 部署 RESTful API:

  • 启动服务
    lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
    
  • 访问 API:使用 OpenAI 兼容的接口发送请求,例如通过 curl 或 Python 客户端调用模型。

5. 在线演示

OpenGVLab 提供在线演示平台(https://internvl.opengvlab.com/),无需安装即可体验:

  • 访问网站,上传图像或视频,输入问题。
  • 模型会实时返回结果,适合快速测试。

特色功能操作

  • 动态高分辨率:InternVL 自动将图像分割为 448x448 的小块,支持高达 4K 分辨率。用户无需手动调整图像大小,直接上传即可。
  • 视频理解:上传视频文件,结合提示词(如“总结视频内容”),模型会分析关键帧并生成描述。
  • 多语言生成:在提示词中指定语言(如“用法语回答”),模型可生成对应语言的回答。

注意事项

  • 确保 GPU 内存充足(8B 模型需约 16GB GPU 内存)。
  • 处理多图像或长视频时,增大上下文窗口(session_len=16384)。
  • 检查依赖版本,避免兼容性问题。

 

应用场景

  1. 学术研究
    研究人员使用 InternVL 分析科学图表、处理实验图像或解析论文中的表格数据。模型的高精度 OCR 和文档理解能力大幅提高数据提取效率。
  2. 教育辅助
    教师和学生利用 InternVL 解答图像相关的作业问题,例如解释历史图片或分析地理图表。模型的多语言支持适合国际化教育场景。
  3. 企业文档处理
    企业用 InternVL 自动化处理扫描文档、合同或发票,提取关键信息并生成报告,节省人工成本。
  4. 内容创作
    内容创作者通过 InternVL 分析视频素材,生成脚本或字幕,提升创作效率。
  5. 智能客服
    客服系统集成 InternVL,处理用户上传的图片(如产品故障照片),快速诊断问题并提供解决方案。

 

QA

  1. InternVL 支持哪些模型规模?
    InternVL 提供从 1B 到 78B 参数的模型,适合不同设备。1B 模型适于边缘设备,78B 模型性能媲美 GPT-4o。
  2. 如何处理高分辨率图像?
    模型自动将图像分割为 448x448 的小块,支持 4K 分辨率。直接上传图像,无需预处理。
  3. 是否支持视频分析?
    是的,InternVL 支持零样本视频分类和文本-视频检索。上传视频并输入提示词即可。
  4. 模型是否开源?
    InternVL 完全开源,代码和模型权重在 GitHub 上提供,遵循 MIT 许可。
  5. 如何优化推理速度?
    安装 Flash-Attention 并使用 GPU 加速。调整 session_len 参数以适配长上下文。
未经允许不得转载:首席AI分享圈 » InternVL:开源多模态大模型,支持图像、视频和文本处理
zh_CN简体中文