原理大揭秘:通过多模态提示与 Gemini 进行交互

十二月 06, 2023
Alexander Chen Creative Director

让我们来做一个实验。我们将这张图片展示给我们的多模态模型 Gemini,并让它描述它看到的内容:

hand_paper_2

你看到了什么

Gemini:我看到一个人的右手。这只手是张开的,手指分开。

好的,再来看看这张:

hand_rock_2

Gemini:一个人正在敲一扇木门。

这张呢?

hand_scissors_1

Gemini:我看到一只手,其中有两个手指伸出,这是表示数字“二”的常见手势。

但等等……如果我们让 Gemini 对所有这些图像一起进行推理会怎样呢?

hand_rock_paper_scissors (1)

你觉得我在做什么?提示:这是一个游戏。

Gemini:您在玩石头剪刀布的游戏。

很好。我们还能尝试些什么呢?让我们看看 Gemini 能否注意到这个规律:

hand_rock_paper_scissors_alternating (1)

我正在玩石头剪刀布的游戏。你注意到我游戏中的规律了吗?

Gemini:您正在交替出石头和剪刀。

太棒了,它发现了规律!但是 Gemini 真的理解这个游戏的规则吗?让我们试着问一下:

嗯……你认为这是一个好策略吗?

Gemini:不,这不是一个好的策略。您的对手很快就能发现规律,并且每次都能据此获胜。您应该尝试更随机地进行选择。

很好的建议,Gemini!接下来我们将进行最后一项测试,我们将检验一下的多模态推理能力。提示如下:

这是一则秘密信息。它表达了什么?

secret_message_white_bg

您能解开这个秘密信息吗?Gemini 已经解出来了,不过我们不会在这篇博文里透露答案。🙂

什么是多模态提示?

刚才我们所做的一切都是“多模态提示”的一个示例。从根本上讲,我们向 Gemini 提供不同模态的组合(在上述示例中是图像和文本),并让 Gemini 通过预测接下来可能发生什么来做出回应。Gemini 能够无缝地将这些不同的模态结合在一起,从而为您可以进行的操作开启了新的可能。

在这篇博文中,我们将探讨我们在“亲身体验 Gemini”演示视频中使用的一些提示策略。Gemini 很快将上线 Google AI Studio 供用户体验。Google AI Studio 是一个基于网络的免费开发者工具,在这里您将能够尝试使用 Gemini 进行多模态提示实验。我们希望通过该指导视频中的入门提示和创意点子来激发您开始探索自己的创新想法。

Link to Youtube Video (visible only when JS is disabled)

🧮 空间推理和逻辑

利用逻辑题和解谜题是测试 Gemini 的有趣方式。让我们来尝试一个既需要从左至右的空间推理能力又涉及太阳系知识的问题:

planets

这是正确的排列顺序吗?请考虑它们与太阳的距离,并解释你的推理。

Gemini:不对,正确的顺序是太阳、地球、土星。太阳是最靠近太阳系中心的天体,其次是地球,然后是土星。

很好!让我们再尝试一个灵感源自松木滑车比赛的问题:

pinewood_derby_cars

哪一辆车更具空气动力学优势呢?左边的那个还是右边的那个?依据具体的视觉细节来解释原因。

Gemini:右侧的车辆更具空气动力学优势。它拥有较低矮的形状且更流线型的设计。而左侧的车辆更高,形状更为方正,因此其空气动力学性能较弱。

图像序列

接下来,如果我们向 Gemini 展示一连串图像会发生什么呢?比如,我们可以展示几帧从一个猜字谜游戏中截取的静止画面,并让 Gemini 猜测这代表哪部电影:

matrix_charades

猜猜我在演哪部电影。

Gemini:黑客帝国

太棒了!但具体哪一部分呢?看看我的身体动作。
Gemini:Neo 躲避子弹的部分。

🪄 魔术技巧

探索图像序列确实可以让您深入了解 Gemini 在不同时间点上的推理方式。让我们来尝试一个经典的魔术把戏。

coin_trick_1

解释我在做什么。

Gemini:您右手握着一枚硬币。

coin_trick_1b
coin_trick_2

你认为硬币在哪里?

Gemini:硬币在您的右手里。

确实,根据 Gemini 之所见做出这个回答是合乎逻辑的。但接下来,让我们给 Gemini 展示一张带有手法变化的图片……

coin_trick_3

看看这张图片,发生了什么?

Gemini:硬币不见了。

Gemini 注意到硬币已经消失。但它能否总结一下可能发生的经过呢?

从第一张图片开始,逐步总结可能发生的事情。

Gemini: 

  1. 您在一开始时右手握有硬币。
  2. 然后您的手做了一个动作,硬币就消失了。
    3. 随后您展示硬币确实不在了。

Gemini 利用整个对话上下文(包括文字和图像)来总结它的答案。最后,我们提问:

你能解释一下硬币是如何消失的吗?

Gemini:硬币被藏在了手掌中。

Gemini 给出了一个相当准确的猜测!但我们是不会揭露魔术秘密的 🙂。

🔀 杯球魔术

让我们尝试一个需要记忆力和逻辑思维的经典游戏:杯球魔术。这次,我们将为 Gemini 分步骤演示这个游戏。首先,让我们通过以下指令来确立基本规则:

指令:这里有三个杯子,分别位于位置 1(左)、位置 2(中)和位置 3(右)。

请注意,我们将采用“空,空,球”这一简洁格式来帮助 Gemini 记住球所在的位置。接下来,我们将向 Gemini 展示两个示例回合:

图像:

cup_shuffle_2_and_3

交换:2 和 3

当前状态:空、球、空

图像:

cup_shuffle_1_and_2

互换:1 和 2

当前状态:球、空、空

在这两个示例回合中,我们不仅向 Gemini 展示了交换的动作是什么样子的,还演示了如何更新球的位置。现在,让我们看看它能否将这一规则运用到它未曾见过的交换操作上:

图像:

cup_shuffle_1_and_3

交换: 

以下是 Gemini 的回应:

1 和 3

当前状态:空、空、球

Gemini 做到了!它观察了这些图像,并正确推断出 1 号杯子和 3 号杯子进行了交换。同时,它也正确地推理出了球更新后的位置。现在我们来问它:

告诉我球在哪里,并以段落形式总结它是如何过去的。

Gemini:球在 3 号杯子中。 

一开始,球在 3 号杯子中。2 号杯子和 3 号杯子进行了首次交换,这使得球移动到了 2 号杯子中。接着,1 号杯子与 2 杯子进行了第二次交换,这使得球转移到了 1 号杯子中。然后 1 号杯子与 3 号杯子进行了第三次交换,最终使球进入了 3 号杯子。

Gemini 不仅正确地给出了答案,而且还准确地总结了游戏的整个过程。当然,它并非每次都能解决难题。有时候,两个空杯子互换的“假动作”似乎会让 Gemini 判断失误,但有时它也能成功识别这种情况。然而,正是这种简单的提示让快速测试 Gemini 变得非常有趣。您可以改变提示中的变量,比如交换的顺序等,然后观察 Gemini 的表现。

🔨 工具使用

您可能想在自己的应用中使用 Gemini,让它能够与其他工具结合。为了让 Gemini 结合多模态功能与工具使用,让我们来设想一个简单的应用场景:绘制图片以搜索音乐。

musical_drawing

第 1 步:观察这幅画,描述画中的所有元素,并具体说说你对这张画所代表的音乐流派、氛围或配乐有什么有趣的想法。 

第 2 步:以“搜索[插入查询]”的格式提供搜索查询

Gemini: 

画中包含一把吉他、一个鼓和一个扩音器,同时还有一棵棕榈树。整体氛围是欢快的、积极向上的且充满热带风情。音乐流派为雷鬼音乐。这样的配乐非常适合用在以热带地区为背景的电影或电视节目中。 

搜索“与热带度假相关的雷鬼音乐”

太棒了!Gemini 既能对其所见进行推理,还能生成可供您执行搜索的查询。Gemini 就像一个翻译官,但不同的是,它并非翻译不同语言,而是在不同模态间进行转换。在本例子中,Gemini 便实现了从绘图到音乐的转化。通过多模态提示,您可以利用 Gemini 创新性地在不同的输入和输出之间进行转换。

🕹️ 游戏创作

如果我们尝试使用 Gemini 快速构建一个多元模态游戏原型,会发生什么呢?我们想设计一个地理解谜游戏,玩家需要根据猜测在地图上指出地理位置。首先,让我们向 Gemini 传达这一核心玩法:

指令:让我们来玩个游戏。你设想一个国家/地区并给我一个线索。这个线索需要足够具体,确保只有一个正确的答案。我会尝试在地图上指出这个国家/地区的位置。

接下来,让我们为 Gemini 演示一个游戏示例回合,展示我们希望它如何处理正确和不正确的答案:

国家/地区:这个国家/地区是一个巨大的岛屿,大部分被冰覆盖。
(答案:格陵兰) 

猜测:

map 1

我所指的位置是加拿大*不正确*

猜测:

map 2

我所指的位置是格陵兰*正确*

现在我们尝试让 Gemini 生成一个线索:

线索:

这个国家/地区以其独特的野生动物而闻名,包括袋鼠和考拉。(答案:澳大利亚)

这是一个很好的线索。现在我们来测试一下 Gemini 能否识别我们指向的位置。为了增加趣味性,我们先试着指向错误的位置:

猜测:

map 3

我所指的位置是巴西*不正确*

非常棒!Gemini 分析了我提供的图像,识别出我所指的位置是巴西,并准确判断这是错误答案。现在,让我们在地图上正确指出目标位置:

map 4

我所指的位置是澳大利亚*正确*

很好!我们基本上只是通过给出示例,就成功地让 Gemini 理解了我们的游戏逻辑。同时,您会发现 Gemini 还能够从示例中所展示的手势图像举一反三。

⌨️ 编码

当然,要把游戏创意变成现实,最终还需要编写可执行的代码。让我们看看 Gemini 能否为游戏制作一个简单的倒计时器,同时添加一些有趣的变化:

使用 HTML、CSS 和 JavaScript 实现一个基础的倒计时器。使用无衬线字体和深色模式。首先,从 10 秒开始倒计时。当倒计时到零时,用一个表示兴奋和激励的随机表情符号替换计时器显示内容。然后让计时器重新回到 10 秒,并再次开始倒计时。

仅凭这一个指令,Gemini 就能为我们提供一个满足要求的、实际可用的倒计时器:

我最喜欢的操作是浏览 Gemini 的源代码,查看它为我挑选的一组激励性的表情符号:

const emojis = ['🚀', '⚡️', '🎉', '🎊', '🥳', '🤩', '✨'];

👀 先睹为快

在这篇博文中,我们一直在给 Gemini 提供输入数据,并让它预测接下来可能发生的情况。这种做法本质上就是进行提示。值得一提的是,我们的输入是多模态的,即结合了图像和文本信息。

到目前为止,我们只展示了 Gemini 以文本形式作出响应。也许您想问,Gemini 是否也能结合图像和文本进行回应?当然!这正是 Gemini 的一项被称为“交错式文本和图像生成”的功能。虽然这一功能在 Gemini 的第一个公开版本中尚未准备就绪供人们体验,但我们希望尽快推出该功能。接下来给大家抢先展示一下可能的用例。

让我们来看看 Gemini 是否可用于提供日常的创意灵感,我们将尝试在一个需要多模态推理的领域使用 Gemini:编织 🧶!现在让我们来看一个互动回合示例,该示例与上文所展示的地图游戏有些类似:

提供三个创意,让我可以用这两种颜色的毛线制作编织作品:

blue ball of yarn next to yellow ball of yarn

颜色:我看到了蓝色和绿色的毛线。

创意 1:制作一只可爱的小狗,搭配一只黄色耳朵,怎么样?

图像 1:

a cute dog made with blue and yellow yarn

创意 2:或者制作一只带有几根黄色触须的水母,怎么样?

图像 2:

a cute jellyfish made with blue and yellow yarn, on light plywood table, overhead birds eye view

创意 3:或者制作一只蓝色的小猫,搭配一个黄色鼻子,怎么样?

图像 3:

a cute cat made with blue and yellow yarn

我们实际上是在教 Gemini 如何按照我们的期望进行互动:“我会拍摄一张包含两个线团的照片,我希望你 (Gemini) 能提出一个创意,告诉我我可以利用这些毛线制作什么东西,并生成相应的图像。”

现在,我们给 Gemini 展示两个它尚未见过的新颜色的毛线团,并看看它是否能举一反三:

提供三个创意,让我可以用这两种颜色的毛线制作编织作品:

blue_pink_input (website)

Gemini:

颜色:我看到了蓝色和粉色的毛线。

创意 1:制作一只带有蓝色耳朵的小猪,怎么样?

图像 1:

pink_and_blue_pig_3

创意 2:或者制作一只带有粉蓝色触角的章鱼,怎么样?

图像 2:

pink_and_blue_octopus_v3

创意 3:或者制作一只粉红色鼻子的兔子,怎么样?

图像 3:

pink_and_blue_bunny

很好!Gemini 成功地根据新的颜色(“我看到了蓝色和粉色的毛线。”)进行了推理,并在一个交错式文本和图像输出中生成了这些创意及相应的图片。

Gemini 在这个示例中所做的工作与目前的文本到图像模型有着本质的不同。它不只是将指令传递给一个独立的文本到图像模型。相反,Gemini 能够观察真实环境中的木桌上的毛线图片,并真正实现了对文本和图像的联合多模态推理。

后续发展

我们希望这份 Gemini 入门指南有助于您了解该工具的强大功能。我们很高兴能将 Gemini 推广给更多用户,这样您就可以自行通过提示探索各种创意想法了。敬请期待!