(一)多模态大模型系列-InternVL2

InternVL2模型系列

这是InternVL2模型的官方github地址,InternVL2是继InternVL1.5后上海人工智能实验室发布的新版多模态大模型,它拥有多个不同规模大小的尺寸,它的模型尺寸以及对应的视觉、语言模块如下:

模型尺寸 视觉模块 语言模块
InternVL2‑1B InternViT‑300M‑448px Qwen2‑0.5B‑Instruct
InternVL2‑2B InternViT‑300M‑448px internlm2‑chat‑1‑8b
InternVL2‑4B InternViT‑300M‑448px Phi‑3‑mini‑128k‑instruct
InternVL2‑8B InternViT‑300M‑448px internlm2_5‑7b‑chat
InternVL2‑26B InternViT‑6B‑448px‑V1‑5 internlm2‑chat‑20b
InternVL2‑40B InternViT‑6B‑448px‑V1‑5 Nous‑Hermes‑2‑Yi‑34B
InternVL2-Llama3-76B InternViT‑6B‑448px‑V1‑5 Hermes‑2‑Theta‑Llama‑3‑70B

可以看到模型的尺寸种类包含了从1B到76B,基本可以覆盖绝大多数的需求范围,更详细的表格说明可以点开上面链接查看。在后续的系列文章中我将以InternVL2‑4B作为样例进行说明(其它尺寸模型的使用基本一致),如果你的环境资源有限,那么可以以InternVL2‑1B模型作为上手的选择。


InternVL2可以用来做什么

其实这个问题也是本系列文章的核心,我们要用InternVL2来做什么?
多模态大模型的能力就是通过输入目标图像+文本描述信息->模型针对图像的回答,针对这个能力后续的文章将会讲解如何让InternVL2去做比YOLO等检测模型更高精度、更高召回率的目标检测任务。
当然InternVL2相比于其它多模态拥有更多的下游任务选项,而上面的检测任务相对较为复杂。完成检测任务后其它任务也可以相通。


InternVL2目标检测任务的效果

该系列文章以实际的项目结果作为导向编写。本次实验中使用了多个尺寸的InternVL2模型进行了目标检测验证,包括InternVL2‑1B、InternVL2‑4B、InternVL2-8B等不同尺寸,训练完成后按照检测模型的方式设置IOU在复杂的自定义数据集的多个类别标签上计算PR值,得到的最佳结果为精确率=0.912,召回率=0.935,相比于同样数据集训练后的YOLO系列有巨大的提升。
在测试的多个多模态大模型中InternVL2比其它模型(例如LAVA、MiniCPM-V等),如果策略选择更好那参数量更少的同时效果会更好,所以这个系列选择以InternVL2多模态大模型进行讲解。


看完InternVL2系列能收获什么

一个详细、完整的多模态大模型教程,从环境安装到部署实用

1. 环境安装
会借鉴官网给的教程提供InternVL2的环境安装方式,并且会提供一些自己遇到的错误问题和解决方式。

2. 数据集制作
关于InternVL2如何制作目标检测数据集提供完整的python脚本,通过将原来img->xml对应的经典检测数据集格式转换成GPT对话格式,无缝参与训练。
数据集的制作会有一些小技巧来提高PR值(精确率、召回率),这对训练来说相当重要,官网是没有提供的。
如何自定义文字描述类标签更合适。

3. InternVL2微调
提供InternVL2的整个训练流程,包括模型下载、文件配置、参数修改、lora微调(或者full微调)、训练策略。其中最重要的就是训练策略,InternVL2或者说多模态的训练方式和传统的模型训练有较大的区别,如果没有正确或者说合适的训练策略那训练的效果将会很差。并且一通百通,其它的多模态例如LLAVA、MiniCPM-V等都适用。
!!!非指定性目标检测,如果你看InternVL2的检测任务文档,你会发现他做的是指定性目标检测,这种检测任务适用性很差,你需要在提问中指定需要检测的目标,这一点在后续的《关于InternVL2的数据制作(如何制作YOLO类型的定位数据集)》和训练章节中会讲解并改变这种检测任务,让它更适用。

4. 单卡、多卡推理
如何对训练完成的模型进行推理,包括lora合并、缺失文件补全等。

5.如何评估InternVL2模型
通过制作脚本计算目标检测使用的混淆矩阵,返回多模态模型在测试集上的精度、召回率等指标,更加直观展现模型的好坏与每个类别的情况,以便针对性调整。

6.对InternVL2模型进行加速
通过加速后InternVL2模型会比Transformers模型的推理快一倍,效果相当的可观!!!

7. InternVL2的模型结构
分析InternVL2的模型结构,主要是语言层、视觉层以及校准层,其中InternVL2的模型和其它多模态还有点不一样。

8. InternVL2(多模态模型)的分享
长期会分享一些平时使用InternVL2等多模态模型在实践中的相关知识,例如断点继续训练、如何使用vscode调试多模态大模型、优化推理时间等等。

目前Mini-InternVL已经发布了,根据官网描述只需要原来模型5%的参数量就能实现对应尺寸模型90%以上的性能。本系列应该也是可以适应Mini-InternVL的,后续也会发布关于Mini-InternVL的相关文章。

猜你喜欢

转载自blog.csdn.net/qq_36523839/article/details/143055750