你準(zhǔn)備好發(fā)掘 ChatGPT 的全部潛力了嗎?想象一下?lián)碛幸粋€(gè)AI工具,它能在很多方面幫助你 — — 從回答問(wèn)題和創(chuàng)作有趣內(nèi)容到提供個(gè)性化建議。這就是「Prompt Engineering」的用武之地 — — 一種有效且強(qiáng)大的方法,通過(guò)精心創(chuàng)建Prompt和指導(dǎo),讓 ChatGPT 的工作更出色。
在這篇文章中,我們將探索令人興奮的Prompt Engineering世界,涵蓋其基礎(chǔ)、技巧、最佳實(shí)踐和高級(jí)策略,甚至還能用來(lái)創(chuàng)建一個(gè)聊天機(jī)器人。如果你對(duì)語(yǔ)言模型的潛力感興趣,這篇文章將成為你使用 ChatGPT 并獲得最大收益的指南。
準(zhǔn)備好揭開(kāi)Prompt Engineering的秘密,改變你使用 ChatGPT 的方式了嗎?讓我們開(kāi)始吧!
Prompt Engineering基礎(chǔ)知識(shí)
想必我們無(wú)需再多介紹ChatGPT了, 如果您對(duì)ChatGPT還不了解的話, 請(qǐng)看之前的相關(guān)文章:
使用ChatGPT來(lái)幫助我們學(xué)習(xí): 如何使用ChatGPT來(lái)學(xué)習(xí)任何你想要的知識(shí)
我們都聽(tīng)說(shuō)ChatGPT正在徹底改變教育。但是,要充分發(fā)掘其潛力,需要了解它可以用來(lái)做什么以及如何使用它。為了幫助您實(shí)現(xiàn)這一目標(biāo),我們收集了使用ChatGPT進(jìn)行學(xué)習(xí)的最佳實(shí)踐(和Prompt)。
medium.com
作為程序員, 我如何使用ChatGPT來(lái)幫我寫(xiě)代碼
從快速學(xué)習(xí)到調(diào)試程序, 甚至將繁瑣的工作自動(dòng)化。
medium.com
如何有效地使用ChatGPT幫助軟件開(kāi)發(fā)第二彈 — 釋放代碼的潛力
如果您不知道還有第一部分, 推薦先閱讀之前篇
medium.com
Prompt Engineering對(duì)于最大化 OpenAI 的語(yǔ)言模型 ChatGPT 的實(shí)用性至關(guān)重要。在這部分中,我們將介紹提示工程的基本概念,包括其定義、提示在與 ChatGPT 交互中的作用,以及影響提示選擇的眾多因素。
什么是Prompt Engineering?
一種通過(guò)ChatGPT獲取想要的相關(guān)結(jié)果的交互過(guò)程被稱(chēng)為Prompt Engineering。它涉及一系列創(chuàng)建指令和輸入,來(lái)控制模型的行為,塑造生成輸出的質(zhì)量和相關(guān)性。在一些場(chǎng)景下, 我們可以理解為Prompt是一種輸入?yún)?shù), 來(lái)控制模型的輸出。
Prompt Engineering的重要性在于它可以提高ChatGPT的能力,并調(diào)整其對(duì)特定活動(dòng)或目標(biāo)的響應(yīng)。用戶(hù)可以通過(guò)提供精心設(shè)計(jì)的Prompt,最大化地解釋他們的意圖,并從模型中獲得準(zhǔn)確和與上下文相關(guān)的信息。這就像控制一臺(tái)高性能汽車(chē), 在熟悉這輛車(chē)的車(chē)上上, 能發(fā)揮這輛車(chē)的最大效能。
為什么Prompt對(duì)于ChatGPT的交互至關(guān)重要?
Prompt在用戶(hù)和ChatGPT之間的交互中非常重要。它們?yōu)槟P吞峁┧璧纳舷挛?,使其能夠?chuàng)建相關(guān)的回答,并作為對(duì)話的起點(diǎn)。用戶(hù)可以通過(guò)清晰準(zhǔn)確的指令來(lái)引導(dǎo)ChatGPT朝著期望的結(jié)果發(fā)展。
根據(jù)研究,Prompt Engineering對(duì)語(yǔ)言模型的性能有著相當(dāng)大的影響。精心設(shè)計(jì)的Prompt可以幫助防止有害或偏見(jiàn)的輸出,提高生成回答的準(zhǔn)確性,并對(duì)模型的行為有更多的控制。OpenAI在增強(qiáng)語(yǔ)言模型的Prompt Engineering方面進(jìn)行的研究證明了這一點(diǎn)。
接下來(lái)我們來(lái)看下面兩個(gè)查詢(xún)及其相應(yīng)的ChatGPT回復(fù):
Prompt 1:
Prompt 2:
第二個(gè)Prompt產(chǎn)生了一個(gè)更具體和有意義的回答。
這個(gè)例子突顯了提示工程中準(zhǔn)確性和清晰性的重要性。
什么是Prompt類(lèi)別?
Prompt是與AI語(yǔ)言模型進(jìn)行無(wú)縫交流的重要工具。
為了創(chuàng)建高質(zhì)量的提示,你首先需要了解它們是如何分類(lèi)的。這樣可以讓你有效地構(gòu)建它們,從而專(zhuān)注于特定的目標(biāo)回答。
主要的提示類(lèi)別包括:
1.信息檢索的Prompt
這些提示旨在通過(guò)提出“What”和“How”問(wèn)題來(lái)收集信息。它們非常適合從AI模型中提取具體細(xì)節(jié)或事實(shí)。例如:
- 素食有哪些健康益處?
- 我怎樣才能提高工作效率?
2.基于指令的Prompt
基于指令的Prompt是指引AI模型執(zhí)行特定任務(wù)的提示。這些提示類(lèi)似于我們與Siri、Alexa或Google助手等語(yǔ)音助手進(jìn)行交互的方式。例如:
- 下周二上午10點(diǎn)預(yù)約牙醫(yī)。
- 找到通往機(jī)場(chǎng)最快的路線。
3. 提供上下文信息的Prompt
這些Prompt為AI模型提供上下文信息,幫助它更好地理解用戶(hù)所期望的回答。通過(guò)提供背景信息,你可以從AI獲得更準(zhǔn)確和相關(guān)的答案。例如:
- 我對(duì)園藝一竅不通。有哪些適合初學(xué)者的容易種植的植物?
- 我想為我的女朋友策劃一個(gè)浪漫的晚餐。你能提供一些建議和烘托氛圍的Idea嗎?
4. 比較型Prompt
比較型Prompt用于評(píng)估或比較不同的選項(xiàng),幫助用戶(hù)做出明智的決策。在權(quán)衡不同選擇的利弊時(shí),它們特別有幫助。例如:
- 租房和購(gòu)房各有哪些利與弊?
- 電動(dòng)車(chē)和傳統(tǒng)汽油車(chē)的性能。
5. 尋求觀點(diǎn)的Prompt
這些Prompt引導(dǎo)AI就給定話題發(fā)表意見(jiàn)或觀點(diǎn)。它們有助于產(chǎn)生創(chuàng)意思路或進(jìn)行發(fā)人深省的討論。例如:
- AI對(duì)就業(yè)市場(chǎng)可能產(chǎn)生什么潛在影響?
- 如果Teleportation(隔空傳送)技術(shù)成為現(xiàn)實(shí),世界可能會(huì)如何變化?
6. 反思型Prompt
反思型Prompt幫助個(gè)人更深入地了解自己、自己的信念和行為。它們經(jīng)常根據(jù)特定話題或個(gè)人經(jīng)歷鼓勵(lì)自我成長(zhǎng)和內(nèi)省。你可能需要提供一些背景信息來(lái)獲得理想的回答。例如:
- 我該如何建立自信,克服自我懷疑?
- 我可以采取哪些策略來(lái)保持健康的工作與生活平衡?
影響Prompt選擇的因素有哪些?
在創(chuàng)建有效的Prompt時(shí),需要考慮許多因素,這些因素影響著ChatGPT回答的質(zhì)量、相關(guān)性和準(zhǔn)確性。重要的因素包括:
- 模型知識(shí):了解ChatGPT的優(yōu)勢(shì)和劣勢(shì)。即使是像ChatGPT這樣的尖端模型,在特定任務(wù)上可能需要幫助,或者會(huì)產(chǎn)生錯(cuò)誤的數(shù)據(jù)。這種了解有助于創(chuàng)建利用模型優(yōu)勢(shì)、最小化缺陷的提示。
- 用戶(hù)意圖:理解用戶(hù)的意圖以生成相關(guān)的回答至關(guān)重要。提示應(yīng)該清楚地反映用戶(hù)的期望,讓ChatGPT提供相關(guān)和正確的信息。
- 清晰明確:確保提示清晰明確,以減少歧義或不確定性,這樣可以避免產(chǎn)生糟糕的回答。
- 領(lǐng)域特定性:在處理高度專(zhuān)業(yè)化的領(lǐng)域時(shí),考慮使用領(lǐng)域特定的詞匯或上下文,以引導(dǎo)模型得到預(yù)期的回答。增加上下文或示例有助于模型產(chǎn)生更準(zhǔn)確、相關(guān)的結(jié)果。
- 限制條件:確定是否需要任何限制(如回答長(zhǎng)度或格式)來(lái)產(chǎn)生期望的結(jié)果。可以明確指定限制條件,比如字符限制或結(jié)構(gòu)化格式,以幫助模型生成符合特定需求的回答。
考慮這些因素進(jìn)行Prompt Engineering可以提高ChatGPT的功效,并確保生成的回答與期望的目標(biāo)密切匹配。
值得注意的是,Prompt Engineering是一個(gè)持續(xù)的研究課題,不斷地進(jìn)行改進(jìn)和完善,以增強(qiáng)語(yǔ)言模型(如ChatGPT)的互動(dòng)性和實(shí)用性。
總結(jié)一下:
主要的提示步驟:
- 確定問(wèn)題或目標(biāo):清楚地說(shuō)明你希望ChatGPT協(xié)助你的目的,以及你期望的回答類(lèi)型。
示例:為面向時(shí)尚行業(yè)年輕專(zhuān)業(yè)人士的營(yíng)銷(xiāo)活動(dòng)生成吸引人的標(biāo)題。 - 添加相關(guān)關(guān)鍵詞和短語(yǔ):在Prompt中包含最相關(guān)的行業(yè)特定和主題相關(guān)術(shù)語(yǔ),以幫助引導(dǎo)ChatGPT生成期望的輸出。
示例:為我們的運(yùn)動(dòng)鞋撰寫(xiě)有說(shuō)服力的營(yíng)銷(xiāo)文案,重點(diǎn)關(guān)注舒適性、耐用性和性能。面向健身愛(ài)好者和運(yùn)動(dòng)員。包含諸如“性能”、“舒適性”、“耐用性”和“運(yùn)動(dòng)員”等關(guān)鍵詞。 - 撰寫(xiě)提示:用之前步驟中確定的關(guān)鍵詞和短語(yǔ)構(gòu)建簡(jiǎn)潔的Prompt,有效傳達(dá)所需的信息和任務(wù)。
示例:“創(chuàng)建一個(gè)引人注目的社交媒體帖子,突出我們新推出的有機(jī)護(hù)膚品系列的優(yōu)勢(shì),強(qiáng)調(diào)‘天然’、‘滋養(yǎng)’、‘環(huán)?!汀饣∧w’等成分?!?/em> - 測(cè)試、評(píng)估和迭代:使用ChatGPT生成回答,評(píng)估結(jié)果,并根據(jù)需要修改Prompt以獲得期望的輸出。重復(fù)這個(gè)過(guò)程,直到你創(chuàng)建了一個(gè)成功的Prompt,能夠始終產(chǎn)生預(yù)期的回答。
優(yōu)秀Prompt的要素:
優(yōu)秀的輸出主要取決于訓(xùn)練數(shù)據(jù)、模型參數(shù)和有效的Prompt。作用用戶(hù)我們只能影響其中一個(gè)因素,那就是Prompt, 以下是構(gòu)成一個(gè)好的Prompt的要素:
- 清晰簡(jiǎn)明的語(yǔ)言,直截了當(dāng),沒(méi)有歧義。
- 為ChatGPT分配的角色,即你希望它在提示中扮演的角色。
- 你提供的信息和示例,即你的輸入。(ChatGPT可以參考之前的聊天歷史中的信息和示例)
- 你請(qǐng)求ChatGPT完成的具體任務(wù),即你期望的輸出。
- 在收到初始回答后根據(jù)需要進(jìn)行調(diào)整,即迭代,直到獲得期望的輸出。
Prompt Engineering技巧
這個(gè)章節(jié),我們將探索幾種Prompt技巧,可以用來(lái)優(yōu)化Prompt Engineering,最大化與ChatGPT的交互效果。讓我們深入了解這些技巧,理解它們的重要性。
清晰明確的指令
清晰明確的指令是有效Prompt Engineering的基礎(chǔ)。通過(guò)提供明確的指導(dǎo),用戶(hù)可以提高ChatGPT回答的質(zhì)量。OpenAI的研究表明,定義清晰的Prompt顯著影響語(yǔ)言模型的性能。
Prompt 1:
Prompt 2:
使用明確的限制條件
在Prompt中加入明確的限制條件可以引導(dǎo)ChatGPT的思考過(guò)程,確保更準(zhǔn)確、有理有據(jù)的回答。限制條件作為額外的指令,可以塑造模型的行為,提高生成輸出的相關(guān)性。
例如,當(dāng)尋求逐步指導(dǎo)時(shí),加入限制條件,比如“請(qǐng)?zhí)峁┰敿?xì)的、順序的過(guò)程”,有助于ChatGPT生成連貫、易于遵循的指導(dǎo)。OpenAI的研究表明,使用明確的規(guī)則可以獲得更可控、更符合預(yù)期的輸出。
通過(guò)嘗試不同的上下文和示例
上下文在Prompt Engineering中扮演著至關(guān)重要的角色。通過(guò)在Prompt中提供相關(guān)的上下文和示例,用戶(hù)可以增強(qiáng)ChatGPT的理解能力,并引導(dǎo)它生成更準(zhǔn)確、與上下文相關(guān)的回答。
例如,將相關(guān)的上下文融入提示中,在詢(xún)問(wèn)關(guān)于特定主題的信息時(shí),能夠幫助ChatGPT提供更有見(jiàn)地的答案。
Prompt 1:
Prompt 2:
充滿(mǎn)上下文的Prompt可以引導(dǎo)ChatGPT生成與特定興趣領(lǐng)域相一致的回答。
運(yùn)用 System 1和System 2 問(wèn)題
System 1和System 2 問(wèn)題提供了一個(gè)平衡的Prompt Engineering方法。System 1問(wèn)題引發(fā)快速、本能的回答,而System 2問(wèn)題需要深思熟慮、詳細(xì)的回答。將這兩種類(lèi)型的問(wèn)題結(jié)合起來(lái),可以為與ChatGPT的交互增添多樣性和深度。
因此,在Prompt Engineering中運(yùn)用System 1和System 2問(wèn)題是一種影響ChatGPT給出回答類(lèi)型的方法。
用戶(hù)可以通過(guò)在Prompt中包含System 1和System 2問(wèn)題,指導(dǎo)ChatGPT生成滿(mǎn)足他們需求的回答??紤]以下示例來(lái)說(shuō)明這個(gè)概念:
示例:旅行建議AI助手
Prompt: “作為一個(gè)旅游推薦助理,您的目標(biāo)是為用戶(hù)提供個(gè)性化和明智的旅游建議。請(qǐng)使用System 1 和System 2 問(wèn)題來(lái)生成相關(guān)回復(fù)。System 1 問(wèn)題應(yīng)側(cè)重于快速建議,而System 2 問(wèn)題應(yīng)探討建議背后的原因。
System 1 問(wèn)題 “巴黎有哪些熱門(mén)旅游景點(diǎn)?
System 2 問(wèn)題 “你能解釋埃菲爾鐵塔的歷史意義及其建筑特點(diǎn)嗎?
在這個(gè)示例中,System 1問(wèn)題促使ChatGPT快速提供巴黎主要旅游景點(diǎn)的推薦。尋求簡(jiǎn)短旅行行程建議的用戶(hù)將從簡(jiǎn)潔易懂的信息中受益?;卮鹂赡馨ūR浮宮博物館、巴黎圣母院和香榭麗舍大街等景點(diǎn)。
而System 2問(wèn)題鼓勵(lì)ChatGPT探索特定景點(diǎn)的歷史重要性和建筑方面,比如埃菲爾鐵塔。這樣的回答對(duì)于想要更好地了解和深入了解該景點(diǎn)的用戶(hù)非常有幫助?;卮鹂赡馨ㄋ菫?889年世界博覽會(huì)而建的歷史背景,居斯塔夫·埃菲爾的設(shè)計(jì)以及其著名的鐵格子結(jié)構(gòu)。
通過(guò)包含System 1和System 2問(wèn)題,用戶(hù)可以獲得快速的推薦和更詳細(xì)的解釋。這使得旅行建議助理能夠適應(yīng)不同用戶(hù)的口味,提供實(shí)用的建議,同時(shí)也滿(mǎn)足對(duì)景點(diǎn)歷史和建筑特色感興趣的用戶(hù)的好奇心。
控制輸出長(zhǎng)度
控制ChatGPT回答的長(zhǎng)度是快速Prompt Engineering的一個(gè)關(guān)鍵組成部分。它使用戶(hù)能夠控制生成輸出的詳細(xì)程度和長(zhǎng)度??紤]以下示例,看看如何管理輸出的長(zhǎng)度:
Prompt 1:
Prompt 2:
在這個(gè)回答中,ChatGPT展示了很強(qiáng)的冗長(zhǎng)度,提供了詳細(xì)的逐步食譜。它包含了額外的解釋和建議,幫助用戶(hù)完成烘焙過(guò)程。這種深度對(duì)于那些需要詳細(xì)指導(dǎo)的人來(lái)說(shuō)是合適的,特別是對(duì)于新手烘焙者或喜歡更全面方法的人來(lái)說(shuō)。
這樣,ChatGPT可以適應(yīng)多樣化的用戶(hù)偏好,通過(guò)調(diào)節(jié)回答的冗長(zhǎng)度來(lái)優(yōu)化對(duì)話體驗(yàn),使聊天機(jī)器人能夠?yàn)橛脩?hù)的需求提供相關(guān)的答案,并加強(qiáng)與用戶(hù)的聯(lián)系。
Prompt Engineering 最佳實(shí)踐
Prompt Engineering是一個(gè)動(dòng)態(tài)的過(guò)程,需要充分的思考和實(shí)驗(yàn),以獲得最佳結(jié)果。在本節(jié)中,我們將看看Prompt Engineering的最佳實(shí)踐,幫助用戶(hù)在與ChatGPT的交互中獲得最大的收益。讓我們來(lái)了解這些實(shí)踐,并看看它們的效果如何。
持續(xù)測(cè)試和改進(jìn)
有效的Prompt Engineering在很大程度上依賴(lài)于持續(xù)測(cè)試和改進(jìn)。用戶(hù)可以通過(guò)定期Review輸出并相應(yīng)地調(diào)整Prompt來(lái)不斷完善指令,提高ChatGPT回答的質(zhì)量。
迭代 1:
迭代 2:
迭代 3:
意圖與創(chuàng)意之間的平衡
在Prompt Engineering中,平衡用戶(hù)的意圖和模型本身創(chuàng)造力也至關(guān)重要。請(qǐng)看下面的提供寫(xiě)作靈感聊天機(jī)器人,它努力在促進(jìn)創(chuàng)造力的同時(shí)提供適當(dāng)?shù)腜rompt:
ChatGPT通過(guò)平衡匹配用戶(hù)意圖和提升模型創(chuàng)造力,給出了合適的Prompt,鼓勵(lì)想象力,同時(shí)保持與用戶(hù)的寫(xiě)作目標(biāo)一致。
整合外部資源和API
利用外部資源和API是Prompt Engineering中的一項(xiàng)強(qiáng)大技術(shù),它使得ChatGPT能夠利用額外的信息并增強(qiáng)其回答能力。讓我們通過(guò)一個(gè)示例來(lái)了解如何使用外部資源和API:
示例:天氣信息助理
Prompt: “As a weather information chatbot, harness external resources and APIs to provide accurate and up-to-date weather data to users.”
User query: “Shanghai今天天氣如何?”
這個(gè)聊天機(jī)器人可以與外部的天氣API(比如Weather.com)進(jìn)行整合,從而提供準(zhǔn)確的天氣信息。通過(guò)調(diào)用API,聊天機(jī)器人可以獲取指定地點(diǎn)的實(shí)時(shí)天氣數(shù)據(jù)。
API 集成
import requests
def get_weather(city):
api_key = "YOUR_API_KEY"
url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={city}"
response = requests.get(url)
data = response.json()
return data["current"]["condition"]["text"], data["current"]["temp_c"]
上面的get_weather()函數(shù)演示了與WeatherAPI的集成示例,它返回給定城市的天氣狀況和攝氏溫度。
回答模版:
city = "Shanghai"
weather_condition, temperature = get_weather(city)
response = f"The weather in {city} today is {weather_condition}. The temperature is {temperature}°C."
回答結(jié)果:
“The weather in Shanghai today is partly cloudy. The temperature is 22°C.”
通過(guò)利用外部資源和API,聊天機(jī)器人可以檢索準(zhǔn)確的天氣信息,并將其融入到回答中。這為用戶(hù)提供了適合其指定地點(diǎn)的實(shí)時(shí)天氣更新。
與外部資源和API的集成使得ChatGPT能夠獲取超出其訓(xùn)練數(shù)據(jù)的大量信息,從而為用戶(hù)的查詢(xún)提供更有價(jià)值和可靠的回答。
OpenAI API 示例
OpenAI API允許開(kāi)發(fā)人員將ChatGPT集成到他們的應(yīng)用程序、產(chǎn)品或服務(wù)中。以下是一個(gè)示例,展示了如何使用OpenAI API:
import openai
# Set up your OpenAI API credentials
openai.api_key = 'YOUR_API_KEY'
# Define a function for interacting with ChatGPT
def ask_chatbot(question, chat_history=None):
if chat_history is None:
chat_history = []
# Format the input for the API call
input_text = '\n'.join(chat_history + [f'User: {question}'])
# Call the OpenAI API to generate a response
response = openai.Completion.create(
engine='text-davinci-003',
prompt=input_text,
max_tokens=50,
temperature=0.7,
n=1,
stop=None,
temperature=0.7
)
# Extract the generated response from the API response
answer = response.choices[0].text.strip()
# Append the user's question and the chatbot's answer to the chat history
chat_history.append(f'User: {question}')
chat_history.append(f'Chatbot: {answer}')
return answer
# Example usage
chat_history = []
user_question = "What is the capital of France?"
response = ask_chatbot(user_question, chat_history)
print(response)
在這個(gè)示例中,我們定義了ask_chatbot()函數(shù),它接收用戶(hù)的問(wèn)題和一個(gè)可選的聊天歷史作為輸入。該函數(shù)對(duì)聊天歷史和用戶(hù)問(wèn)題進(jìn)行格式化,然后使用openai.Completion.create()方法向OpenAI API發(fā)起API調(diào)用。
API的響應(yīng)包含來(lái)自ChatGPT生成的回答。我們從響應(yīng)中提取出答案,并將用戶(hù)的問(wèn)題和聊天機(jī)器人的回答添加到聊天歷史中。最后,生成的答案被返回。
借助ChatGPT OpenAI API,開(kāi)發(fā)人員可以將ChatGPT的功能集成到他們的應(yīng)用程序中,使用戶(hù)可以與聊天機(jī)器人進(jìn)行交互,并根據(jù)他們的查詢(xún)接收回答。
避開(kāi)任何偏見(jiàn)和在道德準(zhǔn)則下使用
ChatGPT必須在道德和無(wú)偏見(jiàn)的前提下使用。以下是一個(gè)重要實(shí)例:
示例:AI輔助的求職者篩選
想象一下,有一個(gè)可以使用ChatGPT來(lái)分析面試回答, 并篩選求職者的AI系統(tǒng)。篩選過(guò)程必須是有道德的和沒(méi)有偏見(jiàn)的。
以下步驟可以減少偏見(jiàn),確保公平性:
- 訓(xùn)練數(shù)據(jù)多元化:使用各種種族、性別和族裔的數(shù)據(jù)來(lái)優(yōu)化ChatGPT。從一開(kāi)始就解決訓(xùn)練數(shù)據(jù)的偏見(jiàn)是至關(guān)重要的,因?yàn)樗赡軐?dǎo)致偏見(jiàn)。
- 偏見(jiàn)評(píng)估:定期評(píng)估模型的回答,以人工的方式識(shí)別和減少偏見(jiàn)。使用平衡和平等機(jī)會(huì)來(lái)查看模型的建議是否具備平衡因素(如性別或種族)的影響。進(jìn)行調(diào)整以減少偏見(jiàn)。
- 透明的準(zhǔn)則:向人類(lèi)審查人員和開(kāi)發(fā)者傳達(dá)系統(tǒng)準(zhǔn)則。這些準(zhǔn)則應(yīng)強(qiáng)調(diào)公正、道德和避免偏見(jiàn)。明確指示在篩選過(guò)程中避免偏袒或歧視特定群體。
- 人工干預(yù)審查:讓人類(lèi)分析系統(tǒng)的回答。這一步驟有助于發(fā)現(xiàn)任何模型的偏見(jiàn),并確保人類(lèi)可以考慮上下文并做出公平的決定。
- 持續(xù)監(jiān)控和反饋:持續(xù)監(jiān)測(cè)系統(tǒng)的性能,并從用戶(hù)和審閱員那里收集反饋。檢查系統(tǒng)輸出是否存在偏見(jiàn)和意外效果。反饋循環(huán)有助于迅速解決問(wèn)題。
- 多元化的審閱員團(tuán)隊(duì):確保負(fù)責(zé)審查和優(yōu)化系統(tǒng)輸出的團(tuán)隊(duì)成員來(lái)自不同的背景。多樣化的團(tuán)隊(duì)可以發(fā)現(xiàn)和解決同質(zhì)團(tuán)體可能忽略的偏見(jiàn)。
這些做法有助于AI輔助的求職者篩選系統(tǒng)避免偏見(jiàn),根據(jù)求職者的技能和資格進(jìn)行評(píng)估。
進(jìn)階的Prompt Engineering策略
Prompt Engineering可以更提升一步,包括創(chuàng)新策略,以進(jìn)一步優(yōu)化ChatGPT的性能和適應(yīng)性。本節(jié)將介紹一些高級(jí)的Prompt Engineering策略,如溫度和Token控制、多輪對(duì)話的提示鏈接、針對(duì)特定領(lǐng)域應(yīng)用的提示修改以及處理混淆或矛盾的用戶(hù)輸入。
Temperature和Token管理
Temperature和Token控制是調(diào)整ChatGPT行為的有效方法。用戶(hù)可以通過(guò)Temperature控制改變生成輸出的隨機(jī)性。較低的Temperature,如0.2,會(huì)產(chǎn)生更加聚焦和確定性的回答,而較高的Temperature,如1.0,會(huì)產(chǎn)生更多變化和探索性的結(jié)果。這個(gè)值也代表了控制模型的創(chuàng)造力和理性。
OpenAI的研究揭示了Temperature控制對(duì)ChatGPT回答多樣性的影響。通過(guò)嘗試不同的Temperature設(shè)置,用戶(hù)可以在提供易懂的答案和將新特性融入生成的回答之間達(dá)到理想的平衡。
Prompt 1:
Prompt 2:
Token控制則需要指定最大Token數(shù),以限制答案的長(zhǎng)度。這使得用戶(hù)可以控制ChatGPT輸出的冗長(zhǎng)程度,得到簡(jiǎn)潔明了的回答。通過(guò)設(shè)定適當(dāng)?shù)腡oken限制,用戶(hù)可以確保ChatGPT提供與他們期望的回答長(zhǎng)度相對(duì)應(yīng)的答案。
Prompt Chain和多輪對(duì)話
Prompt Chain和多輪對(duì)話可以實(shí)現(xiàn)更加交互式和動(dòng)態(tài)的ChatGPT交流。用戶(hù)可以將多個(gè)Prompt鏈接在一起,形成連續(xù)的對(duì)話流程。每個(gè)提示可以引用之前的輸入或ChatGPT先前的回答,從而實(shí)現(xiàn)豐富上下文的對(duì)話。
通過(guò)使用Prompt Chain,用戶(hù)可以創(chuàng)建更加對(duì)話式的體驗(yàn),并與ChatGPT進(jìn)行反復(fù)的互動(dòng)。這種技術(shù)適用于需要多步指令或進(jìn)行詳細(xì)討論的任務(wù)。
為特定領(lǐng)域的應(yīng)用調(diào)整Prompt
為特定領(lǐng)域的應(yīng)用調(diào)整Prompt是Prompt Engineering的重要方法。它涉及將Prompt量身定制給特定行業(yè)或領(lǐng)域,以確?;卮鹣嚓P(guān)準(zhǔn)確。讓我們通過(guò)一個(gè)示例來(lái)說(shuō)明如何為特定領(lǐng)域的應(yīng)用調(diào)整Prompt:
示例:醫(yī)療診斷AI助理
提示:“為醫(yī)療診斷AI助理設(shè)計(jì)一個(gè)Prompt,幫助用戶(hù)評(píng)估他們的癥狀并提供初步建議?!?/p>
為醫(yī)療診斷AI助理調(diào)整Prompt需要加入相關(guān)的醫(yī)學(xué)術(shù)語(yǔ)、癥狀和診斷考慮因素。
Prompt:“請(qǐng)描述您的癥狀和醫(yī)療歷史,AI助理將根據(jù)提供的信息提供初步評(píng)估。請(qǐng)注意,此評(píng)估不能替代專(zhuān)業(yè)醫(yī)療建議。如果您遇到醫(yī)療緊急情況,請(qǐng)立即聯(lián)系急救服務(wù)?!?/p>
用戶(hù):“我頭痛、發(fā)燒和喉嚨痛。”
調(diào)整后的Prompt考慮了用戶(hù)的癥狀,并告知他們?cè)u(píng)估的局限性。AI助理生成的回答可以根據(jù)提供的信息提供初步建議:
回答:“根據(jù)您頭痛、發(fā)燒和喉嚨痛的癥狀,可能表明您患了普通的病毒感染,比如流感,或者可能是喉炎。請(qǐng)咨詢(xún)醫(yī)療專(zhuān)業(yè)人員進(jìn)行確切診斷和適當(dāng)治療非常重要。在此期間,您可以休息,保持水分,服用非處方止痛藥緩解癥狀。如果您的癥狀加劇或持續(xù),請(qǐng)尋求醫(yī)療救助進(jìn)行進(jìn)一步評(píng)估。”
通過(guò)將Prompt調(diào)整為醫(yī)療診斷AI助理,回答與特定領(lǐng)域的應(yīng)用相符,并提供了初步建議,同時(shí)強(qiáng)調(diào)了專(zhuān)業(yè)醫(yī)療建議的重要性。
模糊處理或解決矛盾的用戶(hù)輸入
Prompt Engineering需要處理一些模糊的概念或矛盾的用戶(hù)輸入。ChatGPT必須仔細(xì)處理此類(lèi)輸入并做出有意義的回答。讓我們通過(guò)一個(gè)示例來(lái)說(shuō)明如何實(shí)現(xiàn):
示例:餐廳推薦聊天機(jī)器人
Prompt:“作為餐廳推薦聊天機(jī)器人,處理模糊或矛盾的用戶(hù)輸入,以確保準(zhǔn)確和有幫助的回答?!?/p>
用戶(hù):“我想找一家在城里有素食和牛排選項(xiàng)的餐廳?!?/p>
在這種情況下,用戶(hù)希望有牛排和素食選項(xiàng)。聊天機(jī)器人可以進(jìn)行澄清:
回答:“是的!我很樂(lè)意幫您找到一家餐廳。您更傾向于素食為主的餐廳,還是希望有多種選擇,包括牛排?”
聊天機(jī)器人請(qǐng)求澄清以更好地理解用戶(hù)的請(qǐng)求并提供更準(zhǔn)確的推薦。
用戶(hù):“我喜歡一家有素食和牛排菜肴的餐廳。”
用戶(hù)明確了他們的偏好后,聊天機(jī)器人可以回答:
回答:“太好了!我推薦“The Grill House”餐廳,因?yàn)樗麄兲峁┧厥澈团H獠穗?。他們?cè)谪S富的菜單上提供美味的素食和牛肉菜肴。祝您用餐愉快!”
通過(guò)積極與用戶(hù)互動(dòng)并尋求澄清,聊天機(jī)器人處理了初始查詢(xún)的模糊性,理解了用戶(hù)的意愿,并推薦了符合他們要求的餐廳。
處理矛盾的用戶(hù)輸入也是類(lèi)似的。聊天機(jī)器人可以澄清用戶(hù)的目標(biāo),并在用戶(hù)希望獲得價(jià)格便宜但奢華的餐廳時(shí)
案例:真實(shí)世界中的Prompt Engineering
在實(shí)際應(yīng)用中,Prompt Engineering產(chǎn)生了積極的效果。我們來(lái)看看在不同領(lǐng)域的幾個(gè)Prompt Engineering案例:
客戶(hù)支持聊天機(jī)器人
客戶(hù)支持聊天機(jī)器人提升客戶(hù)服務(wù)和響應(yīng)速度。Prompt Engineering可以提高聊天機(jī)器人的準(zhǔn)確性和效率,增強(qiáng)客戶(hù)體驗(yàn)。
Prompt Engineering幫助聊天機(jī)器人學(xué)習(xí)并回應(yīng)客戶(hù)輸入,使交互更加個(gè)性化和有效。
案例:HubSpot Chatbot Builder,可以預(yù)約會(huì)議、鏈接到KB,并與工單系統(tǒng)集成。
內(nèi)容創(chuàng)作和編輯
內(nèi)容創(chuàng)作和編輯也需要Prompt Engineering。ChatGPT幫助用戶(hù)撰寫(xiě)優(yōu)秀的博客文章、電子郵件和創(chuàng)意作品。
通過(guò)提供具體詳細(xì)的Prompt,用戶(hù)可以幫助ChatGPT開(kāi)發(fā)符合他們風(fēng)格、語(yǔ)調(diào)和目標(biāo)的文本。提示可以提供背景信息、示例或明確的限制,以確保生成的內(nèi)容滿(mǎn)足要求。
OpenAI進(jìn)行了Prompt Engineering的研究,以提高內(nèi)容的連貫性和相關(guān)性,通過(guò)嘗試不同的Prompt和節(jié)省編輯時(shí)間,使用戶(hù)生成更有吸引力和主題相關(guān)的文本。
特定領(lǐng)域知識(shí)檢索
Prompt Engineering可以高效地檢索特定領(lǐng)域的知識(shí)。ChatGPT可以訓(xùn)練大量的特定領(lǐng)域數(shù)據(jù),以提供準(zhǔn)確和相關(guān)的主題信息。
用戶(hù)可以通過(guò)定制Prompt和添加關(guān)鍵詞或上下文來(lái)引導(dǎo)ChatGPT檢索特定領(lǐng)域的知識(shí)。在醫(yī)療、法律、金融和技術(shù)等行業(yè),準(zhǔn)確的信息至關(guān)重要。
Prompt Engineering策略促進(jìn)了特定領(lǐng)域知識(shí)的檢索,為用戶(hù)提供準(zhǔn)確和最新的信息。
交互式故事敘述和游戲
Prompt Engineering使交互式故事敘述和游戲變得更加有趣。ChatGPT根據(jù)用戶(hù)的輸入作出回應(yīng)并推動(dòng)故事發(fā)展。
我之前發(fā)了一篇文章在
ChatGPT在游戲行業(yè)中的應(yīng)用: 增強(qiáng)的敘事功能和互動(dòng)性
隨著游戲行業(yè)的不斷發(fā)展,用于為玩家創(chuàng)造沉浸式互動(dòng)體驗(yàn)的工具和技術(shù)也在不斷發(fā)展。最近在業(yè)界掀起波瀾的這樣一個(gè)工具是ChatGPT,這是一個(gè)由OpenAI開(kāi)發(fā)的強(qiáng)大語(yǔ)言模型。在這篇文章中,我們將仔細(xì)研究ChatGPT是如何被用來(lái)增強(qiáng)游戲世界中的…
medium.com
用戶(hù)可以使用Prompt構(gòu)建沉浸式的故事和游戲,引入故事元素、用戶(hù)選擇或游戲機(jī)制。Prompt Chain和多回合對(duì)話實(shí)現(xiàn)了豐富的敘事和游戲交互。
案例:OpenAI的AI Dungeon展示了Prompt Engineering如何改變交互式故事敘述和游戲。AI Dungeon允許用戶(hù)通過(guò)提示共同參與動(dòng)態(tài)的敘事。
ChatGPT Prompt Engineering對(duì)開(kāi)發(fā)人員的意義
Deep Learning AI最近推出了一門(mén)名為“ChatGPT Prompt Engineering for Developers”的課程,由Isa Fulford和Andrew Ng(吳恩達(dá))主講。
Short Courses
Take your generative AI skills to the next level with short courses from DeepLearning.AI. Enroll today to learn…
www.deeplearning.ai
在課程中,他們強(qiáng)調(diào)作為開(kāi)發(fā)人員工具的大語(yǔ)言模型(LLMs)的潛力,利用API調(diào)用LLMs來(lái)進(jìn)行快速軟件應(yīng)用開(kāi)發(fā),這一點(diǎn)目前還未得到足夠的重視。他們的目標(biāo)是分享有效利用LLMs的可能性和最佳實(shí)踐。課程涵蓋了軟件開(kāi)發(fā)的提示最佳實(shí)踐,以及日常使用案例,如摘要、推理、轉(zhuǎn)換和擴(kuò)展,并演示了如何使用LLM構(gòu)建聊天機(jī)器人。
課程中主要使用OpenAI的ChatGPT模型,特別是GPT 3.5 Turbo,并使用Python(尤其在Jupyter Notebook中)進(jìn)行演示。
以下是一些學(xué)到的內(nèi)容:
兩個(gè)原則:
原則1:寫(xiě)清晰明確的指令
表達(dá)清晰明確的指令至關(guān)重要,可以有效地引導(dǎo)模型,并減少出現(xiàn)無(wú)關(guān)或錯(cuò)誤的回答的可能性。避免將清晰的提示與簡(jiǎn)短的提示混淆,因?yàn)檩^長(zhǎng)的提示通常會(huì)提供更多的清晰度和上下文,從而得到詳細(xì)和相關(guān)的輸出。
- 策略1:使用分隔符來(lái)指示輸入的不同部分,例如三引號(hào)(’’’),三個(gè)反引號(hào)(’*’),三個(gè)短劃線(’ — -’),尖括號(hào)(? ?),或XML標(biāo)簽(?tag? ?/tag?)。分隔符還有助于防止Prompt Injection(提示注入),即前后矛盾的用戶(hù)指令可能會(huì)誤導(dǎo)模型。
text = f"""
You should express what you want a model to do by \
providing instructions that are as clear and \
specific as you can possibly make them. \
This will guide the model towards the desired output, \
and reduce the chances of receiving irrelevant \
or incorrect responses. Don't confuse writing a \
clear prompt with writing a short prompt. \
In many cases, longer prompts provide more clarity \
and context for the model, which can lead to \
more detailed and relevant outputs.
"""
prompt = f"""
Summarize the text delimited by triple backticks \
into a single sentence.
```{text}```
"""
- 策略2:請(qǐng)求結(jié)構(gòu)化輸出,例如HTML或JSON格式,以便更輕松地解析模型的回答。這樣可以使得模型的回答更易于處理和提取信息。
prompt = f"""
Generate a list of three made-up book titles along \ with their authors and genres.
Provide them in JSON format with the following keys: book_id, title, author, genre.
"""
response = get completion (prompt)
print (response)
- 策略3:驗(yàn)證任務(wù)前提是否滿(mǎn)足。首先Prompt模型檢查這些前提條件,并指出任何未滿(mǎn)足的條件,而不需要嘗試完整的任務(wù)完成??紤]潛在的邊緣情況,確保模型可以適當(dāng)?shù)靥幚硭鼈?,避免出現(xiàn)意外錯(cuò)誤或結(jié)果。這樣可以增加模型的可靠性和魯棒性。
- 策略4:利用few-shot提示,在要求模型執(zhí)行所需任務(wù)之前,提供已成功執(zhí)行任務(wù)的示例。通過(guò)示例,讓模型了解如何處理類(lèi)似的任務(wù),并為其提供必要的指導(dǎo)。這樣可以加速模型的學(xué)習(xí)和適應(yīng)性,使其更容易理解用戶(hù)的意圖并生成準(zhǔn)確的響應(yīng)。
prompt = f"""
Your task is to answer in a consistent style.
<child>: Teach me about patience.
<grandparent>: The river that carves the deepest \ valley flows from a modest spring; the \ grandest symphony originates from a single note; \ the most intricate tapestry begins with a solitary thread.
<child>: Teach me about resilience.
"""
response = get completion (prompt)
print (response)
原則2:給模型足夠的思考時(shí)間
允許模型有足夠的時(shí)間來(lái)思考和推理問(wèn)題,以防止推理錯(cuò)誤和過(guò)早的結(jié)論。復(fù)雜的任務(wù)可能需要逐步指導(dǎo)或一系列相關(guān)的推理步驟,然后模型才能提供最終的答案。
- 策略1:明確任務(wù)的完成步驟,特別是當(dāng)直接回答困難時(shí)。就像人類(lèi)解決問(wèn)題一樣,要求模型在提供最終解決方案之前進(jìn)行一系列適當(dāng)?shù)耐评聿襟E。這樣可以確保模型在生成答案之前進(jìn)行充分的思考和推理,從而提高其響應(yīng)的準(zhǔn)確性和合理性。
prompt 2 = f"""
Your task is to perform the following actions:
1 - Summarize the following text delimited by <> with 1 sentence.
2 - Translate the summary into French.
3 - List each name in the French summary.
4 - Output a json object that contains the following keys: french_ summary, num names.
Use the following format:
Text: <text to summarize>
Summary: <summary>
Translation: <summary translation>
Names: <list of names in Italian summary>
Output JSON: <ison with summary and num names>
Text: <{text!>
response = get_completion (prompt_2)
print "InCompletion for prompt 2:")
print (response)
- 策略2:指示模型在得出結(jié)論之前找到解決方案。明確地指示模型在提供答案之前進(jìn)行推理和思考通常會(huì)產(chǎn)生更好的結(jié)果。這種方法可以讓模型有足夠的時(shí)間來(lái)處理和得出準(zhǔn)確的響應(yīng)。
通過(guò)遵循這些原則和策略,開(kāi)發(fā)人員可以?xún)?yōu)化他們對(duì)LLM的使用,并在軟件開(kāi)發(fā)中實(shí)現(xiàn)預(yù)期的結(jié)果。這樣可以提高模型的性能和靈活性,從而更好地滿(mǎn)足用戶(hù)的需求。
迭代式Prompt開(kāi)發(fā):
迭代式Prompt開(kāi)發(fā)的過(guò)程類(lèi)似于編程實(shí)踐。它涉及嘗試不同的方法,根據(jù)需要進(jìn)行改進(jìn)和重試。以下是涉及的步驟:
- 嘗試一個(gè)解決方案。
- 分析結(jié)果,找出與預(yù)期結(jié)果不符的地方。
- 澄清說(shuō)明并給予更多時(shí)間進(jìn)行思考。
- 使用一批示例來(lái)優(yōu)化Prompt。
- 重復(fù)這個(gè)過(guò)程。
在課程示例中,教師們提出了一個(gè)案例研究,涉及從產(chǎn)品說(shuō)明書(shū)中生成營(yíng)銷(xiāo)文案。他們通過(guò)在每一步中優(yōu)化Prompt來(lái)迭代式地解決了三個(gè)關(guān)鍵問(wèn)題:
問(wèn)題1:文本過(guò)長(zhǎng) -> 解決方案:將文本限制在最多50個(gè)字以?xún)?nèi)。
問(wèn)題2:關(guān)注不相關(guān)的細(xì)節(jié) -> 解決方案:加入目標(biāo)受眾,比如“描述適用于家具零售商…”
問(wèn)題3:缺少尺寸表 -> 解決方案:將所有內(nèi)容格式化為HTML。
具備的能力:
閱讀總結(jié):
大型語(yǔ)言模型已被廣泛用于文本摘要。您可以通過(guò)提供具體的Prompt來(lái)請(qǐng)求關(guān)于價(jià)格和價(jià)值的摘要。
prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site to give feedback to the \
pricing deparmtment, responsible for determining the \
price of the product.
Summarize the review below, delimited by triple
backticks, in at most 30 words, and focusing on any aspects \
that are relevant to the price and perceived value.
Review: ```{prod_review}```
"""
而且您還可以編寫(xiě)一個(gè)循環(huán)來(lái)對(duì)多個(gè)文本進(jìn)行總結(jié):
reviews = [review_1, review_2, review_3, review_4]
for i in range(len(reviews)):
prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site.
Summarize the review below, delimited by triple \
backticks in at most 20 words.
Review: ```{reviews[i]}```
"""
response = get_completion(prompt)
print(i, response, "\n")
推理:
大型語(yǔ)言模型可以在沒(méi)有特定訓(xùn)練的情況下推斷出各種方面。它們可以確定情感、情緒,提取產(chǎn)品和公司名稱(chēng),找出主題等等。
轉(zhuǎn)換:
大型語(yǔ)言模型在文本轉(zhuǎn)換任務(wù)方面表現(xiàn)出色,包括語(yǔ)言翻譯、拼寫(xiě)和語(yǔ)法檢查、語(yǔ)氣調(diào)整以及格式轉(zhuǎn)換。
prompt = f"""
Translate the following text to French and Spanish and English pirate: \
```I want to order a basketball```
"""
response = get completion (prompt)
print response
擴(kuò)展:
大型語(yǔ)言模型可以生成根據(jù)每位客戶(hù)的評(píng)價(jià)定制的個(gè)性化客戶(hù)服務(wù)電子郵件。
prompt = f"""
You are a customer service AI assistant.
Your task is to send an email reply to a valued customer.
Given the customer email delimited by ```,\
Generate a reply to thank the customer for their review.
If the sentiment is positive or neutral, thank them for \
their review.
If the sentiment is negative, apologize and suggest that \
they can reach out to customer service.
Make sure to use specific details from the review.
Write in a concise and professional tone.
Sign the email as `AI customer agent`.
Customer review: ```{review}```
Review sentiment: (sentiment}
"""
response = get completion (prompt, temperature=0.7)
print(response)
開(kāi)發(fā)聊天機(jī)器人:
利用大型語(yǔ)言模型的其中一個(gè)令人著迷的方面是可以輕松創(chuàng)建定制的聊天機(jī)器人。ChatGPT的網(wǎng)頁(yè)界面提供了一個(gè)由強(qiáng)大的語(yǔ)言模型支持的對(duì)話平臺(tái)。然而,真正令人興奮的是利用大型語(yǔ)言模型的能力來(lái)構(gòu)建自己的聊天機(jī)器人,比如用于餐廳的AI客服代理或AI點(diǎn)餐機(jī)器人。
在這個(gè)案例中,我們將這個(gè)聊天機(jī)器人稱(chēng)為“OrderBot”。目標(biāo)是自動(dòng)收集用戶(hù)提示和助手回應(yīng),以構(gòu)建這個(gè)高效的“OrderBot”。主要步驟是定義一個(gè)實(shí)用函數(shù)。該函數(shù)幫助收集用戶(hù)消息,消除手動(dòng)輸入的需要。從用戶(hù)界面收集的提示然后被添加到一個(gè)名為“context”的列表中。隨后,對(duì)于每一次交互,使用這個(gè)上下文來(lái)調(diào)用模型。
模型的回應(yīng)被加入到上下文中,確保模型和用戶(hù)的消息都被保留,有助于上下文的不斷增長(zhǎng)。這些信息的積累使得模型能夠確定適當(dāng)?shù)男袆?dòng)。
最后,設(shè)置和執(zhí)行用戶(hù)界面來(lái)顯示OrderBot。上下文中包含系統(tǒng)消息,其中包含菜單,它在與語(yǔ)言模型的每次交互中保持一致。隨著更多的交互發(fā)生,上下文不斷發(fā)展,保持全面的對(duì)話記錄。
總結(jié)
Prompt Engineering對(duì)于ChatGPT來(lái)說(shuō)是一個(gè)Game-Changer。通過(guò)掌握這一技巧,您可以塑造和引導(dǎo)語(yǔ)言模型的回應(yīng),以滿(mǎn)足您的特定需求。
Prompt Engineering的未來(lái)前景一片光明,持續(xù)的研究和合作推動(dòng)著該領(lǐng)域的創(chuàng)新。隨著語(yǔ)言模型的不斷發(fā)展,Prompt Engineering將在發(fā)掘它們的全部潛力方面發(fā)揮關(guān)鍵作用。
ChatGPT的Prompt Engineering開(kāi)啟了無(wú)限的可能性。通過(guò)實(shí)施有效的技巧和探索先進(jìn)的策略,我們可以改變與語(yǔ)言模型的互動(dòng)方式。Prompt Engineering改變了客戶(hù)服務(wù)聊天機(jī)器人、內(nèi)容開(kāi)發(fā)和游戲,促進(jìn)了AI與人類(lèi)的協(xié)作。
FAQ
什么是提Prompt Engineering?
Prompt Engineering是設(shè)計(jì)有效的Prompt和指令,用于將用戶(hù)意圖傳達(dá)給像ChatGPT這樣的語(yǔ)言模型的過(guò)程。它有助于從模型獲取準(zhǔn)確、相關(guān)和有用的響應(yīng)。
為什么Prompt Engineering對(duì)ChatGPT很重要?
Prompt Engineering對(duì)于最大化ChatGPT的效果至關(guān)重要。通過(guò)設(shè)計(jì)精心制作的Prompt,用戶(hù)可以引導(dǎo)模型生成更準(zhǔn)確、相關(guān)的輸出,使其成為各種應(yīng)用的有價(jià)值的工具。
優(yōu)秀的Prompt Engineering技巧有哪些?
優(yōu)秀的Prompt Engineering技巧包括:
- 提供明確和具體的指示
- 使用明確的約束條件
- 嘗試使用上下文和示例
- 利用System 1和System 2問(wèn)題
- 控制輸出的冗長(zhǎng)程度
如何改進(jìn)我的Prompt以獲得更好的效果?
為了改進(jìn)您的Prompt,您可以:
- 進(jìn)行反復(fù)測(cè)試和調(diào)整
- 平衡用戶(hù)意圖和模型創(chuàng)意
- 使用外部資源和API增強(qiáng)ChatGPT的能力
- 確保在提示和輸出中避免偏見(jiàn)
這里還有一個(gè)ChatGPT Prompt Cheat Sheet,可以幫助您編寫(xiě)更好的Prompt。
高級(jí)的Prompt Engineering策略有哪些?
高級(jí)的Prompt Engineering策略包括:
- 通過(guò)控制temperature和token設(shè)置來(lái)調(diào)整隨機(jī)性和響應(yīng)長(zhǎng)度
- 通過(guò)Prompt Chain創(chuàng)建多輪對(duì)話
- 將Prompt調(diào)整為特定領(lǐng)域的應(yīng)用
- 處理模糊概念或前后矛盾的用戶(hù)輸入
后記
感謝您的閱讀, 本文很長(zhǎng), 我也知道, 您能讀到這里, 說(shuō)明您意識(shí)到Prompt Engineering的重要性, 并希望能掌握它的技巧, 本人不才, 也在學(xué)習(xí)中, 作為一名開(kāi)發(fā)人員, 可能更容易理解和掌握工程的技巧, 例如迭代、鏈?zhǔn)?Chain)和控制參數(shù)。 這邊文章大部分是翻譯自下面這篇文章
https://www.imaginarycloud.com/blog/chatgpt-prompt-engineering/文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-581845.html
非常感謝原文作者, 我從中學(xué)習(xí)到了很多, 我也用原文中的很多Prompt的技巧, 來(lái)完成了本文中的一些示例。 如果你想交流Prompt Engineering和Prompt的技巧, 歡迎與我聯(lián)系。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-581845.html
到了這里,關(guān)于面向普通用戶(hù)和開(kāi)發(fā)者的ChatGPT Prompt Engineering 終極指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!