论文笔记--Gemini: A Family of Highly Capable Multimodal Models

news2024/11/18 7:24:49

论文笔记--

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 模型架构
    • 3.2 训练数据
    • 3.3 模型评估
      • 3.3.1 文本
        • 3.3.1.1 Science
        • 3.3.1.2 Model sizes
        • 3.3.1.3 Multilingual
        • 3.3.1.4 Long Context
        • 3.3.1.5 Human preference
      • 3.3.2 多模态
        • 3.3.2.1 图像理解
        • 3.3.2.2 视频理解
        • 3.3.2.3 图像生成
        • 3.3.2.4 音频理解
    • 3.4 部署
  • 4. 文章亮点
  • 5. 原文传送门

1. 文章简介

  • 标题:Gemini: A Family of Highly Capable Multimodal Models
  • 作者:Gemini Team, Google
  • 日期:2023

2. 文章概括

  近日google发行的Gemini系列多模模型引发了业内的争相转发,该系列模型包含Ultra, Pro和Nano三种尺寸,分别适用于不同的预算和预期。该多模态模型在文本、图片、音频、视频等多个领域表现突出,特别地,Gemini Ultra是第一个在MMLU测评集上性能达成人类专家水平的模型。

3 文章重点技术

3.1 模型架构

  Gemini模型基于Transformer解码器架构,支撑32K的上下文长度。Gemini家族包含Ultra/Pro/Nano三种尺寸的模型,其中Ultra表现最好,且在多个任务上达到了SOTA;Pro模型在多个任务上表现也很好,可在成本有限的情况下作为Ultra的替代品;Nano-1(1.8B)和Nano-2(3.25B)可支撑不同内存的on-device部署。具体如下表所示
gemini family
  Gemini系列模型支持文本、图像和音视频交错的输入,支持输出文本和图像。如下图所示。其中图像部分的编码类似Google之前的Flamingo,CoCa和PaLI模型;Video的编码是通过将Video处理为祯的序列,然后采样序列进行编码得到输出。
gemini架构

3.2 训练数据

  Gemini的训练数据来源包含网页、书籍、代码,数据类型包含图像、音频、视频等。文章首先利用启发式规则和基于模型的分类起对所有的数据集进行质量过滤,再通过安全过滤移除有害内容。文章通过在小尺寸模型上的数值实验得到最终的数据配比,再用相同的数据配比去训练大的模型。

3.3 模型评估

  Gemini是一种多模态模型,故文章从文本 、图像、视频几个方面对模型进行了性能评估。

3.3.1 文本

  文章对比了Gemini Pro/Ultra和一系列现存的表现较好的LLMs,评估结果见下表。可以看到,Gemini Pro的表现超过了GPT-3.5等大部分模型,Gemini Ultra的表现超过了所有的模型。
text-performance

3.3.1.1 Science

  特别地,在MMLU上,Gemini Ultra达到了90.04%的accuracy,成为第一个在该数据集上超过人类专家的表现(89.8%)的模型,且acc领先SOTA(86.4%)3%+。文章在处理MMLU的数据时采用了chain-of-thought(COT) prompt方法,文章发现,采用COT+greedy补充的方法可以有效提升模型表现。具体来说,文章会对测试数据生成 k k k个COT的样本,如果 k k k个样本的一致性达到给定的阈值(此时认为满足COT的自我一致性),则选择COT的结果作为最终生成回答,否则直接采用贪婪采样。

3.3.1.2 Model sizes

  文章对比了Gemini家族在不同benchmarks上的不同维度的能力。具体来说,文章将评测集分成了6中能力维度:Factuality, Long-Context, Math/Science, Reasoning,Multilingual和Summarization,发现在所有维度上模型表现随着模型尺寸的增加而增加,且Nano模型尽管尺寸很小,在Factuality和Multilinguality上表现也足够强大。具体见下图
6capabilities

3.3.1.3 Multilingual

  Gemini模型同样表现出了强大的多语言处理能力。在机器翻译的benchmarks上,Gemini Ultra模型在所有out-of-English任务(从英文翻译为其它语言)上超过SOTA,在Into-English任务上也几乎持平SOTA,见下表。此外,Gemini在一些更具挑战性的任务(如MGSM)上表现也超过了现存最好的模型。实验证明,Gemini具有多语言、多模态处理问题的能力。
Machine Translation

3.3.1.4 Long Context

  针对长文本,文章做了如下的综合回溯测试:首先在context开始位置增加一些key-value键值对,然后增加填充文本,然后在整个上下文中query固定的key,实验发现,Ultra模型可以以98%的acc查询给定的key对应的value。此外,文章测试了NLL VS Token index的实验,结果如下图所示,可以看到随着token index增加到32K,NLL逐渐降低,说明模型具备处理长的上下文的能力。
NLL VS token index

3.3.1.5 Human preference

  文章进行了side-by-side blind evaluations来测试相同prompt下人类对两个模型产生回答的偏好。为此,文章首先对Gemini进行了指令微调,得到Instruction-tuned Gemini Pro(ItGP)模型。接下来对该模型和PaLM2 模型在指令遵循、创意写作、多模态理解、长文本理解、安全性等方面进行了比较。实验表明基于ItGP的模型对人类更加有帮助且更安全:
human preference

3.3.2 多模态

3.3.2.1 图像理解

  文章从4个不同能力维度的8个测试集测试了模型的图像理解能力。结果如下表所示,可以看到,Gemini Ultra在全部zero-shot任务重表现最好,特别针对和OCR相关的图像理解任务,Gemini Ultra 的zero-shot表现甚至超过了以前的一些Fine-tuned的SOTA结果。
图像理解
  下图为一个Gemini处理多模态reasoning的示例,可以看到模型具备识别、图像转换、指令遵循和抽象推理等多种多模态推理能力
image reasoning

3.3.2.2 视频理解

  Gemini同样在多个video理解任务重达到了SOTA水平,表现了Gemini强大的时序推理能力
video understanding

3.3.2.3 图像生成

  Gemini支持图像、文本输出,从而模型可以在few-shot设置下生成图文交错输出,可用于设计博客、网站等。下图为一个Gemini的图像理解和生成的示例,该示例也出现在最近大火的Gemini推广视频中。
image generation

3.3.2.4 音频理解

  文章进一步测试了Gemini系列模型在ASR(语音识别)、AST(语言翻译)的benchmarks上的表现。结果表明,Gemini Pro模型在所有AST和ASR的任务中显著优于USM、Whisper模型:
audio understanding

3.4 部署

  部署模型前,google做了一系列工作保证模型的性能和安全性,包括数据过滤,迭代式的指令微调和评估等。

4. 文章亮点

  文章提出并发布了Gemini模型,是现存最强大的多模态模型,在多个文本、图像、视频、音频的benchmarks上均达到了SOTA。Gemini模型预计12/13发布集成方案,届时我们可以基于Gemini来进行进一步的研究。

5. 原文传送门

Gemini: A Family of Highly Capable Multimodal Models
google gemini官网地址
gemini post 地址

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

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

相关文章

【mysql】隔离级别以及其验证实例

目录 前言 读未提交(Read Uncommitted) 读已提交(Read Committed) 可重复读(Repeatable Read) 串行化(Serializable) 前言 在事物与隔离级别中我们讲解了事务与不同隔离级别&a…

Word中在公式后面自动加入序号

1、在第一个公式后面输入(英文输入法下)#(),并且把光标放到两个括号之间: 2、点击插入-文档部件-域,类别选编号,域名选AutoNum,格式选1,2,3,…,确…

kafka高吞吐、低延时、高性能的实现原理

作者:源码时代-Raymon老师 Kafka的高吞吐、低延时、高性能的实现原理 Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但…

docker 资源控制

Docker的资源控制 对容器使用宿主机的资源进行限制,如cpu,内存,磁盘I/O Docker使用linux自带的功能cgroup(control grouos)是linux内核系统提供的一种可以限制,记录,隔离进程组使用的物理资源 Docker借助这个机制&…

python圣诞树代码编程

以下是一个简单的Python圣诞树代码: def draw_tree(height): for i in range(height): print( * (height - i - 1) * * (2 * i 1)) print( * (height - 1) |)draw_tree(10) 这个函数会绘制一个等腰三角形,其中每一行的星号数量从1开…

Java_LinkedList链表详解

目录 前言 ArrayList的缺陷 链表 链表的概念及结构 链表的种类 1.单向或双向 2.带头或不带头 3.循环或不循环 LinkedList的使用 什么是LinkedList LinkedList的使用 LinkedList的构造 LinkedList的其他常用方法介绍 LinkedList的遍历 ArrayList和LinkedList的…

「实用场景教程」如何用日程控件DHTMLX Scheduler制作酒店预订日历?(三)

dhtmlxScheduler是一个类似于Google日历的JavaScript日程安排控件,日历事件通过Ajax动态加载,支持通过拖放功能调整事件日期和时间,事件可以按天,周,月三个种视图显示。 DHTMLX Scheduler正式版下载 在本教程中&…

如何解决el-table中动态添加固定列时出现的行错位

问题描述 在使用el-table组件时,我们有时需要根据用户的操作动态地添加或删除一些固定列,例如操作列或选择列。但是,当我们使用v-if指令来控制固定列的显示或隐藏时,可能会出现表格的行错位的问题,即固定列和非固定列…

Spring全面详解

目录 1. Spring 概述 1.1 Spring是什么 1.2 Spring的作用 1.3 Spring IoC是什么 2. Spring 快速入门 3. Spring Bean 3.1 的实例化方式 空参构造器 3.2 的属性注入 全参构造器注入 setter方法注入 策略模式 3.3 注解管理 3.4 注解方式的属性注入 1. Spring 概述 …

理解VAE(变分自编码器)

1.贝叶斯公式 贝叶斯理论的思路是,在主观判断的基础上,先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。 P(A):没有数据B的支持下,A发生的概率,也叫做先验概率。…

C++ 关于结构体struct的一些总结

文章目录 一、 结构体(struct)是什么?(1)概念(2)struct 与 calss 的区别 二、定义、声明与初始化(1)三种定义结构体的方法:(2)结构体变量初始化 三、结构体嵌…

老有所依:TSINGSEE青犀养老院智能视频监管方案

养老院智能监控方案是为了提高养老院内老人的安全和护理质量,利用智能技术与监控设备进行全方位的监控和管理,可以加强对老人的监护和护理,提高养老院的服务质量和安全性。 旭帆科技基于视频技术与AI智能分析技术构建的养老院智能视频监控方…

算法:常见的链表算法

文章目录 链表算法两数相加两两交换链表中的节点重排链表合并K个升序链表K个一组翻转链表 总结 本篇总结常见的链表算法题和看他人题解所得到的一些收获 链表算法 关于链表的算法: 画图:画图可以解决绝大部分的数据结构的问题,任何的算法题…

Ubuntu 安装 CUDA 和 cuDNN 详细步骤

我的Linux系统背景: 系统和驱动都已安装。 系统是centos 8。查看自己操作系统的版本信息:cat /etc/issue或者是 cat /etc/lsb-release 用nvidia-smi可以看到显卡驱动和可支持的最高cuda版本,我的是12.2。驱动版本是535.129.03 首先&#…

snakeyaml编辑yaml文件并覆盖注释

文章目录 前言技术积累实战演示1、引入maven依赖2、覆盖注释工具类3、snakeyaml工具类4、测试用例5、测试效果展示 写在最后 前言 最近在做一个动态整合框架的项目,需要根据需求动态组装各个功能模块。其中就涉及到了在application.yaml中加入其他模块的配置&#…

Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版

文章目录 1 基础知识1.1 K8s 有用么?1.2 K8s 是什么?1.3 k8s 部署方式1.4 k8s 环境解析 2 环境部署2.1 基础环境配置2.2 容器环境操作2.3 cri环境操作2.4 harbor仓库操作2.5 k8s集群初始化2.6 k8s环境收尾操作 3 应用部署3.1 应用管理解读3.2 应用部署实…

浏览器提示不安全

当我们使用浏览器访问一个网站时,如果该网站使用的是HTTPS连接,那么浏览器会对其进行安全性的检查。其中一项重要的检查就是确认该网站是否拥有有效的SSL证书。然而,有时我们会在浏览器中看到“不安全”的警告,这通常是由于SSL证书…

【Go自学版】02-goroutine

利用时间片分割进程,致使宏观上A,B,C同时执行(并发) CPU利用率包含了执行和切换,进程/线程的数量越多,切换成本也会增大 最大并行数:GOMAXPROCS work stealing: 偷其他队列的G hand off: 当前G1阻塞&#…

中缀表达式转后缀表达式与后缀表达式计算(详解)

**中缀表达式转后缀表达式的一般步骤如下: 1:创建一个空的栈和一个空的输出列表。 2:从左到右扫描中缀表达式的每个字符。 3:如果当前字符是操作数,则直接将其加入到输出列表中。 4:如果当前字符是运算符&a…