跳到主要内容

Gemini

在本指南中,我们将概述 Gemini 模型以及如何有效地提示和使用它们。该指南还包括与 Gemini 模型相关的功能、技巧、应用、限制、论文以及其他阅读材料。

Gemini 简介

Gemini 是来自 Google Deepmind 的最新、最功能强大的 AI 模型。它从头开始构建了多模态功能,可以展示出在文本、图像、视频、音频和代码之间令人印象深刻的跨模态推理能力。

Gemini 有三种规模:

  • Ultra - 系列中功能最强大的模型,适用于高度复杂的任务
  • Pro - 被认为是在广泛任务范围内扩展的最佳模型
  • Nano - 一种高效的模型,适用于设备内存受限的任务和用例;包括 18 亿(Nano-1)和 32.5 亿(Nano-2)参数模型,从大型 Gemini 模型中提炼并量化为 4 位。

根据附带的技术报告,Gemini 在涵盖语言、编码、推理和多模态推理等任务的 32 项基准测试中推动了技术发展。它是第一个在MMLU(一项流行的考试基准)上实现人类专家水平的模型,并在 20 个多模态基准测试中取得了技术发展的成果。Gemini Ultra 在 MMLU 上达到了 90.0%,在MMMU 基准测试上达到了 62.4%,该测试需要大学水平的学科知识和推理能力。

Gemini 模型经过训练,支持 32k 上下文长度,并建立在具有高效注意机制的 Transformer 解码器之上(例如多查询注意力)。它们支持文本输入与音频和视觉输入交错,并能生成文本和图像输出。

GEMINI2

这些模型经过多模态和多语言数据的训练,如网络文档、书籍和代码数据,包括图像、音频和视频数据。这些模型跨所有模态联合训练,并展示出强大的跨模态推理能力,甚至在每个领域都有很强的能力。

Gemini 实验结果

Gemini Ultra 与思维链 (CoT) 提示自一致性等方法结合时,可以实现最高准确率,有助于处理模型不确定性。

根据技术报告,Gemini Ultra 在 MMLU 上的性能从贪婪抽样的 84.0% 提高到使用不确定性路由的思维链方法(涉及 CoT 和多数投票)的 90.0%,使用 32 个样本,而仅使用 32 个思维链样本时,性能略有提高至 85.0%。同样,CoT 和自一致性在 GSM8K 小学数学基准测试上实现了 94.4% 的准确率。此外,Gemini Ultra 在HumanEval代码补全问题中正确实现了 74.4%。

下表总结了 Gemini 的结果以及模型与其他知名模型的比较。

GEMINI3

Gemini Nano 模型在事实性(即检索相关任务)、推理、STEM、编码、多模态和多语言任务上表现出色。

除了标准的多语言能力外,Gemini 在多语言数学和摘要基准测试中表现出色,如MGSMXLSum

Gemini 模型在 32K 的序列长度上进行训练,当在整个上下文长度上进行查询时,以 98% 的准确率检索正确的值。这是支持新用例的重要能力,例如文档检索和视频理解。

经过指导的 Gemini 模型在重要能力方面一直受到人类评估者的青睐,如遵循指示、创造性写作和安全性。

Gemini 多模态推理能力

Gemini 是一种本地训练的多模态模型,展现出结合语言模型推理能力的能力,包括但不限于从表格、图表和图像中提取信息。其他有趣的能力包括从输入中辨别细微细节,跨空间和时间聚合上下文,以及跨不同模态组合信息。

Gemini 在诸如高级对象识别、细粒度转录、图表理解和多模态推理等图像理解任务中始终优于现有方法。一些图像理解和生成能力也可以在各种全球语言中转移(例如,使用印地语和罗马尼亚语生成图像描述)。

文本摘要

虽然 Gemini 被训练为多模态系统,但它拥有许多现代大型语言模型(如 GPT-3.5、Claude 和 Llama)中存在的能力。以下是使用 Gemini Pro 进行简单文本摘要任务的示例。我们在此示例中使用 Google AI Studio,温度值为 0。

提示:

您的任务是将摘要总结为一句话。

避免使用专业术语,用最简单的词语解释。

摘要:抗生素是一种用于治疗细菌感染的药物。它们通过杀死细菌或阻止它们繁殖来起作用,使人体免疫系统能够抵抗感染。抗生素通常以口服药片、胶囊或液体溶液的形式服用,有时也通过静脉注射给药。它们对病毒感染无效,不当使用可能导致抗生素耐药性。

Gemini Pro 输出:

抗生素是用于杀死或阻止导致感染的细菌生长的药物,但对病毒无效。

这是在 Google AI Studio 中展示任务和模型响应(已突出显示)的屏幕截图。

GEMINI8

信息提取

这里是另一个分析文本并提取所需信息的任务示例。请记住,这是使用零-shot提示,因此结果并不完美,但模型表现相对良好。

提示:

您的任务是从机器学习论文摘要中提取模型名称。您的响应是以 [\"model_name\"] 格式的模型名称数组。如果在摘要中找不到模型名称或不确定,返回 [\"NA\"]。

摘要:大型语言模型(LLMs),如 ChatGPT 和 GPT-4,已经彻底改变了自然语言处理研究,并展示了在人工通用智能(AGI)中的潜力。然而,LLMs 的昂贵训练和部署为透明和开放的学术研究带来了挑战。为了解决这些问题,该项目开源了中文 LLaMA 和 Alpaca…

Gemini Pro 输出:

[\"LLMs\", \"ChatGPT\", \"GPT-4\", \"Chinese LLaMA\", \"Alpaca\"]

视觉问答

视觉问答涉及向模型提问关于作为输入的图像的问题。Gemini 模型展示了不同的多模态推理能力,用于理解图像、图表、自然图像、表情包等各种类型的图像。在下面的示例中,我们向模型(通过 Google AI Studio 访问的 Gemini Pro Vision)提供了一个文本指示和一个代表此提示工程指南快照的图像。

模型回答:“网站的标题是“提示工程指南”。”,这似乎是根据给定问题的正确答案。

GEMINI10

这是另一个具有不同输入问题的示例。Google AI Studio 允许您通过点击上方的 {{}} 测试输入 选项测试不同的输入。然后,您可以在下表中添加您要测试的提示。

GEMINI11

随意尝试上传您自己的图像并提问。据报道,Gemini Ultra 在这类任务中表现更好。当模型可用时,我们将进行更多实验。

验证和更正

Gemini 模型展示了令人印象深刻的跨模态推理能力。例如,下图展示了一位老师绘制的物理问题解决方案(左侧)。然后,提示 Gemini 推理问题并解释学生在解决方案中出错的地方(如果有的话)。还要求模型解决问题并在数学部分使用 LaTeX。响应(右侧)是模型提供的解决方案,详细解释了问题和解决方案。

GEMINI1

图片重新排列

以下是技术报告中展示 Gemini 多模态推理能力的另一个有趣示例,用于生成重新排列子图的 matplotlib 代码。多模态提示显示在左上角,生成的代码显示在右侧,渲染的代码显示在左下角。该模型利用多种能力来解决任务,如识别、代码生成、对子图位置的抽象推理以及按照指示将子图重新排列到期望位置。

GEMINI4

视频理解

Gemini Ultra 在各种少样本视频字幕任务和零样本视频问答任务中取得了最先进的结果。下面的示例显示,模型接收到视频和文本指示作为输入。它可以分析视频并推理出情况,以提供适当的答案,或者在这种情况下提供建议,指导人们如何改进他们的技术。

GEMINI5

图像理解

Gemini Ultra 还可以接受少样本提示并生成图像。例如,如下示例所示,可以通过一个交错的图像和文本示例提示模型,用户提供有关两种颜色和图像建议的信息。然后,模型会根据提示中的最终指示回应所看到的颜色以及一些想法。

GEMINI6

模态组合

Gemini 模型还展示了处理音频和图像序列的能力。从下面的示例中,您可以观察到模型可以接收一系列音频和图像作为提示。然后,模型能够发送回考虑每次交互的上下文的文本响应。

GEMINI7

Gemini 通用编码代理

Gemini 还用于构建一个称为 AlphaCode 2 的通用代理,结合了其推理能力、搜索和工具使用,以解决竞争性编程问题。AlphaCode 2 在 Codeforces 竞赛性编程平台的参赛者中排名前 15%。

使用 Gemini 进行少样本提示

少样本提示是一种提示方法,可指示模型您想要的输出类型。这在各种情况下都很有用,比如当您想要特定格式(如 JSON 对象)或样式的输出时。Google AI Studio 也在界面中实现了这一功能。以下是如何在 Gemini 模型中使用少样本提示的示例。

我们有兴趣使用 Gemini 构建一个简单的情感分类器。第一步是通过单击“创建新建”或“+”来创建一个“结构化提示”。少样本提示将结合您的指示(描述任务)和您提供的示例。下图显示了指示(顶部)和我们传递给模型的示例。您可以设置“输入文本”和“输出文本”以具有更多描述性指示。下面的示例使用“Text:”作为输入,“Emotion:”作为输入和输出指示。

GEMINI12

整个组合提示如下所示:

您的任务是将一段由三个反引号分隔的文本分类为以下情感标签:["anger", "fear", "joy", "love", "sadness", "surprise"]。只需将标签作为小写字符串输出。
Text: I feel very angry today
Emotion: anger
Text: Feeling thrilled by the good news today.
Emotion: joy
Text: I am actually feeling good today.
Emotion:

您可以通过在“测试您的提示”部分添加输入来测试提示。我们使用“I am actually feeling good today.”作为输入,模型在单击“运行”后正确输出“joy”标签。请参见下图中的示例:

GEMINI13

库使用

以下是一个简单示例,演示如何使用 Gemini Pro 模型通过 Gemini API 进行提示。您需要安装 google-generativeai 库,并从 Google AI Studio 获取 API 密钥。下面的示例是运行与上述部分中使用的相同信息提取任务的代码。

"""
在命令行中,只需运行一次以下命令通过 pip 安装包:

$ pip install google-generativeai
"""

import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")

# 设置模型
generation_config = {
"temperature": 0,
"top_p": 1,
"top_k": 1,
"max_output_tokens": 2048,
}

safety_settings = [
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
]

model = genai.GenerativeModel(model_name="gemini-pro",
generation_config=generation_config,
safety_settings=safety_settings)

prompt_parts = [
"Your task is to extract model names from machine learning paper abstracts. Your response is an array of the model names in the format [\\\"model_name\\\"]. If you don't find model names in the abstract or you are not sure, return [\\\"NA\\\"]\n\nAbstract: Large Language Models (LLMs), such as ChatGPT and GPT-4, have revolutionized natural language processing research and demonstrated potential in Artificial General Intelligence (AGI). However, the expensive training and deployment of LLMs present challenges to transparent and open academic research. To address these issues, this project open-sources the Chinese LLaMA and Alpaca…",
]

response = model.generate_content(prompt_parts)
print(response.text)

输出与以前相同:

[\"LLMs\", \"ChatGPT\", \"GPT-4\", \"Chinese LLaMA\", \"Alpaca\"]

参考文献