ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MiniCPM-o-2_6视觉理解入门:图片问答、OCR、多图与视频的最简玩法

MiniCPM-o-2_6视觉理解入门:图片问答、OCR、多图与视频的最简玩法 MiniCPM-o-2_6视觉理解入门图片问答、OCR、多图与视频的最简玩法【免费下载链接】MiniCPM-o-2_6项目地址: https://ai.gitcode.com/OpenBMB/MiniCPM-o-2_6MiniCPM-o-2_6 是 OpenBMB 开源的 8B 参数端到端全模态大模型一次调用即可搞定图片问答、OCR 文字识别、多图对比与视频理解还能支持实时语音对话和多模态直播流。本文面向新手用最少代码带你跑通它的视觉能力看完即可上手。为什么选 MiniCPM-o-2_6 做视觉理解很多新手在选多模态模型时纠结想要强效果又怕显存不够。MiniCPM-o-2_6 恰好卡在效果强 体量小的甜点位亮点说明 视觉能力强OpenCompass 八项基准均分 70.2单图理解超过 GPT-4o-202405 等闭源模型 OCR 领先OCRBench 得分 897在 25B 以下模型中达到最先进水平️ 任意比例图像支持最高 180 万像素如 1344x1344的任意宽高比图片⚡ Token 密度高一张 180 万像素图只产生 640 个视觉 token比多数模型少 75%推理更快、显存更省 纯视觉模式不需要语音/TTS 时可直接关闭省内存模型由 SigLip-400M 视觉编码器、Whisper-medium-300M 音频编码器、ChatTTS-200M 语音解码器和 Qwen2.5-7B 主干端到端融合而成关键结构定义在 configuration_minicpm.py 中推理主逻辑在 modeling_minicpmo.py 的chat方法里。快速开始3步加载MiniCPM-o-2_6视觉模型第一步准备环境在 NVIDIA GPU 上运行需固定版本依赖重点是transformers4.44.2其他版本可能不兼容pip install torch2.3.1 transformers4.44.2 Pillow10.1.0 decord第二步加载模型只做视觉理解时把音频和 TTS 关掉即可import torch from transformers import AutoModel, AutoTokenizer model AutoModel.from_pretrained( openbmb/MiniCPM-o-2_6, trust_remote_codeTrue, attn_implementationsdpa, # 或 flash_attention_2 torch_dtypetorch.bfloat16, init_visionTrue, init_audioFalse, # 只用视觉音频关掉 init_ttsFalse # 只用视觉TTS 关掉 ) model model.eval().cuda() tokenizer AutoTokenizer.from_pretrained(openbmb/MiniCPM-o-2_6, trust_remote_codeTrue)第三步第一次提问加载成功后就可以进入下面各场景了。图片问答3行代码问出答案最基础的玩法——给一张图、问一句话from PIL import Image image Image.open(xx.jpg).convert(RGB) question 图片里有什么 msgs [{role: user, content: [image, question]}] res model.chat(msgsmsgs, tokenizertokenizer) print(res)如果希望答案逐字流式输出只需在model.chat中加上samplingTrue, streamTrue返回的生成器可以边收边打印体验更接近聊天软件。OCR最简玩法一句话提取图中文字MiniCPM-o-2_6 对高分辨率文档表现尤其好OCR 提示词越具体输出越规整。推荐提示词模板全文提取请识别并输出图中的所有文字保持原始排版。表格提取请把图中的表格以 Markdown 格式输出不要遗漏任何行列。局部定位图中红框区域内的文字是什么由于支持最高 180 万像素输入扫描版长文档、手机截屏直接丢进去即可无需预先裁剪。多图对比一次传两张图多图理解时只需把多张Image对象按顺序放进同一个content列表image1 Image.open(image1.jpg).convert(RGB) image2 Image.open(image2.jpg).convert(RGB) question 比较 image 1 和 image 2告诉我两张图的差异。 msgs [{role: user, content: [image1, image2, question]}] answer model.chat(msgsmsgs, tokenizertokenizer) print(answer)适合场景版本差异对比、找不同、跨图信息聚合如这两张发票的总额加起来是多少。视频理解最简配置采样帧一次提问视频理解的核心思路是按 1fps 抽帧、上限 64 帧官方示例视频可以直接用仓库里的assets/Skiing.mp4from decord import VideoReader, cpu from PIL import Image MAX_NUM_FRAMES 64 # 显存不足时调小 def encode_video(video_path): vr VideoReader(video_path, ctxcpu(0)) sample_fps round(vr.get_avg_fps() / 1) frame_idx [i for i in range(0, len(vr), sample_fps)] if len(frame_idx) MAX_NUM_FRAMES: gap len(frame_idx) / MAX_NUM_FRAMES frame_idx [int(i * gap gap / 2) for i in range(MAX_NUM_FRAMES)] return [Image.fromarray(v.astype(uint8)) for v in vr.get_batch(frame_idx).asnumpy()] frames encode_video(assets/Skiing.mp4) msgs [{role: user, content: frames [描述这段视频的内容]}] answer model.chat( msgsmsgs, tokenizertokenizer, use_image_idFalse, max_slice_nums2 # 显存不足或视频分辨率448x448 时改为 1 ) print(answer)两个参数值得记住use_image_idFalse视频帧不需要图片编号标记max_slice_nums控制高分辨率切片数量OOM 时优先降它进阶技巧Few-Shot 让模型学会你的标注格式MiniCPM-o-2_6 支持上下文少样本学习先在消息历史里放两到三组示例图 示例答案再给测试图模型就能按同样格式输出。比如批量提取生产日期msgs [ {role: user, content: [image1, production date]}, {role: assistant, content: [2023.08.04]}, {role: user, content: [image2, production date]}, {role: assistant, content: [2007.04.24]}, {role: user, content: [image_test, production date]} ] answer model.chat(msgsmsgs, tokenizertokenizer)常见问题FAQQ1显存不够怎么办优先换 int4 量化版官方提供最低约 7GB 显存视频场景调小MAX_NUM_FRAMES和max_slice_numsattn_implementation用sdpa也是省显存的选择。Q2只想做视觉音频参数可以都不管吗可以。初始化时设init_audioFalse, init_ttsFalse后续调用model.chat时不传音频参数即可。Q3CPU 上能跑吗可以。官方支持通过 llama.cpp 在 CPU 上高效推理仅限纯视觉模式适合无 GPU 环境体验。Q4想微调自己的领域数据官方支持 LLaMA-Factory 微调流程README 中有完整说明。关键文件速查表文件作用modeling_minicpmo.py模型主体含chat、streaming_prefill、get_sys_promptconfiguration_minicpm.py模型配置定义视觉/音频/TTS 子模块结构config.json运行时配置image_size448、max_slice_nums9等image_processing_minicpmv.py图像预处理与切片逻辑processing_minicpmo.py多模态输入/输出处理器model.safetensors.index.json权重分片索引小结MiniCPM-o-2_6 给视觉理解提供了一条非常短的路径加载 →model.chat→ 拿答案。图片问答 3 行代码、OCR 靠一句提示词、多图和视频也只需把内容列表拼好即可。8B 的体量让它在单卡甚至端侧设备都能跑起来非常适合新手作为第一个多模态项目体验。【免费下载链接】MiniCPM-o-2_6项目地址: https://ai.gitcode.com/OpenBMB/MiniCPM-o-2_6创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表