Gemini 入门
在本指南中,我们概述了 Gemini 模型以及如何有效地提示和使用它们。本指南还包括与 Gemini 模型相关的能力、技巧、应用、局限性、论文和延伸阅读材料。
Gemini 引言
Gemini 是 Google Deepmind 最新、最强大的 AI 模型。它从头开始构建,具备多模态能力,能在文本、图像、视频、音频和代码之间展示令人印象深刻的跨模态推理能力。
Gemini 提供三种尺寸的模型
- Ultra - 该系列模型中最强大的,适用于高度复杂的任务
- Pro - 被认为是适用于处理各种任务的最佳模型
- Nano - 一种高效的模型,适用于设备上的内存受限任务和用例;它们包括 18 亿(Nano-1)和 32.5 亿(Nano-2)参数模型,这些模型蒸馏自大型 Gemini 模型并量化到 4 位。
根据随附的 技术报告(在新标签页中打开),Gemini 在涵盖语言、编码、推理和多模态推理等任务的 32 个基准测试中有 30 个达到了最先进水平。
它是第一个在 MMLU(在新标签页中打开)(一个流行的考试基准测试)上达到人类专家水平的模型,并在 20 个多模态基准测试中宣称达到最先进水平。Gemini Ultra 在 MMLU 上达到 90.0%,在需要大学水平学科知识和推理的 MMMU 基准测试(在新标签页中打开)上达到 62.4%。
Gemini 模型经过训练,支持 32k 的上下文长度,并基于具有高效注意力机制(例如 多查询注意力(在新标签页中打开))的 Transformer 解码器构建。它们支持文本输入与音频和视觉输入交错,并能生成文本和图像输出。

这些模型在多模态和多语言数据上进行训练,例如网页文档、书籍和代码数据,包括图像、音频和视频数据。模型在所有模态上联合训练,表现出强大的跨模态推理能力,甚至在每个领域都表现出强大的能力。
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 的结果以及模型与其他著名模型的比较情况。

Gemini Nano 模型在事实性(即检索相关任务)、推理、STEM、编码、多模态和多语言任务上也表现出强大的性能。
除了标准的多语言能力外,Gemini 在多语言数学和摘要基准测试(例如 MGSM(在新标签页中打开) 和 XLSum(在新标签页中打开))上表现出色。
Gemini 模型在 32K 序列长度上进行训练,在跨上下文长度进行查询时,能够以 98% 的准确率检索到正确的值。这是一项重要的能力,支持了文档检索和视频理解等新用例。
经过指令微调的 Gemini 模型在遵循指令、创意写作和安全性等重要能力上,一直受到人工评估者的青睐。
Gemini 多模态推理能力
Gemini 在原生上被训练为多模态模型,并表现出将跨模态能力与语言模型的推理能力相结合的能力。这些能力包括但不限于从表格、图表和图形中提取信息。其他有趣的能力包括从输入中辨别细粒度细节、聚合跨空间和时间的上下文,以及组合不同模态的信息。
Gemini 在图像理解任务(如高级对象识别、细粒度转录、图表理解和多模态推理)中始终优于现有方法。一些图像理解和生成能力也可以跨多种全球语言(例如,使用印地语和罗马尼亚语生成图像描述)进行迁移。
文本摘要
虽然 Gemini 被训练为多模态系统,但它具备现代大型语言模型(如 GPT-3.5、Claude 和 Llama)中的许多能力。以下是使用 Gemini Pro 进行简单文本摘要任务的示例。我们在本示例中使用 Google AI Studio(在新标签页中打开),温度值为 0。
提示词
Your task is to summarize an abstract into one sentence.
Avoid technical jargon and explain it in the simplest of words.
Abstract: Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
Gemini Pro 输出
Antibiotics are medicines used to kill or stop the growth of bacteria causing infections, but they don't work against viruses.
这是任务和模型响应(突出显示)在 Google AI Studio 中的截图。

信息提取
这是另一个分析文本片段并提取所需信息的任务示例。请注意,此处使用的是零样本提示,因此结果并非完美,但模型表现相对良好。
提示词
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\"]
Abstract: 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…
Gemini Pro 输出
[\"LLMs\", \"ChatGPT\", \"GPT-4\", \"Chinese LLaMA\", \"Alpaca\"]
视觉问答
视觉问答涉及向模型提问关于作为输入传递的图像的问题。Gemini 模型在对图表、自然图像、模因和许多其他类型图像的理解上展示了不同的多模态推理能力。在下面的示例中,我们向模型(通过 Google AI Studio 访问的 Gemini Pro Vision)提供了一条文本指令和一个图像,该图像是本提示工程指南的快照。
模型响应说:“网站标题是“Prompt Engineering Guide”。”根据给出的问题来看,这似乎是正确的答案。

这是另一个带有不同输入问题的示例。Google AI Studio 允许您通过点击上方的 {{}} 测试输入
选项使用不同的输入进行测试。然后,您可以将您正在测试的提示词添加到下面的表格中。

您可以随意上传自己的图像并提问进行实验。据报道,Gemini Ultra 在这些类型的任务中表现会好得多。当该模型可用时,我们将对此进行更多实验。
验证和纠正
Gemini 模型展示了令人印象深刻的跨模态推理能力。例如,下图展示了教师绘制的物理问题解决方案(左侧)。然后提示 Gemini 对该问题进行推理,并解释学生在解决方案中可能出错的地方。模型还被指示解决该问题并使用 LaTeX 来表示数学部分。响应(右侧)是模型提供的解决方案,其中详细解释了问题和解决方案。

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

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

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

模态组合
Gemini 模型还展示了原生处理音频和图像序列的能力。从示例中,您可以看到模型可以通过音频和图像序列进行提示。然后,模型能够返回一个文本响应,该响应考虑了每次交互的上下文。

Gemini 通用编码智能体
Gemini 也被用于构建一个名为 AlphaCode 2(在新标签页中打开) 的通用智能体,它将其推理能力与搜索和工具使用相结合,以解决竞争性编程问题。AlphaCode 2 在 Codeforces 竞争性编程平台上的参赛者中排名在前 15%。
使用 Gemini 进行少样本提示
少样本提示是一种提示方法,它有助于向模型指示您想要的输出类型。这对于各种场景很有用,例如当您想要特定格式(例如 JSON 对象)或风格的输出时。Google AI Studio 也在界面中启用了此功能。下面是使用 Gemini 模型进行少样本提示的示例。
我们有兴趣使用 Gemini 构建一个简单的情感分类器。第一步是点击“新建”或“+”创建一个“结构化提示词”。少样本提示词将结合您的指令(描述任务)和您提供的示例。下图显示了我们传递给模型的指令(顶部)和示例。您可以设置输入文本和输出文本以获得更具描述性的指示器。下面的示例使用“文本:”作为输入,“情感:”作为输入和输出的指示器。

整个组合提示词如下
Your task is to classify a piece of text, delimited by triple backticks, into the following emotion labels: ["anger", "fear", "joy", "love", "sadness", "surprise"]. Just output the label as a lowercase string.
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:
然后,您可以通过在“测试您的提示词”部分下添加输入来测试提示词。我们使用“我今天感觉很好。”作为输入示例,模型在点击“运行”后正确输出“joy”标签。请参见下图中的示例

库使用
下面是一个简单的示例,演示如何使用 Gemini API 提示 Gemini Pro 模型。您需要安装 google-generativeai
库并从 Google AI Studio 获取 API 密钥。下面的示例是用于运行上面章节中使用的相同信息提取任务的代码。
"""
At the command line, only need to run once to install the package via pip:
$ pip install google-generativeai
"""
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
# Set up the model
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\"]
参考
- 推出 Gemini:我们最大、最强大的 AI 模型(在新标签页中打开)
- 制作过程:通过多模态提示与 Gemini 交互(在新标签页中打开)
- 欢迎来到 Gemini 时代(在新标签页中打开)
- 提示词设计策略(在新标签页中打开)
- Gemini:一系列功能强大的多模态模型 - 技术报告(在新标签页中打开)
- 快速 Transformer 解码:一个写入头就足够了(在新标签页中打开)
- Google AI Studio 快速入门(在新标签页中打开)
- 多模态提示词(在新标签页中打开)
- Gemini vs GPT-4V:通过定性案例对视觉-语言模型进行初步比较和组合(在新标签页中打开)
- GPT-4V 的挑战者?Gemini 在视觉专业领域的早期探索(在新标签页中打开)