閱讀翻譯Prompting Engineering Guides之Introduction(提示工程簡介)

shizidushu發表於2024-07-19

閱讀翻譯Prompting Engineering Guides之Introduction(提示工程簡介)

關於

  • 首次發表日期:2024-07-19
  • Prompting Engineering Guides官網: https://www.promptingguide.ai/zh
  • 使用ChatGPT和KIMI機翻,人工潤色
  • 官網上已有翻譯,但是不是最新的(有些段落沒有),其中很小的一部分翻譯有明顯錯誤
  • 基於機翻與已有翻譯,根據最新的英文版,我重新翻譯了一下,使其變得更加可讀,不過可能會顯得更加囉嗦;我的翻譯版本已提交Pull Request到官方倉庫

提示工程簡介

提示工程是一門相對較新的學科,旨在開發和最佳化提示詞(Prompt),以便高效地應用和構建大語言模型(LLMs),以滿足各種應用和使用場景的需求。

提示工程技能有助於更好地瞭解大語言模型(LLMs)的能力和侷限性。研究人員透過提示工程來提升大語言模型(LLMs)在廣泛的常見和複雜任務(如問答和算術推理)上的安全性和能力。開發人員可透過提示工程設計健壯且有效的提示技術,來與大語言模型(LLMs)和其他工具進行互動(interface)。

這份全面的指南涵蓋了提示工程的理論和實踐方面,以及如何利用最佳的提示技術,和大型語言模型進行之間進行互動與使用其構建(build)。

除非另有說明,本指南預設所有示例都是在 OpenAI 的 Playground 上使用 gpt-3.5-turbo 進行測試。模型使用預設配置,即 temperature=1 和 top_p=1 。這些提示也應適用於具有類似功能的其他模型,如gpt-3.5-turbo,但模型響應可能會有所不同。

模型設定

使用提示詞時,你通常會透過 API 或直接與大語言模型進行互動。你可以透過配置一些引數以獲得不同的提示結果。調整這些設定對於提高響應的可靠性非常重要,你可能需要進行一些實驗才能找出適合你的用例的正確設定。以下是使用不同LLM提供程式時會遇到的常見設定:

Temperature:簡單來說,temperature 的引數值越小,模型就會返回越確定的一個結果。如果調高該引數值,大語言模型可能會返回更隨機的結果,也就是說這可能會帶來更多樣化或更具創造性的產出。(調小temperature)實質上,你是在增加其他可能的 token 的權重。在實際應用方面,對於質量保障(QA)等任務,我們可以設定更低的 temperature 值,以促使模型基於事實返回更真實和簡潔的結果。 對於詩歌生成或其他創造性任務,適度地調高 temperature 引數值可能會更好。

Top_p:同樣,使用 top_p(與 temperature 一起稱為核取樣(nucleus sampling)的技術),可以用來控制模型返回結果的確定性。如果你需要準確和事實的答案,就把引數值調低。如果你在尋找更多樣化的響應,可以將其值調高點。

使用Top P意味著只有詞元集合(tokens)中包含top_p機率質量的才會被考慮用於響應,因此較低的top_p值會選擇最有信心的響應。這意味著較高的top_p值將使模型考慮更多可能的詞語,包括不太可能的詞語,從而導致更多樣化的輸出。

一般建議是改變 Temperature 和 Top P 其中一個引數就行,不用兩個都調整。

Max Length:你可以透過調整 max length 來控制大模型生成的 token 數。指定 Max Length 有助於防止大模型生成冗長或不相關的響應並控制成本

Stop Sequencesstop sequence 是一個字串,可以阻止模型生成 token,指定 stop sequences 是控制大模型響應長度和結構的另一種方法。例如,你可以透過新增 “11” 作為 stop sequence 來告訴模型生成不超過 10 個項的列表。

Frequency Penaltyfrequency penalty 是對下一個生成的 token 進行懲罰,這個懲罰和 token 在響應和提示中已出現的次數成比例, frequency penalty 越高,某個詞再次出現的可能性就越小,這個設定透過給重複數量多的 Token 設定更高的懲罰來減少響應中單詞的重複。

Presence Penaltypresence penalty 也是對重複的 token 施加懲罰,但與 frequency penalty 不同的是,懲罰對於所有重複 token 都是相同的。出現兩次的 token 和出現 10 次的 token 會受到相同的懲罰。 此設定可防止模型在響應中過於頻繁地生成重複的詞。 如果你希望模型生成多樣化或創造性的文字,你可以設定更高的 presence penalty,如果你希望模型生成更專注的內容,你可以設定更低的 presence penalty

temperaturetop_p 一樣,一般建議是改變 frequency penaltypresence penalty 其中一個引數就行,不要同時調整兩個。

在我們開始一些基礎示例之前,請記住最終生成的結果可能會和使用的大語言模型的版本而異。

基本概念

給LLM提示

你可以透過簡單的提示詞(Prompts)獲得大量結果,但結果的質量與你提供的資訊數量和完善度有關。一個提示詞可以包含你傳遞到模型的指令問題等資訊,也可以包含其他詳細資訊,如上下文輸入示例等。你可以透過這些元素來更好地指導模型,並因此獲得更好的結果。

看下面一個簡單的示例:

提示詞:

The sky is

輸出:

blue.

如果你正在使用OpenAI Playground或其他任何LLM Playground,你可以按照以下螢幕截圖中的方式提示模型:

需要注意的是,當使用 OpenAI 的 gpt-4 或者 gpt-3.5-turbo 等聊天模型時,你可以使用三個不同的角色來構建 prompt: systemuserassistant。其中 system 不是必需的,但有助於設定 assistant 的整體行為,幫助模型瞭解使用者的需求,並根據這些需求提供相應的響應。上面的示例僅包含一條 user 訊息,你可以使用 user 訊息直接作為 prompt。為簡單起見,本指南所有示例(除非明確提及)將僅使用 user 訊息來作為 gpt-3.5-turbo 模型的 prompt。上面示例中 assistant 的訊息是模型的響應。你還可以定義 assistant 訊息來傳遞模型所需行為的示例。你可以在此處瞭解有關使用聊天模型的更多資訊。

從上面的提示示例中可以看出,語言模型能夠基於我們給出的上下文內容 "The sky is" 完成續寫。輸出可能是出乎意料的,或者與你想要完成的任務相去甚遠。實際上,這個基本示例突出了提供更多上下文或明確指示你想要實現什麼的必要性。這正是提示工程的核心所在。

讓我們試著改進一下:

提示詞:

Complete the sentence: 

The sky is

輸出:

blue during the day and dark at night.

結果是不是要好一些了?本例中,我們告知模型去完善句子,因此輸出結果看起來要好得多,因為它完全按照你告訴它要做的(“完善句子”)去做。在本指南中,這種設計有效的提示詞以指導模型執行期望任務的方法被稱為提示工程

以上示例基本說明了現階段的大語言模型能夠發揮的功能作用。它們可以用於執行各種高階任務,如文字概括、數學推理、程式碼生成等。

提示詞格式

前文中我們還是採取的比較簡單的提示詞。 標準提示詞應該遵循以下格式:

<問題>?

<指令>

你可以將其格式化為問答(QA)格式,這在許多問答資料集中是標準格式,如下所示:

Q: <問題>?
A: 

當像上面那樣提示時,這也被稱為零樣本提示,即你直接提示模型給出一個回答,而沒有提供任何關於你希望它完成的任務的示例或示範。一些大型語言模型具備進行零樣本提示的能力,但這取決於手頭任務的複雜性和知識,以及模型被訓練以在其上表現良好的任務。

具體的零樣本提示示例如下:

提示:

Q: What is prompt engineering?

對於一些較新的模型,你可以省略“Q:”部分,因為模型會根據序列(譯註:輸入的提示詞)的構成將其理解為問答任務。換句話說,提示可以簡化如下:

提示詞

What is prompt engineering?

基於以上標準格式(format),一種流行且有效的提示技術被稱為少樣本提示,其中你提供示例(即示範)。你可以按照以下格式組織少樣本提示:

<問題>?
<答案>

<問題>?
<答案>

<問題>?
<答案>

<問題>?

問答格式的版本看起來像這樣:

Q: <問題>?
A: <答案>

Q: <問題>?
A: <答案>

Q: <問題>?
A: <答案>

Q: <問題>?
A:

請記住,使用問答格式並非必須。提示格式取決於手頭的任務。例如,你可以執行一個簡單的分類任務,並給出如下所示的示例來給任務示範:

提示詞:

This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! // Positive
What a horrible show! //

輸出:

Negative

語言模型可以基於一些說明了解和學習某些任務,而小樣本提示正好可以賦能上下文學習能力。我們將在接下來的章節中更廣泛的討論如何使用零樣本提示和小樣本提示。

提示詞要素

隨著我們接觸越來越多的提示工程的示例和應用,你會注意到提示詞是由一些要素組成的。

一個提示詞包含以下任何元素:

指令(Instruction):想要模型執行的特定任務或指令。

上下文(Context):包含外部資訊或額外的上下文資訊,引導語言模型更好地響應。

輸入資料(Input Data):使用者輸入的內容或問題。

輸出指示(Output Indicator):指定輸出的型別或格式。

為了更好地演示提示詞要素,下面是一個簡單的提示,旨在完成文字分類任務:

提示:

請將文字分為中性、否定或肯定
文字:我覺得食物還可以。
情緒:

在上面的提示示例中,指令是“將文字分類為中性、否定或肯定”。輸入資料是“我認為食物還可以”部分,使用的輸出指示是“情緒:”。請注意,這個基本示例沒有使用上下文,但上下文也可以作為提示的一部分提供。例如,此文字分類提示的上下文可以是作為提示的一部分提供的其他示例,以幫助模型更好地理解任務並引導預期的輸出型別。

注意,提示詞所需的格式取決於你想要語言模型完成的任務型別,並非所有以上要素都是必須的。我們會在後續的指南中提供更多更具體的示例。

設計提示詞的通用技巧

以下是設計提示時需要記住的一些技巧:

從簡單開始

在開始設計提示時,你應該記住,這實際上是一個迭代過程,需要大量的實驗才能獲得最佳結果。使用來自OpenAI或Cohere的簡單的 playground 是一個很好的起點。

你可以從簡單的提示詞開始,並逐漸新增更多元素和上下文(因為你想要更好的結果)。因此,在這個過程中不斷迭代你的提示詞是至關重要的。閱讀本指南時,你會看到許多示例,其中具體性、簡潔性和簡明性通常會帶來更好的結果。

當你有一個涉及許多不同子任務的大任務時,可以嘗試將任務分解為更簡單的子任務,並隨著結果的改善逐步構建。這避免了在提示設計過程中一開始就新增過多的複雜性。

指令

你可以使用命令來指示模型執行各種簡單任務,例如“寫入”、“分類”、“總結”、“翻譯”、“排序”等,從而為各種簡單任務設計有效的提示。

請記住,你還需要進行大量實驗以找出最有效的方法。以不同的關鍵詞(keywords),上下文(contexts)和資料(data)試驗不同的指令(instruction),看看什麼樣是最適合你特定用例和任務的。通常,上下文越具體和跟任務越相關則效果越好。在接下來的指南中,我們將討論樣例和新增更多上下文的重要性。

有些人建議將指令放在提示的開頭。另有人則建議是使用像“###”這樣的清晰分隔符來分隔指令和上下文。

例如:

提示:

### 指令 ###
將以下文字翻譯成西班牙語:

文字:“hello!”

輸出:

¡Hola!

具體性

要非常具體地說明你希望模型執行的指令和任務。提示越具描述性和詳細,結果越好。特別是當你對生成的結果或風格有要求時,這一點尤為重要。不存在什麼特定的詞元(tokens)或關鍵詞(tokens)能確定帶來更好的結果。更重要的是要有一個具有良好格式和描述性的提示詞。事實上,在提示中提供示例對於獲得特定格式的期望輸出非常有效。

在設計提示時,還應注意提示的長度,因為提示的長度是有限制的。想一想你需要多麼的具體和詳細。包含太多不必要的細節不一定是好的方法。這些細節應該是相關的,並有助於完成手頭的任務。這是你需要進行大量實驗的事情。我們鼓勵大量實驗和迭代,以最佳化適用於你應用的提示。

例如,讓我們嘗試從一段文字中提取特定資訊的簡單提示。

提示:

提取以下文字中的地名。

所需格式:
地點:<逗號分隔的公司名稱列表>

輸入:“雖然這些發展對研究人員來說是令人鼓舞的,但仍有許多謎團。里斯本未知的香帕利莫德中心的神經免疫學家 Henrique Veiga-Fernandes 說:“我們經常在大腦和我們在周圍看到的效果之間有一個黑匣子。”“如果我們想在治療背景下使用它,我們實際上需要了解機制。””

輸出:

地點:里斯本,香帕利莫德中心

輸入文字來自這篇 Nature 文章

避免不明確

給定上述關於詳細描述和改進格式的建議,很容易陷入陷阱:想要在提示上過於聰明,從而可能創造出不明確的描述。通常來說,具體和直接會更好。這裡的類比非常類似於有效溝通——越直接,資訊傳達得越有效。

例如,你可能有興趣瞭解提示工程的概念。你可以嘗試這樣做:

解釋提示工程的概念。保持解釋簡短,只有幾句話,不要過於描述。

從上面的提示中不清楚要使用多少句子以及什麼風格。儘管你可能仍會從上述提示中得到較好的響應,但更好的提示應當是非常具體、簡潔並且切中要點的。例如:

使用 2-3 句話向高中學生解釋提示工程的概念。

做什麼還是不做什麼?

設計提示時的另一個常見技巧是避免說不要做什麼,而應該說要做什麼。這樣(說要做什麼)更加的具體,並且聚焦於(有利於模型生成良好回覆的)細節上。

以下是一個電影推薦聊天機器人的示例,因為我寫的指令——關注於不要做什麼,而失敗了。

提示:

以下是向客戶推薦電影的代理程式。不要詢問興趣。不要詢問個人資訊。

客戶:請根據我的興趣推薦電影。
代理:

輸出:

當然,我可以根據你的興趣推薦電影。你想看什麼型別的電影?你喜歡動作片、喜劇片、愛情片還是其他型別的電影?

以下是更好的提示:

提示:

以下是向客戶推薦電影的代理程式。代理負責從全球熱門電影中推薦電影。它應該避免詢問使用者的偏好並避免詢問個人資訊。如果代理沒有電影推薦,它應該回答“抱歉,今天找不到電影推薦。”。
```顧客:請根據我的興趣推薦一部電影。
客服:

輸出:

抱歉,我沒有關於你興趣的任何資訊。不過,這是目前全球熱門的電影列表:[電影列表]。希望你能找到喜歡的電影!

上述示例中的一些內容摘自 "Best practices for prompt engineering with OpenAI API" article.

提示詞示例

上一節介紹瞭如何提示大語言模型的基本示例。

在本節中,我們會提供更多示例,介紹如何使用提示詞來完成不同的任務,並介紹其中涉及的重要概念。通常,學習概念的最佳方式是透過例子。下面幾個例子展示瞭如何使用精心製作的提示詞來執行不同型別的任務。

文字概括

自然語言生成中的一個標準任務是文字摘要。文字摘要可以涵蓋許多不同的風格和領域。事實上,語言模型最有前景的應用之一就是將文章和概念概括成簡潔易讀的摘要。讓我們嘗試使用提示進行一個基本的摘要任務。

提示詞:

Explain antibiotics

A:

輸出:

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.

"A:" 是一種在問答中使用的顯式提示格式,你在這裡使用它是為了告訴模型接下來你期望有一個答案。在這個例子中,我們可能還不清楚使用它是否有用,我們會在之後的示例中探討這一點。現在假設我們感覺模型給了太多的資訊,想要進一步提煉它。 我們可以指導模型幫我們用一句話總結相關內容:

提示詞:

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.

Explain the above in one sentence:

譯註:Explain the above in one sentence可翻譯為用一句話解釋上面的資訊:

輸出:

Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.

在不過多關注上面輸出的準確性的情況下(這是我們將在後續指南中討論的內容),模型嘗試將段落總結成一句話。你可以對指令進行巧妙的設計,但我們將留到後面的章節再討論。你可以暫時停住並進行實驗,看看是否能獲得更好的結果。

資訊提取

雖然語言模型是被訓練用於執行自然語言生成及相關任務,但它同樣非常擅長執行分類和一系列其他自然語言處理(NLP)任務。

這是一個從給定段落中提取資訊的提示詞示例。

提示詞:

Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts.

Mention the large language model based product mentioned in the paragraph above:

輸出:

The large language model based product mentioned in the paragraph above is ChatGPT.

你可以透過許多方法來改進上述結果,但這已經非常有用了。

現在應該很明顯,你可以透過簡單地指示模型做什麼來讓它執行不同的任務。這是一個強大的能力,AI產品開發人員已經在利用它來構建強大的產品和體驗。

段落來源: ChatGPT: five priorities for research

問答

讓模型給出具體回答的最佳方法之一是改善提示的格式。如前所述,一個提示可以結合指令、上下文、輸入和輸出指示(output indicators)來獲得更好的結果。雖然這些組成部分不是必需的,但隨著你給出的指令越具體,你將獲得越好的結果,這成為了一種良好的實踐。下面是一個例子,展示了按照更結構化的提示詞來會是什麼樣子的。

提示詞:

Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?

Answer:

輸出:

Mice.

上下文獲取自 Nature

文字分類

到目前為止,你已經使用了簡單的指令來執行任務。作為提示詞工程師,你需要更擅長提供更好的指令。但這還不是全部!你還會發現,在更困難的用例中,僅僅提供指令是不夠的。這就是你需要更多考慮上下文和其他元素(在提示詞中使用)的地方。你可以提供的其他元素包括輸入資料示例

讓我們透過一個文字分類的示例來演示這一點。

提示詞:

Classify the text into neutral, negative or positive. 

Text: I think the food was okay. 
Sentiment:

輸出:

Neutral

你給出了對文字進行分類的指令,模型以'Neutral'回應,這是正確的。這沒有問題,但假設你真正需要的是讓模型以你希望的確切格式給出標籤。因此,你希望它返回的是neutral而不是Neutral。你如何實現這一點呢?有幾種不同的方法可以做到這一點。在這裡,你關心的是具體性,所以你給提示詞提供的資訊越多,結果就越好。你可以嘗試提供示例來指定正確的行為。讓我們再試一次:

提示詞:

Classify the text into neutral, negative or positive. 

Text: I think the vacation is okay.
Sentiment: neutral 

Text: I think the food was okay. 
Sentiment:

輸出:

neutral

完美!這次模型返回了neutral,這是你所尋找的具體標籤。看起來,提示中提供的示例幫助模型在其輸出中保持了具體性。

為了強調有時具體性為什麼很重要,請檢視下面的例子並找出問題所在:

提示詞:

Classify the text into nutral, negative or positive. 

Text: I think the vacation is okay.
Sentiment:

輸出:

Neutral

這裡的問題是什麼?作為提示,模型完全忽略了虛構的nutral標籤。相反,模型輸出了Neutral,因為它對這個標籤有一定的偏好。但假設你真正想要的是nutral。你怎麼解決這個問題?也許你可以嘗試為標籤新增描述或在提示中增加更多示例?如果你不確定,我們將在接下來的部分討論一些想法。

對話

你可以透過提示工程進行更有趣的實驗,比如指導大語言模型系統如何表現,指定它的行為意圖和身份。 當你在構建對話系統,如客戶服務聊天機器人時,這尤其有用。

比如,可以透過以下示例建立一個對話系統,該系統能夠基於問題給出技術性和科學的回答。 你可以關注我們是如何透過指令明確地告訴模型應該如何表現。 這種應用場景有時也被稱為角色提示(Role Prompting)

提示詞:

The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of blackholes?
AI:

輸出:

Sure! Black holes are regions of spacetime where the gravitational force is so strong that nothing, not even light, can escape from it. They are created when a very massive star dies and its core collapses in on itself, forming a singularity of infinite density. The intense gravity of the singularity pulls in all the matter and radiation around it, creating the black hole.

我們的AI研究助手聽起來有點太技術性了,對嗎?好的,讓我們改變這種行為,並指示系統給出更易於理解的回答。

提示詞:

The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI: 

輸出:

Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.

我想我們應該取得了一些進展, 你也可以繼續改進它。 如果你再新增更多的示例,可能會得到更好的結果。

程式碼生成

大語言模型(LLMs)在程式碼生成方面非常有效。 在此方面,Copilot 就是一個很好的示例。透過巧妙的提示,你可以執行大量的程式碼生成任務。下面我們來看幾個示例。

我們先用它寫個簡單的使用者歡迎程式:

提示詞:

/*
Ask the user for their name and say "Hello"
*/

輸出:

let name = prompt("What is your name?");
console.log(`Hello, ${name}!`);

你看,我們甚至都不需要指定要使用的程式語言。

來,我們再稍微升級一下。 下面的示例展示了透過稍微多一點的提示詞設計工作,LLMs可以變得多麼強大。

提示詞:

"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science Department
"""

輸出:

SELECT StudentId, StudentName 
FROM students 
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');

這非常令人印象深刻。在這種情況下,你提供了關於資料庫模式的資料,並要求它生成一個有效的 MySQL 查詢。

推理

也許,當今大型語言模型(LLM)面臨的最困難任務之一是需要某種形式的推理的任務。推理是最具吸引力的領域之一,因為有了推理,就可以從LLM中湧現出各種複雜的應用型別。

目前,涉及數學能力的推理任務已經有了一些改進。 對於當前的大型語言模型來說,執行推理任務可能會有一些難度,因此就需要更高階的提示詞工程技術。 我們會在後面的指南中介紹這些高階技術。 現在,我們將介紹幾個基本示例來展示算術功能。

提示詞:

What is 9,000 * 9,000?

輸出:

81,000,000

來,我們加大難度:

提示詞:

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 

A: 

輸出:

No, the odd numbers in this group add up to an odd number: 119.

這不對! 我們試著用提示詞去改進它:

提示詞:

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 

Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even. 

輸出:

Odd numbers: 15, 5, 13, 7, 1
Sum: 41 
41 is an odd number.

效果好多了,對吧?順便提一下,我們嘗試了幾次這個任務,模型有時會失敗。如果你提供更好的指令並結合示例,這可能有助於獲得更準確的結果。

在後面的章節,我們將介紹更高階的提示工程概念和技術,以完成更困難任務。

Notebook

如果您想使用 Python 練習上述提示,我們準備了一個 Notebook 來測試使用 OpenAI 模型的一些提示。

https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/notebooks/pe-lecture.ipynb

相關文章