關於生成式模型

Gemini 系列模型等生成式人工智慧 (AI) 模型能根據各種輸入內容類型 (包括文字、圖片和音訊) 建立內容。從最基本的層面來看,這些模型的運作方式就像是精密的自動完成應用程式。給定輸入文字 (「你可以引馬到水邊」),生成式模型可根據從訓練資料學到的模式,預測統計上可能接續的輸出文字 (「但你無法強迫馬兒喝水」)。您可以將生成式模型的這項基本屬性用於各種應用程式:

  • 產生創作文,例如詩詞、短篇小說、隱喻和網誌文章
  • 將結構化資料轉換為任意形式文字
  • 從自由格式文字中擷取及摘要資訊
  • 生成程式碼
  • 翻譯多種語言

使用生成式模型建構這些功能,無須具備任何機器學習 (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

這個模型回應看起來有點奇怪。模型不僅傳回德國首都 (您手寫提示中的最後一個國家/地區),還傳回整個國家/地區和首都配對清單。這是因為生成式模型會「延續模式」。如果您只想建立可告知輸入國家/地區 (「德國:柏林」) 首都的函式,那麼您可能不會在乎模型在「柏林」後方產生的任何文字。事實上,身為應用程式設計師,您可能會想要截斷這些不相關的範例。此外,您可能會想參數化輸入內容,讓德國不是固定字串,而是使用者提供的變數:

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:

您可能會發現,這些幾張圖片提示的確切模式略有不同。除了包含範例之外,在撰寫提示時,您也可以考慮在提示中提供操作說明,這有助於向模型傳達您的意圖。

提示訊息與傳統軟體開發的差異

與根據精心編寫的規格設計的傳統軟體不同,即使是模型訓練人員,也無法完全掌握生成式模型的行為。因此,您通常無法預先預測哪種類型的提示結構最適合特定模型。此外,生成式模型的行為主要取決於訓練資料,且由於模型會持續根據新的資料集調整,因此有時模型會大幅變動,在無意間變更最佳提示結構。這對您有何影響?實驗!嘗試使用其他提示格式。

模型參數

您傳送至模型的每個提示都含有參數值,用來控制模型生成回覆的方式,模型生成的結果會因參數值而異。最常見的模型參數如下:

  1. 輸出符記數量上限:指定在回應中可產生的符記數量上限。一個符記約為四個字元,100 個符記可對應至大約 60 到 80 個字詞。

  2. 溫度:溫度參數會決定選取詞元時的隨機程度。溫度會在回應產生期間用於取樣,這會在套用 topPtopK 時發生。如果您想藉由提示生成更具確定性或較不具開放性的回應,建議調低隨機性參數。另一方面,如果隨機性參數較高,則可能產生較多元或有創意的結果。Temperature 為「0」代表具有確定性,即模型一律會選取可能性最高的回覆。

  3. topKtopK 參數會變更模型選取輸出符記的方式。如果 topK 為 1,代表所選符記是模型詞彙表的所有符記中可能性最高者 (也稱為「貪婪解碼」)。如果 topK 為 3,則代表模型會依據隨機性參數,從可能性最高的 3 個符記中選取下一個符記。在每個符記選取步驟中,模型會對機率最高的 topK 符記取樣,接著進一步根據 topP 篩選符記,最後依 temperature 選出最終符記。

  4. topPtopP 參數會變更模型選取輸出符號的方式。模型會按照可能性最高到最低的順序選取符記,直到所選符記的機率總和等於 topP 值。舉例來說,假設符記 A、B 和 C 的可能性分別為 0.3、0.2 和 0.1,且 topP 值為 0.5,則模型會依據溫度選擇 A 或 B 做為下一個符記,並將 C 排除為候選代碼。預設的 topP 值為 0.95。

  5. stop_sequences設定停止序列,告知模型停止產生內容。停止序列可以是任何字元序列。盡量避免使用在生成內容中出現的一系列字元。

提示類型

根據提示中包含的背景資訊層級,我們將提示大致分為三種類型。

零樣本提示

這些提示不包含模型要複製的範例。零樣本提示基本上是顯示模型在沒有任何額外範例或資訊的情況下,完成提示的能力。也就是說,模型必須依賴先前已有的知識來產生合理的答案。

一些常用的零樣本提示模式如下:

  • 操作說明內容
<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 up over the ...」提問,生成式模型就會產生一系列可能的下一個字詞:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

這個程序是確定性的,生成式模型每次輸入相同的提示文字時,都會產生相同的分配結果。

在第二階段,生成式模型會透過其中一種解碼策略,將這些分布轉換為實際的文字回應。簡單的解碼策略可能會在每個時間步中選取最可能的符記。這個程序永遠具有確定性。不過,您也可以改為對模型傳回的分佈進行隨機取樣,藉此產生回應。這項程序是隨機的。您可以設定溫度,控制這個解碼程序允許的隨機程度。如果溫度參數為 0,代表系統只會選取最可能的符記,不會隨機選取。相反地,高溫度參數會在模型選取的符記中注入高度隨機性,進而產生更出乎意料的模型回覆。

延伸閱讀

  • 您現在已對提示和生成式模型有更深入的瞭解,請嘗試使用 Google AI Studio 編寫自己的提示。
  • 如要進一步瞭解建立提示的最佳做法,請參閱提示指南