谷歌大语言模型 Gemini 解读和实践

前言

12 月 6 日,谷歌宣布推出咕了很久的全新大语言模型 Gemini,展示了三个版本 Gemini Ultra、Gemini Pro 和 Gemini Nano。并在 Bard 上开放了体验 Gemini Pro。同时,谷歌放出了一段看起来非常酷炫高科技的视频 demo,一度让笔者觉得 Gemini 已经全面超越 GPT-4 了。但是 12 月 9 日,在社交媒体上,谷歌承认了其 demo 中有进行加速和剪辑:「为了演示的目的,他们已经减少延迟,为了简洁,Gemini 的输出也缩短了。」

本文包含四个部分,总共阅读时间 5 分钟:

  1. 从 Gemini 的 demo 出发,结合 Gemini 的技术报告,简略分析了此 demo 是如何达到如此酷炫的效果的。
  2. 探讨 Gemini 的技术实现
  3. 分析 Gemini 的能力评测
  4. Gemini VS GPT-4

Demo 解析

先说结论,Gemini 视频 demo 中展示的能力中,有剪辑和加速的成分。目前与 Gemini 的交互方式为输入静态的图像帧和文本,并不是 Demo 中展示的通过视频和语音进行实时交互。下面通过几个比较有代表性的 demo 效果是怎么做出来的。

视觉谜题

demo 中展示的:

Human :(动作-视频)往桌子上丢了一个纸球,然后拿出了三个杯子,其中一个杯子把纸球盖上 Gemini:你是让我玩猜纸球在哪个杯子下面的游戏吗,我接受挑战 Human:(动作-视频)快速打乱杯子顺序 Gemini:在左边的杯子下面

实际步骤:

Human:(文本)这里有三个个杯子,分别在位置 1(左),位置 2(中),位置 3(右) Human:(动作-三张人工挑选的静态图片)把球放到位置 3 的杯子下 (文本)空、空、球 Human:(动作-三张人工挑选的静态图片)交换位置 2 和位置 3 的杯子 (文本)空、球、空 Human:(动作-三张人工挑选的静态图片)交换位置 1 和位置 2 的杯子 (文本)球、空、空 Human:(动作-三张人工挑选的静态图片)交换位置 1 和位置 3 的杯子 Gemini::空、空、球 Human:(文本)告诉我球在哪 Gemini:球在第三个位置

解析: 当时看到这个 demo 的时候笔者震惊了,这个任务看起来只是一个猜纸球的游戏,但是实际上如果要完成这个任务的,最关键的是需要进行密集抽帧和时序建模。多帧输入得功能目前在能使用的 mllm 模型中还是比较少见的。1)在 demo 中,没有输入任何文本,Gemini 通过人的互动视频来“理解”人想让他做啥,并从“记忆”中找到了这种游戏的玩法并完成了这个游戏,展现了非常强大的多模态交互能力。2)而实际步骤中,是通过输入静态图片(人工抽取的关键帧)和文本提示,进行一个 few-shot 的任务,其难度和 demo 中展示的能力相差远。并且,【2】中提到了“Of course, it won’t always get this challenge right. Sometimes the fake out move (where you swap two empty cups) seems to trip it up”,让这个 demo 看起来更加像是一个精心挑选的结果。

石头剪刀布

demo 中展示的:

Human:(动作-视频)做出玩石头剪刀布的动作 Gemini:我懂了,你在玩石头剪刀布

实际步骤:

Human:(动作-人工挑选的静态图片:布) Gemini:我看到了一个人的右手,所有的的手指张开了 Human:(动作-人工挑选的静态图片:石头) Gemini:一个人在敲木门 Human:(动作-人工挑选的静态图片:剪刀) Gemini:我看到一个手,两个指头伸着,代表数字 2 Human:你猜我在干啥,提示,这是一个游戏 Gemini: 你在玩石头剪刀布

解析: demo 中展示了 gemini 多模态的理解能力,通过一个视频能理解实验者正在玩石头剪刀布的游戏。但在实际步骤中,需要讲石头、剪刀、布都各挑选出一张静态图片,再给出一个游戏的提示,Gemini 才能得出同样的答案。demo 中通过对 prompt 的剪辑,达到了一种与 Gemini 高效交互的效果

空间感知和逻辑推理

demo 中展示的:

Human:(动作-视频)这个是正确的顺序吗 Gemini:不对,正确的顺序是太阳、地球、土星

实际步骤:

Human:(动作-静态图片)这个是正确顺序吗,按照”到太阳的距离“考虑,说明你的理由 Gemini:不对,正确的顺序是太阳、地球、土星。太阳最靠近太阳系中心,然后是地球,最后是土星

解析: demo 中 Gemini 正确感知到了三张图片的位置和内容分别代表了什么,也知道提问者问的顺序指从左到右的顺序。但是在 demo 中实验人员并没有提示按照”到太阳的距离“考虑。demo 中通过对 prompt 的剪辑,达到了一种 Gemini 能猜中提问者心思的效果。

生成图片

demo 中展示的:

Human:(动作-视频)放出绿色和粉色毛线球 (文本)给我一些建议我可以用这做什么 Gemini:(图)+ 一个火龙果咋样

实际步骤:

解析: 这里的区别是,demo 中展示的 Gemini 进行了一个 zero-shot 的推理,在没有任何提示的情况下生成了一张符合提问者要求的图片。而实际步骤是进行了 few-shot 的操作,让 Gemini 事先知道了提问者想要怎么样形式的答案。同样的,demo 中通过对 prompt 的剪辑,达到了一种 Gemini 能猜中提问者心思的效果。

Gemini 技术实现

谷歌的技术报告中暴露的技术细节并不多,这里做一些总结:1)采用了 Transformer Decoder 结构,用 multi-query attention 优化了计算效率。2)模型是采用原生多模态实现的,可以直接处理原始音频(而不是 ASR 后的文字),也可以基于离散化的 token 生成图片。3)模型的训练数据量级基于 scaling law 推导。下面分三部分做更细致的讲解。

模型结构

Gemini 整体结构基于 Transformer Decoder,采用了 multi-query attention 优化了计算效率。传统的多头注意力机制(multi-head attention)通过线性变换并行的构造多组 query、key、value、输出的组合。而在 multi-query attention 中不同组之间共享了同样的 key 和 value 的集合,并通过该方式降低了参数和计算量。

多模态对齐

目前开源多模态大模型普遍采用的技术路线是基于对齐的方案,典型的 LLaVA 如下图所示,利用一个对齐模块(此处为 MLP)来连接分别训练的图像编码器和语言模型。

从 Gemini 的框架示意图和技术报告分析,我们猜测(技术报告并没有明确说)它采用了 token 化的方案来做,先分别学习图像 patch 和音频片段的 codebook。一旦学习完成,可以将图片 patch 或者音频片段用类似于文本的方式去处理。图片参考VQVAE,音频参考 Google USM。 这里以图像为例讲解一下这个过程。

预测部分:

  1. 学习好的 codebook 是一个 table,对应 K 个 D 维的向量。
  2. 需要处理的图片经过 encoder 之后,每个 patch 可以编码为一个 D 维的向量,分别去 codebook 中查找最近的 code,就可以用一个 index 来表示。
  3. 对于语言模型来说,该图像 patch 可以直接用对应的 index 来表示,与文本中一个词的表示是类似的。

训练过程: 如下图所示,一共有三个 loss

  1. 第一项重建 loss,利用 codebook 处理后的 index 去重建图像,需要与原始图像尽量一致。
  2. 第二项 codebook 的 loss,对 codebook 的学习使得对应的 code 与编码后的 patch 尽量一致。
  3. 第三项一致性 loss,对 encoder 的学习,使得编码后的 patch 尽量稳定在一个对应的 code。

训练数据

根据 scaling law,每训练一个参数,需要 200 个 token 的数据(大概两个英文句子、一幅图片或者 4 秒钟的音频),这里假设 Gemini Ultra 有 100B 的参数,则需要 20T 的训练 token。

能力评测

纯文本能力-学术数据集

这里 Gemini 和 GPT-4、PALM 2-L、Claude 2 等业内知名大模型进行了对比。这里需要注意的是,这里的对比很难做到完全公平,有些任务中,比如 MMLU 这个测试集的对比中,Gemini Ultra 和 GPT-4 的问答方式是思维链接(CoT),而 Gemini Pro、GPT-3.5 等模型用的是 few-shot 的方式进行问答,一般来说 Cot 的方式会强于 few-shot 的方式。这里的 Cot@32 指的是每个问题回答 32 次,选出其中出现次数最多的那个答案作为输出。

抛开别的不谈,Gemini 在表格上各种领域的测试集(阅读理解、推理、数学、编程)上表现都非常不错。谷歌宣称 Gemini Pro 的性能优于推理优化的模型(如 GPT-3.5),并且与当前一些最强大的模型的表现相当,而 Gemini Ultra 则优于所有当前模型,为当今 SOTA。

多模态能力-图片理解

这里的数据集验证了模型一下能力:

  1. 高阶的物体识别,任务是图像描述和问答:VQAv2
  2. 细粒度的转录能力,要求模型具有识别低层级细节的能力: TextVQA and DocVQA
  3. 表格识别和理解、空间定位的能力:ChartQA and InfographicVQA
  4. 多模态推理的能力:Ai2D, MathVista and MMMU. 这里的评测方法比较一致,可以看出 Gemini 在图像任务中还是非常有实力的。

多模态能力-视频理解

视频理解能力更能体现一个多模态大语言模型的能力,在这些数据集上,Gemini 从每个视频片段中均匀采样 16 帧作为输入。在几个少样本(few-shot,zero-shot)的任务中,Gemini Ultra 都达到了 Sota 的性能。

多模态能力-音频理解

多模态能力-文生图

文生图这部分 Gemini 没有给出量化指标,无法评价生成图片的质量好坏,但是如 demo 解析章节里所示,这里终点展示的是 Gemini 的多模态交互能力,即接受用户多种模态的输入,生成多种模态的相应。具体的生图的能力是模型原生的?还是调用了额外的生图模型?不得而知。

Gemini VS GPT4

与人相关的问题

Human: 他在干什么
Gemini:Sorry, I can't help with images of people yet.

GPT4-V: 这张图片显示的是一名男子正在参加一项力量挑战活动,看起来像是一场强人比赛。他正举起一个巨大的木桶,准备将其扔出或放置到指定位置。这种活动通常要求参赛者举起重物,如巨石、重桶或其他重型器械,以测试他们的力量和耐力。观众在背景中观看,表明这是一个公开的体育活动。男子穿着运动装备,包括红色的上衣和蓝色的短裤,以及护膝,这些装备通常用于保护参赛者并提供额外的支持。

Human:她是谁?
Gemini: Sorry, I can't help with images of people yet.

GPT4-V: 抱歉,我不能提供图片中人物的身份信息。但是,从图片中可以看出,这位女士穿着正式的黑色服装,手持麦克风,站在带有文字的背景前。她的笑容和姿态表明她可能是在一个公共活动或者是一个演讲、表演场合中。她的装扮和举止看起来像是一位表演者或主持人。

可以看出 GPT4-V 也拒绝回答比较 personal 的问题,但是还是做出了相关性的回答。而 Gemini 是直接拒绝了相应。估计是谷歌被这类问题整 emo 了吧,让人不禁回想起当年的黑猩猩事件

不认识妈

Human: What is this?
Gemini: The image you sent is the logo of Google Al, a division of Google that researches and develops artificial intelligence technologies. The logo is a stylized letter "A" with a colorful gradient, representing the diversity of Google Al's work. The logo is also designed to evoke a sense of creativity and innovation, which are core values of Google Al

GPT4: The image you've provided appears to be a pixelated graphic of a hand making a fist. It's styled in a way that is reminiscent of emoji or digital icons used in various messaging platforms and social media to convey gestures or actions. This particular graphic could be used to represent strength, solidarity, support, or an agreement, similar to how a fist bump might be used in real life.

数数困难症

Human: Please list fruit names that have only five leters

Gemini: Here is a list of fruit names that have only 5 letters: Common: Mango Peach Papaya Berry Plum Cherry Kiwi Lemon Lime Grape Apple Pear Date Fig

GPT4: Sure, here are some examples of fruit names that consist of 5 letters: |1. Apple | |2. Mango | |3. Lemon | |4. Peach | |5. Berry | |6. Guava | |7. Melon | |8. Olive | |9. Grape | |10. Kiwi | These are just a few examples. There are many other fruits with 5-letter names.

著名的开水问题

Human: 4 杯 25 摄氏度的热水加到一起温度是多少?

Gemini: 4 杯 25 摄氏度的热水加到一起,温度将会略高于 25 摄氏度。具体的温度取决于以下几个因素: • 4 杯热水的总体积 • 水的密度 • 水的热容量 •加热过程的环境温度 根据热力学第一定律,热量守恒,总的热量不会改变。因此,4 杯热水的总热量等于 4 杯热水的温度与体积的乘积之和。 设 4 杯热水的总体积为 V,则总热量为: Q = 4 25V 当 4 杯热水混合在一起时,总热量将会平均分配到所有水中。因此,混合后的水的温度为: T=Q/V 将上式代入: T=4* 25 /V 由此可见,混合后的水的温度将会略高于 25 摄氏度,具体温度取决于 V 的大小。如果 V 较大,则混合后的水的温度将会更接近 25 摄氏度;如果 V 较小,则混合后的水的温度将会更高。 一般情况下,4 杯 25 摄氏度的热水加到一起,混合后的水的温度约为 25.5 摄氏度。

GPT4: 当你将相同温度的水混合在一起时,混合后的水温度将会是原来水的温度,前提是没有热量损失给周围环境。所以,如果你将四杯 25 摄氏度的热水混合在一起,而且假设没有热量交换给周围环境,混合后的水温度仍然是 25 摄氏度。

虽然笔者的提问有点钓鱼的嫌疑但是你看 GPT4 回答的多好你 Gemini 在说啥啊??


总结

综合来看,Gemini 的真实能力肯定是远超 GPT-3.5 的,但是与 GPT-4 真实使用上谁更优秀的还需时间来证明。


本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java