如何調(diào)教AI給你打工?提示詞(Prompt)的秘密
前段時間張穎在混沌學(xué)園的AI大會上,分享了一些對AI趨勢的判斷,和對AI創(chuàng)業(yè)的7條建議,他在第一條建議中就提到:
“AI的學(xué)習(xí)和應(yīng)用,大家一定注意,用起來、有效迭代大于一切。一個關(guān)鍵點就是要學(xué)會寫提示詞,知道如何提問非常關(guān)鍵,怎么能更好的與AI互動也是一門學(xué)問。”
今天我們稍微把“ ”(提示工程)展開聊一聊。年初,各種用詞寶典火遍互聯(lián)網(wǎng),比如:
……
直到最近,大神們又在二維碼上玩出了花活,寫好風(fēng)格、元素的提示詞,就能出一些別具一格的“AI藝術(shù)二維碼”:
我們知道,能不能用好大語言模型,很大程度上取決于你提示詞的質(zhì)量,但別把提示詞想簡單了,它可不僅僅是在提問題時多說幾個詞或幾句話那么簡單,之所以叫 (提示工程),就是因為有很多復(fù)雜的工程實踐。
今天這篇文章,我們從兩個案例入手,第一個是純文本的例子,第二個是需要代碼來實現(xiàn)的例子,來介紹 (提示工程)的一些重要原則與技巧:
第一個案例,是在一些AI社區(qū)里很火的“爆款文案模型”,主要通過純文本來給AI寫好模板和規(guī)則提示。
第二個案例,是吳恩達與官方合作的提示工程課程中,“訂餐機器人”的例子。
最后,我們來總結(jié)一些的基本原則和技巧。
當(dāng)然,提示詞的純文本和寫代碼之間,并沒有本質(zhì)區(qū)別,用代碼實現(xiàn)是為了省和令輸出更穩(wěn)定、精確,因為中文還是會占用更多,當(dāng)你需要大規(guī)模調(diào)用API的時候,成本會急劇上升。純文本的提示詞也可以構(gòu)建得很復(fù)雜,比如我就見過600多行的文本提示詞,并且由多組模塊構(gòu)成。
01 一個爆款文案模型(純文本)
我們先簡單介紹一下什么是“ ”(提示工程)?通常是指,將你想提的問題,轉(zhuǎn)換為特定格式的輸入,并使用預(yù)定義的模板、規(guī)則和算法來處理,讓AI能夠更好地理解任務(wù)并給出相應(yīng)的回答。最大程度地讓AI精確理解任務(wù),減少因為語言表達不清晰而導(dǎo)致的誤解和錯誤,使其能夠準確、可靠地執(zhí)行特定任務(wù)。
下面我們進入這個文本例子。在很多需要文案的場景,比如電商頁面、小紅書種草文案、論壇帖子等等,如果你直接讓AI去寫作,可能效果并不好,但通過這“五步”,能令輸出質(zhì)量提升、結(jié)果更穩(wěn)定。
第一步,把你覺得不錯的文案“喂”給AI,并且要明確讓AI學(xué)習(xí)這個文案,我們需要明確對AI說:“接下來我會發(fā)給你一個文案學(xué)習(xí),目的是建立爆款文案模型,你學(xué)習(xí)完,只需要回復(fù):已學(xué)習(xí)。文案如下:”
第二步,在AI回復(fù)了“已學(xué)習(xí)”后,我們要開始讓AI來給這個文案的文筆文風(fēng)建立模型。
第三步,一般來說AI這時候總結(jié)得并不好,我們需要讓AI更進一步地學(xué)習(xí)并更改自己的答案,這時候我們可以給AI一個框架。當(dāng)然這一步也可以直接融合在上一步里面。
第四步,我們讓AI來給每個部分分配權(quán)重。
第五步,我們給這個模板命名,讓AI能快速調(diào)取。
下面舉幾個應(yīng)用例子:
對于很多相對格式化,不要求較高創(chuàng)造力的文案領(lǐng)域,AI的內(nèi)容已經(jīng)達到了基準線之上,剩下的還可以通過人工修改。
你也可以繼續(xù)對這個模型進行微調(diào),比如要求AI寫得更富創(chuàng)造力,或是“喂”給AI更符合你需要的初始文案,可以依據(jù)這個訓(xùn)練思路、框架來訓(xùn)練更適合你的文章模型。
最后,這個訓(xùn)練模型的鏈接如下,感興趣的朋友可以試試:
基于這種訓(xùn)練思路,網(wǎng)友們還開發(fā)出很多有意思的場景,可以一試:
02 一個訂餐機器人模型(通過代碼實現(xiàn))
如何利用構(gòu)建一個訂餐機器人?我們可以通過 來實現(xiàn)。
這個訂餐機器人案例來自.ai的課程。.ai 創(chuàng)始人吳恩達與開發(fā)者Iza 聯(lián)手,推出了一門面向開發(fā)者的 課程。吳恩達是AI領(lǐng)域的明星教授,是斯坦福大學(xué)計算機科學(xué)系和電氣工程系的客座教授,曾任斯坦福人工智能實驗室主任。
是一個聊天對話的界面,我們可以由此構(gòu)建一個自定義功能的聊天機器人,比如給餐廳的AI客戶服務(wù)代理,或是AI點餐員等角色。
但由于這是商用場景,我們需要的回復(fù)精確而穩(wěn)定,這時候用計算機語言比純文本更為合適,所以我們需要先部署 包。
對于這種自定義聊天機器人模型,本質(zhì)上我們是要訓(xùn)練一個這樣的機器人:它能夠?qū)⒁幌盗邢⒆鳛檩斎耄缓蟀涯P蜕傻南⑤敵觥T谶@個例子中,用的是GPT-3.5,3.5在現(xiàn)階段可能更適合商用,因為GPT-4太貴了。
這個訂餐機器人的應(yīng)用場景是一家披薩店,所實現(xiàn)的功能是:首先問候顧客,然后收集訂單,并詢問是否需要取貨或送貨。如果是送貨,訂餐機器人可以詢問地址。最后,訂餐機器人會收取支付款項。
在實際的對話中,訂餐機器人會根據(jù)用戶的輸入和系統(tǒng)的指示來生成回應(yīng):
用戶說:“嗨,我想要訂一份比薩餅”
訂餐機器人會回應(yīng):“很好,您想訂哪種比薩餅?我們有意大利辣腸、奶酪和茄子比薩餅,它們的價格是多少”
在整個對話過程中,訂餐機器人會根據(jù)用戶的輸入和系統(tǒng)的指示來生成回應(yīng),從而使對話更加自然流暢,同時又避免在對話中插入明顯的提示詞信息。
首先,我們定義“幫助函數(shù)”,它會收集用戶消息,以避免我們手動輸入。這個函數(shù)將從用戶界面中收集提示,并將它們附加到一個稱為上下文()的列表中,然后每次都會使用該上下文來調(diào)用模型chatgpt提示詞網(wǎng)站,這里面包括了系統(tǒng)信息,也包括了菜單。
的反饋和用戶的反饋都會添加到中,這個會變得越來越長。這樣一來,就擁有了它所需的所有信息,來決定下一步該怎么做。以下是所部署的提示詞:“你是訂餐機器人,一個收集比薩餅店訂單的自動服務(wù)。你首先問候顧客,然后收集訂單,并詢問是否要取貨或送貨。”(詳細見下圖)
如果實際運行起來,將是:用戶說“嗨,我想要訂一份比薩餅”。然后訂餐機器人說:“很好,您想訂哪種比薩餅?我們有意大利辣腸、奶酪和茄子比薩餅,它們的價格是多少”
由于提示詞里面已經(jīng)包含了價格,這里會直接列出。用戶也許會回復(fù):我喜歡一份中號的茄子比薩餅。于是用戶和訂餐機器人可以一直繼續(xù)這個對話,包括是否要送貨、需不需要額外的配料、再次確認是否還需要其他東西(比如水?或是薯條?)……
最后,我們要求訂餐機器人創(chuàng)建一個基于對話的、可發(fā)送到訂單系統(tǒng)的摘要:
在最后這個輸出環(huán)節(jié)chatgpt提示詞網(wǎng)站,輸出的內(nèi)容包括:產(chǎn)品大類(披薩、配料、飲品、小吃……)、類型、大小、價格、是否需要配送及地址。由于我們希望結(jié)果是完全穩(wěn)定、可預(yù)測、不需要任何創(chuàng)意性的,所以我們會把設(shè)為0。最終可以直接把這樣的結(jié)果,提交給訂單系統(tǒng)。
03 一些關(guān)鍵原則與技巧
最后,我們來總結(jié)一下兩個關(guān)鍵原則,以及大語言模型目前的局限性,你需要知道大語言模型能力目前的下限在哪里,更有助于尋找具體的應(yīng)用場景。
兩大原則是:編寫清晰具體的指令、給模型充足的思考時間。
原則一:編寫清晰具體的指令。
這個原則強調(diào)了在使用等語言模型時,需要給出明確具體的指令,清晰不等于簡短,過于簡短的提示詞往往會讓模型陷入猜測。這個原則下有4個具體策略:
1)使用定界符清楚地限定輸入的不同部分。
定界符可以是反引號、引號等等,核心思想是要清晰地標識輸入的不同部分,有助于模型理解和處理輸出。定界符就是為了讓模型明確知道,這是一個獨立的部分,它能夠有效避免“提示注入”。所謂提示注入,是指在一些用戶新添加輸入的情況下,可能誤產(chǎn)生一些沖突的指令,導(dǎo)致結(jié)果不對。
2)要求結(jié)構(gòu)化輸出:為了使解析模型輸出更容易,可以請求結(jié)構(gòu)化輸出。
在提示詞中,你可以明確:生成三個虛構(gòu)的圖書標題,以及它們的作者和流派,使用以下格式提供:書籍ID、標題、作者和流派。
3)要求模型檢查是否滿足條件。
如果任務(wù)有假設(shè)條件并且這些條件不一定被滿足,那么可以告訴模型首先檢查這些假設(shè)條件,如果不滿足則指示出來,并停止任務(wù)直接反饋,以避免意外的錯誤結(jié)果。
比如在以下例子中:我們將復(fù)制一段描述如何泡茶的段落,然后再復(fù)制提示詞,提示詞是如果文本包含一系列指示,請將這些指示重寫為以下格式,然后寫出步驟說明。如果文本不包含一系列指示,則只需寫下“未提供步驟”。
4)小批量提示:在要求模型完成實際任務(wù)之前提供執(zhí)行任務(wù)的成功示例。
這個策略簡單而重要,就是我們在提示詞中,可以包含一個正確的示例。比如我們要求模型用風(fēng)格一致的口吻來回答,輸入的任務(wù)是“以一致的風(fēng)格回答問題”,然后提供了一個孩子和祖父之間的對話示例,孩子說:“教我什么是耐心”,祖父用類比的方式回答。
現(xiàn)在我們要求模型用一致的語氣來回答,當(dāng)下一個問題是:“教我什么是韌性”。由于模型已經(jīng)有了這個少量示例,它會用類似的語氣回答下一個任務(wù),它會回答:“韌性就像能被風(fēng)吹彎,卻從不折斷的樹”。
原則二:給模型充足的思考時間。
如果模型因急于得出錯誤的結(jié)論,而出現(xiàn)了推理錯誤,應(yīng)該嘗試重新構(gòu)造提示詞,核心思想是要求模型在提供最終答案之前,先進行一系列相關(guān)推理。這個原則下有2個策略:
1)指定完成任務(wù)的步驟:
明確說明完成任務(wù)所需的步驟,可以幫助模型更好地理解任務(wù)并產(chǎn)生更準確的輸出。
2)指導(dǎo)模型(在急于得出結(jié)論之前)制定自己的解決方案:
明確指導(dǎo)模型在做出結(jié)論之前,自行推理出解決方案,可以幫助模型更準確地完成任務(wù)。
附加討論:如何看待模型的局限性?
目前大語言模型商用最大的問題是“幻覺”。因為在其訓(xùn)練過程中,大模型被暴露于大量知識之中,但它并沒有完美地記憶所見到的信息,也并不清楚知識邊界在哪里。這意味著大模型可能會嘗試回答所有問題,有時會虛構(gòu)出來一些聽起來很有道理,但實際上不正確的東西。
一種減少幻覺的策略是,首先要求大語言模型從文本中,找到所有相關(guān)的部分,然后要求它使用那些引文來回答問題,并將答案追溯回源文件,這種策略可以減少幻覺的發(fā)生。
今天這篇文章比較實操,我們通過2個案例(一個純文本、一個通過編程),來解釋了 (提示工程)一些更深入的應(yīng)用。
像GPT-3.5、GPT-4這樣的大語言模型,它什么都懂,但恰恰也是因為太廣泛,而導(dǎo)致如果你不給它提示的話,你得到的回答經(jīng)常是車轱轆話。
這時候(提示)的重要性不言而喻,并且不僅僅是一個詞,或是一個簡單的句子,如果你想實現(xiàn)更復(fù)雜的功能,也同樣需要更復(fù)雜的提示詞。
也需要大家開腦洞,想出更新奇或是更適合自己的玩法,它的“獨家性”也很強。比如之前獲獎的《太空歌劇院》,作者號稱自己花了80多個小時、900多次迭代才出來這幅作品chatgpt提示詞網(wǎng)站,至今也拒絕共享用了什么提示詞。
當(dāng)然,本身,可能只是一種階段性的需求,Sam 曾說:五年之后,可能不再需要提示工程師這個職位,因為AI會產(chǎn)生自我學(xué)習(xí)的能力。但不可否認的是,這個“階段性需求”,是真正助力AI切入商業(yè)各個環(huán)節(jié)的重要利器。
我們現(xiàn)在也不需要從零開始摸索,國內(nèi)外有很多不錯的社區(qū),大家都在交流提示詞使用心得,甚至列出了有哪些當(dāng)下熱門的提示詞,我們會在文末附錄中列出。
從創(chuàng)業(yè)/投資角度說,如今大家都在討論應(yīng)用層的機會到底在哪里,常去這些提示詞熱門網(wǎng)站看看,也許能從那些新發(fā)布的熱門提示詞中,找到一些應(yīng)用場景的創(chuàng)新靈感。看得再多,不如下場一試。
附錄:一些提示詞討論網(wǎng)站
1、 AI 社區(qū):
(一個海外熱門的提示詞網(wǎng)站,可以按熱度排序,覆蓋場景非常齊全。)
2、 on (r/):
(上的 版塊是一個非常活躍的社區(qū),用戶可以發(fā)布和回應(yīng)各種寫作提示詞。)
3、 列舉了100條最佳提示詞
(為您的工作流提供支持的100個最佳提示詞。)
4、 一個中文提示詞網(wǎng)站:
(可以按熱度排序,覆蓋的場景非常齊全,從寫作、編程到金融、醫(yī)療等等。)
5、 另一個中文提示詞網(wǎng)站:提示精靈
(小紅書文案排序最高,對提示詞有更直觀的展示。)
本文來自微信公眾號,作者:經(jīng)緯創(chuàng)投主頁君,36氪經(jīng)授權(quán)發(fā)布。
聲明:本站所有文章資源內(nèi)容,如無特殊說明或標注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。