一、MiniCPM-V-2_6简介

       MiniCPM-V 2.6 是 MiniCPM-V 系列中最新、性能最佳的模型。该模型基于 SigLip-400M 和 Qwen2-7B 构建,共 8B 参数。与 MiniCPM-Llama3-V 2.5 相比,MiniCPM-V 2.6 性能提升显著,并引入了多图和视频理解的新功能。MiniCPM-V 2.6 的主要特点包括:

  •  领先的性能。 MiniCPM-V 2.6 在最新版本 OpenCompass 榜单上(综合 8 个主流多模态评测基准)平均得分 65.2,以8B量级的大小在单图理解方面超越了 GPT-4o mini、GPT-4V、Gemini 1.5 Pro 和 Claude 3.5 Sonnet 等主流商用闭源多模态大模型

  • ️ 多图理解和上下文学习。 MiniCPM-V 2.6 还支持多图对话和推理。它在 Mantis-Eval、BLINK、Mathverse mv 和 Sciverse mv 等主流多图评测基准中取得了最佳水平,并展现出了优秀的上下文学习能力。

  •  视频理解。 MiniCPM-V 2.6 还可以接受视频输入,进行对话和提供涵盖时序和空间信息的详细视频描述。模型在 有/无字幕 评测场景下的 Video-MME 表现均超过了 GPT-4V、Claude 3.5 Sonnet 和 LLaVA-NeXT-Video-34B等商用闭源模型。

  •  强大的 OCR 能力及其他功能。 MiniCPM-V 2.6 可以处理任意长宽比的图像,像素数可达 180 万(如 1344x1344)。在 OCRBench 上取得最佳水平,超过 GPT-4o、GPT-4V 和 Gemini 1.5 Pro 等商用闭源模型。基于最新的 RLAIF-V 和 VisCPM 技术,其具备了可信的多模态行为,在 Object HalBench 上的幻觉率显著低于 GPT-4o 和 GPT-4V,并支持英语、中文、德语、法语、意大利语、韩语等多种语言

  •  卓越的效率。 除了对个人用户友好的模型大小,MiniCPM-V 2.6 还表现出最先进的视觉 token 密度(即每个视觉 token 编码的像素数量)。它仅需 640 个 token 即可处理 180 万像素图像,比大多数模型少 75%。这一特性优化了模型的推理速度、首 token 延迟、内存占用和功耗。因此,MiniCPM-V 2.6 可以支持 iPad 等终端设备上的高效实时视频理解

  •  易于使用。 MiniCPM-V 2.6 可以通过多种方式轻松使用:(1) llama.cpp 和 ollama 支持在本地设备上进行高效的 CPU 推理,(2) int4 和 GGUF 格式的量化模型,有 16 种尺寸,(3) vLLM 支持高吞吐量和内存高效的推理,(4) 针对新领域和任务进行微调,(5) 使用 Gradio 快速设置本地 WebUI 演示,(6) 在线demo即可体验。

       结论有惊喜。 

二、环境准备

          具体的环境可以参考我的上篇文(Qwen-VL部署)。这里不再重复内容。另外微调使用的swift这个框架进行的微调,所以还要准备swift的环境。

swift环境安装。

git clone https://github.com/modelscope/swift.git
cd swift

#创建虚拟环境
conda create -n minicpm python=3.10 -y
conda activate minicpm
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

#安装swift的依赖
pip install -e .[llm]

三、微调

        1、准备数据
[{
    "id": "3",
    "image": "/data/labelstudio/data/media/upload/1/ef7c451a-GC-10-1b.png",
    "conversations": [
      {
        "from": "user",
        "value": "<image>\\n请检查图片中的问题。"
      },
      {
        "from": "assistant",
        "value": "图片中存在井盖破损的问题"
      }
    ]
  }
]
        2、微调指令
CUDA_VISIBLE_DEVICES=0 swift sft   \
--model_type minicpm-v-v2_6-chat    \
--model_id_or_path /data/autodl/minicpm-v-2-6/MiniCPM-V-2_6   \
--dataset /data/autodl/minicpm-v-2-6/result_cpm.json  self-cognition \
--sft_type lora \
--max_length 6000 \
--learning_rate 1e-3 \
--batch_size 2 \
--num_train_epochs 3   \
--logging_steps 3 \
--eval_steps 100 \
--save_steps 100 \
--gradient_accumulation_steps 8 \
--model_name 智能助手   'Intelligent  Assistant' \
--model_author  风之飘渺  'Smart' 
#--deepspeed default-zero2 加了这个会报错,官方也没有说法
        3、微调说明
  1. 正常用官方的脚本一直报OOM的,但是用这个指令是可以微调的,虽然效果很差。
  2. 参数max_length 不能再大,再大的话会OOM,我的是这样。
  3. batch_size 反而可以到4也没有报OOM,再大没有试,我数据样本少。
  4. 微调的数据,一定要与我上面给的格式相同,否则会报一些如:KeyError:from之类的错误,基本上是数据样本里缺少相应的关键字。

       总之还是很强的一个多模态大模型,微调前的测试感觉,MiniCPM-V 2.6 比 Qwen-VL、Qwen2-VL都要好,在识图方面。最怕的就是但是,但是还是来了。同样的数据微调后,MiniCPM-V 2.6啥也不是了,测试图片识别方面能力下降。没做任何特殊设置,基本上同条件微调,都是默认的参数。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部