MiniCPM-V: A GPT-4V Level MLLM on Your Phone论文阅读

大模型的趋势:模型性能越来越好,模型参数变小,端边设备计算能力变强。

MiniCPM-V优点

结果好、OCR能力突出、多分辨率、多语言、易于部署

模型结构

在这里插入图片描述
图片encoder适用vit。输入整体以及切片。切片使用自适应算法,通过计算分数,选取一个mxn,位置编码改用2d方式。然后通过压缩模块,将1024维的tokens压缩到64/96维,增大推理速度。在每一行到切片后加入换行符号,保持空间一致性。最后送入LLM。

训练过程

分为3步:预训练、有监督微调 以及RLAIF-V对齐

预训练

在这里插入图片描述

用于对齐视觉模块。分为3个stage

  • 训练压缩模块,连接语言与视觉特征,冻结其他层。使用清洗过后的200万的Image Captioning数据。
  • 更改输入分辨率224->448。只训visual encoder。200万的Image Captioning数据。
  • 训练压缩模块+visual encoder。LLM不动,Image Captioning数据+OCR数据

其他tricks

  • 数据重新描述。使用GPT优化描述
  • 数据打包。所有的数据打包到一个固定的长度。加快预训练2-3倍。
  • 语言泛化能力。只在中文和英文语言上训练。然后通过多语言的监督微调对齐到目标语言。

有监督微调SFT

在这里插入图片描述

使用GPT标注问答数据,训练所有模块。数据主要为高质量的视觉问答。
数据分为2部分。一部分增强模型基础识别能力,短句子为主。一部分增强模型细节、跟随人类指令能力。

RLAIF-V对齐

在这里插入图片描述

  • 问政策、法规之类的问题。然后让模型产出10个响应。
  • 分治思想。将响应拆分几个部分。每一个不问问一个LLM,让LLM去打分。最后综合打分得到响应的结果。
  • 使用DPO优化,利用6K个对齐数据集。成对样本优化。

端边部署

在这里插入图片描述
主要的挑战在于,内存限制、CPU、GPU的算力限制。
常用的策略为量化。fp16 16-17G、int4大约5G。部署框架上,cpu还是慢,小米8为例,一个tokens1.3s。

高级策略

在这里插入图片描述

  • 内存优化。序列内存占用。先vit encoder,再LLM。45->31s
  • 编译优化。在对应的设备上进行编译。50->17。1.3->3.2
  • 配置优化,自动在对应的设备上选择最优的配置参数,3.2->8.2
  • NPU优化,使用NPU做vit encoder。encoders时间3.7->1.3
    在这里插入图片描述
    当前主要消耗的时间在LLM的预填充。也就是img encode+text encode

实验

不同的系列
在这里插入图片描述
benchmark选择了通用、OCR以及幻觉相关
在这里插入图片描述
通用能力
在这里插入图片描述
OCR能力
在这里插入图片描述
多语言很好
在这里插入图片描述
语言正则化效果显著
在这里插入图片描述
不同的分辨率
在这里插入图片描述
幻觉减弱

对齐相关:

https://blog.csdn.net/v_JULY_v/article/details/134242910

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[LitCTF 2024]浏览器也能套娃?

题目有标志SSRF SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相…

数据结构----栈

一丶概念 只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底 二丶特点 先进后出 FILO first in last out 后进先出 LIFO last in first out 三丶顺序栈 逻辑结构&…

【网络】套接字(socket)编程——TCP版

接着上一篇文章:http://t.csdnimg.cn/GZDlI 在上一篇文章中,我们实现的是UDP协议的,今天我们就要来实现一下TCP版本的 接下来接下来实现一批基于 TCP 协议的网络程序,本节只介绍基于IPv4的socket网络编程 基于 TCP 的网络编程开…

python从入门到精通:函数

目录 1、函数介绍 2、函数的定义 3、函数的传入参数 4、函数的返回值 5、函数说明文档 6、函数的嵌套调用 7、变量的作用域 1、函数介绍 函数是组织好的,可重复使用的,用来实现特定功能的代码段。 name "zhangsan"; length len(nam…

Java八股整合(MySQL+Redis+Maven)

MySQL 数据库设计三范式 不可再分,部分依赖,传递依赖 主键和外键区别 主键非空约束,唯一性约束,唯一标识一个字段 外键用于和其他表建立连接,是另一张表的主键,可重复可为空可以有多个 为什么不推荐使…

链表---数据结构-黑马

链表 定义 链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上是不连续的。 分类 单向链表,每个元素只知道自己的下一个元素是谁。 双向链表,每个元素知道自己的上一个元素和下一个元素。 循环链表,…

【深度学习】单层神经网络

单层神经网络 神经元感知机 1943年,心理学家McCulloch和数学家Pitts共同发表了神经网络的开山之作A Logical Calculus of the Ideas Immanent in Nervours Activity1,提出了神经网络的第一个数学模型——MP模型。该模型也成为了人工神经网络的基础。 神经…

代码随想录算法训练营第十四天| 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

目录 一、LeetCode 226.翻转二叉树思路:C代码 二、LeetCode 101. 对称二叉树思路C代码 二、LeetCode 104.二叉树的最大深度思路C代码 二、LeetCode 111.二叉树的最小深度思路C代码 总结 一、LeetCode 226.翻转二叉树 题目链接:LeetCode 226.翻转二叉树 …

springboot静态资源访问问题归纳

以下内容基于springboot 2.3.4.RELEASE 1、默认配置的springboot项目,有四个静态资源文件夹,它们是有优先级的,如下: "classpath:/META-INF/resources/", (优先级最高) "classpath:/reso…

Unified 阻抗控制 architecture、framework、approach

Unified 阻抗控制(Unified Impedance Control)作为一种控制策略,其architecture(架构)、framework(框架)和approach(方法)为: 一、Unified 阻抗控制 Archite…

骨板和螺钉市场分析:前五大厂商占有大约78.0%的市场份额

据QYResearch调研团队最新报告“全球骨板和螺钉市场报告2024-2030”显示,预计2030年全球骨板和螺钉市场规模将达到76.2亿美元,未来几年年复合增长率CAGR为3.7%。 根据QYResearch头部企业研究中心调研,全球范围内骨板和螺钉生产商主要包括J &a…

视频美颜SDK与直播美颜工具的开发详解与技术优化

本篇文章,小编将为开发者提供一份详细的美颜指南。 一、视频美颜SDK的核心功能 视频美颜SDK是一种嵌入式软件开发工具包,允许开发者在应用中轻松实现实时美颜效果。其核心功能主要包括: 1.实时磨皮 2.美白功能 3.瘦脸与大眼 4.智能滤镜…

AWS 消息队列服务 SQS

AWS 消息队列服务 SQS 引言什么是 SQSSQS 访问策略 Access Policy示例:如何为 DataLake Subscription 配置 SQS 引言 应用系统需要处理海量数据,数据发送方和数据消费方是通过什么方式来无缝集成消费数据的,AWS 提供 SQS 消息队列服务来解决…

设计模式21-组合模式

设计模式21-组合模式(Composite Pattern) 写在前面 动机定义与结构定义结构主要类及其关系 C代码推导优缺点应用场景总结补充叶子节点不重载这三个方法叶子节点重载这三个方法结论 写在前面 数据结构模式 常常有一些组件在内部具有特定的数据结构。如何…

牛客网SQL进阶135 :每个6/7级用户活跃情况

每个67级用户活跃情况_牛客题霸_牛客网 0 问题描述 基于用户信息表user_info、、试卷作答记录表exam_record、题目练习记录表practice_record,统计 每个6/7级用户总活跃月份数、2021年活跃天数、2021年试卷作答活跃天数、2021年答题活跃天数,结果 按照总…

在linux上架设Web服务器Apache(Ubuntu)

欢迎诸位来阅读在下的博文~ 在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力! 江山如画,客心如若,欢迎到访,一展风采 文章目录 背景1. 安装 Apache2. 启动和检查 Apache 服务…

强烈推荐这三款IOS应用,让你的生活更美好

Dino记账 Dino记账是一款结合了简洁设计和强大功能的记账应用,它通过多维度图表帮助用户轻松掌握金钱流向。应用界面明亮且配色突出,使得记录内容易于阅读,让记账和管理账目变得更加简单。 主要特性: 极简风格与易用性&#xff1…

掌握 Spring Boot + MyBatis-Plus 动态数据源切换,只要5分钟!

数据量猛增&#xff0c;通过动态数据源切换&#xff0c;我们不仅能提高查询效率&#xff0c;还能保证系统的高可用性。 通过将写操作集中在主库&#xff0c;读操作分散到多个从库&#xff0c;可以有效减轻数据库的压力。 在pom.xml中添加以下依赖&#xff1a; xml <depend…

Qt系统机制

Qt系统 Qt文件概述输入输出设备类QFileQFileInfoQt多线程Qt多线程常用API使用Qt多线程 线程安全互斥锁读写锁条件变量信号量 Qt网络QUdpSocketQNetworkDatagram设计一个UDP回显服务器QTcpServerQTcpSocketTcp版本的回显服务器HttpClient核心API Qt 音频Qt视频 Qt文件概述 ⽂件操…