生成式人工智能 (AI) 模型(如 Gemini 系列模型)能够根据不同类型的数据输入(包括文本、图片和音频)创建内容。从最基本的层面来看,这些模型的运作方式与复杂的自动补全应用类似。给定输入文本(“你可以把马牵到河边,”),生成式模型可以根据从训练数据中学习到的模式,预测统计上可能随之而来的输出文本(“但你不能强迫它喝水”)。您可以将生成式模型的这项基本属性用于各种应用:
- 生成创造性写作,例如诗歌、短篇故事、隐喻和博文
- 将结构化数据转换为自由格式文本
- 从自由格式文本中提取和总结信息
- 生成代码
- 在多种语言之间互译
使用生成式模型构建这些功能无需任何机器学习 (ML) 专业知识。您无需收集大型数据集或训练模型。只需用几句话描述您希望模型执行的操作,即可开始构建您的第一个原型。
仅处理文本输入和输出的生成模型也称为大语言模型 (LLM)。Gemini 系列模型不仅可以处理文本数据,而且虽然它们可以执行 LLM 的功能,但更恰当地称为生成式模型。
示例应用
以下示例显示了生成模型的典型文本输入和输出。
生成诗词
用户输入:Write me a four-line poem about puppies and Android phones. Make
sure it rhymes.
模型输出:
Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.
生成列表
用户输入:Generate a bulleted list of items I need to pack for a three-day
camping trip.
模型输出:
* Tent
* Sleeping bag
* Sleeping pad
* Camp stove
* Pots and pans
* Utensils
* Food
* Water
* First-aid kit
* Sunscreen
* Insect repellent
* ...
只需构建合适的输入文本(也称为提示),即可让生成式模型生成诸如此类的各种有用行为。提示设计是一门搞清楚如何使用恰当的措辞来让生成式模型执行您想要的操作的艺术和科学。
提示设计基础知识
上一部分展示了一些包含指令的提示示例,例如“帮我写一首诗”。这种类型的说明可能适用于某些类型的任务。不过,对于其他应用,另一种称为少次提示的提示技术可能效果更好。少样本问题利用了以下事实:大语言模型非常擅长识别和复制文本数据中的模式。其思路是向生成式模型发送文本模式,以便模型学习补全。例如,假设您要构建一个应用,该应用将国家/地区名称作为输入,并输出其首都。下面是一个专为此目的而设计的文本提示:
Italy : Rome
France : Paris
Germany :
在此提示中,您需要建立一个模式:[country] : [capital]
。如果您向大语言模型发送此提示,它会自动补全模式,并返回如下内容:
Berlin
Turkey : Ankara
Greece : Athens
此模型响应可能看起来有点奇怪。该模型不仅返回了德国的首都(您手写问题中的最后一个国家/地区),还返回了其他国家/地区与首都对应的完整列表。这是因为生成式模型会“延续模式”。如果您只想构建一个函数来告诉您输入国家/地区的首都(例如“德国:柏林”),那么您可能并不关心模型在“柏林”后面生成的任何文本。事实上,作为应用设计师,您可能需要截断这些多余的示例。此外,您可能还希望对输入进行参数化,以便“Germany”不是固定字符串,而是最终用户提供的变量:
Italy : Rome
France : Paris
<user input here> :
您刚刚编写了一个用于生成国家首都的少样本问题。
您可以按照此少样本问题模板完成大量任务。下面是将 Python 转换成 JavaScript 的一些小提示,格式稍有不同:
Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:
或者,请看这个“反向字典”提示。在给定定义的情况下,它会返回符合该定义的字词:
Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:
您可能已经注意到,这些短问问题的确切模式会略有不同。除了包含示例之外,在提示中提供说明也是编写自己的提示时需要考虑的另一种策略,因为它有助于将您的意图传达给模型。
提示式开发与传统软件开发
与根据精心编写的规范设计的传统软件不同,生成式模型的行为在很大程度上不透明,即使对模型训练者也是如此。因此,您通常无法预测哪些类型的提示结构最适合特定模型。此外,生成式模型的行为在很大程度上取决于其训练数据,而由于模型会不断根据新数据进行调整,因此有时模型会发生很大变化,以至于无意中改变最适合的提示结构。这对您来说意味着什么?进行实验!尝试不同的提示格式。
模型参数
您向模型发送的每个提示都包含控制模型如何生成回答的参数值。对于不同的参数值,模型会生成不同的结果。最常见的模型参数包括:
输出词元数上限:指定响应中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。
温度:温度可以控制词元选择的随机性。温度在生成回答期间用于采样,在应用
topP
和topK
时会生成回答。较低的温度适用于需要更具确定性或不那么开放性回答的提示,而较高的温度可能会引发更加多样化或更具创造性的结果。温度为 0 表示确定性,即始终选择概率最高的回答。topK
:topK
参数可更改模型选择输出词元的方式。如果topK
设为 1,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果topK
设为 3,则表示系统将从 3 个概率最高的词元中选择下一个词元(通过温度确定)。在每个词元选择步骤中,系统都会对概率最高的topK
个词元进行采样。然后,系统会根据topP
进一步过滤词元,并使用温度采样选择最终的词元。topP
:topP
参数可更改模型选择输出词元的方式。系统会按照概率从最高到最低的顺序选择 token,直到所选 token 的概率总和等于topP
值。例如,如果词元 A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且topP
值为 0.5,则模型将选择 A 或 B 作为下一个词元(通过温度确定),并会排除 C 作为候选词元。topP
的默认值为 0.95。stop_sequences
:设置停止序列,告知模型停止生成内容。停止序列可以是任何字符序列。请尽量避免使用可能会出现在生成内容中的字符序列。
提示类型
根据所含上下文信息的级别,提示可大致分为三类。
零样本提示
这些问题不包含供模型复制的示例。零样本提示实质上显示了模型在没有任何其他示例或信息的情况下完成提示的能力。这意味着,模型必须依赖其现有知识来生成合理的回答。
下面是一些常用的零样本提示模式:
- Instruction-content
<Overall instruction>
<Content to operate on>
例如,
Summarize the following into two sentences at the third-grade level:
Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.
Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!
Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.
Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
- Instruction-content-instruction
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>
例如,
Here is some text I'd like you to summarize:
Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.
Summarize it in two sentences at the third-grade reading level.
- 继续。有时,您可以让模型在没有任何指令的情况下继续文本。例如,下面是一个零样本提示,其中模型旨在继续输入所提供的输入:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow
使用零样本提示生成创意文本格式,例如诗歌、代码、脚本、音乐作品、电子邮件或信件。
单样本提示
这些提示会向模型提供单个示例,以便模型复制并延续该模式。这样,模型就可以生成可预测的回答。
例如,您可以生成以下食物搭配:
Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:
少样本提示
这些提示会为模型提供多个示例以供复制。使用少量问题完成复杂任务,例如根据模式合成数据。
示例提示可能是:
Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}
生成模型的内部运作
本部分旨在解答以下问题:生成式模型的回答是否具有随机性,还是确定性的?
简而言之,两个选项都是肯定的。向生成式模型提供提示后,系统会分两个阶段生成文本回答。在第一阶段,生成式模型会处理输入提示,并针对可能紧随其后的可能词元(字词)生成概率分布。例如,如果您使用输入文本“The dog jumped over the ...”作为提示,生成式模型将生成一个可能的下一个字词数组:
[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]
此过程是确定性的;生成式模型每次输入相同的提示文本时,都会生成相同的分布。
在第二阶段,生成式模型会通过多种解码策略之一,将这些分布转换为实际的文本回答。简单的解码策略可以在每个时间步选择最有可能的词元。此过程始终是确定性的。不过,您也可以选择对模型返回的概率分布进行随机抽样,以生成回答。此过程是随机(随机)的。通过设置温度,控制此解码过程中允许的随机程度。温度为 0 表示只会选择概率最高的词元,不存在随机性。反之,较高的温度会为模型选择的 token 注入较高的随机性,从而导致模型给出更出乎意料、令人惊讶的回答。
深入阅读
- 现在,您对问题和生成式模型有了更深入的了解,不妨尝试使用 Google AI Studio 编写自己的问题。
- 如需详细了解创建提示的最佳实践,请参阅提示准则。