Prompt實(shí)用技巧、應(yīng)用方向以及實(shí)踐感悟

0 評(píng)論 2897 瀏覽 20 收藏 17 分鐘

關(guān)于提示詞的寫法和技巧,其實(shí)已經(jīng)有很多方法和說明,但不同的場(chǎng)景采用的方法會(huì)不一樣。本文作者整理了吳恩達(dá)的Prompt課程里的提示詞技巧,特別適合互聯(lián)網(wǎng)人的工作,推薦各位學(xué)習(xí)。

前段時(shí)間花了一些時(shí)間研究了prompt,也上手了Coze平臺(tái)的bot搭建,寫這篇文章一方面想分享下一些prompt實(shí)用的技巧和應(yīng)用方向,另一方面聊聊透過prompt從另一個(gè)視角對(duì)大模型的理解。

還記得GPT4剛出來那會(huì)兒,我所在的團(tuán)隊(duì)領(lǐng)導(dǎo)們特別興奮,GPT4的智能水平要比3.5強(qiáng)很多,對(duì)上下文的理解和邏輯性都要好一些,那時(shí)候我們也做了一個(gè)聊天機(jī)器人的面向海外的應(yīng)用,很多人說prompt自然語言的編程會(huì)在未來取代傳統(tǒng)的編程方式,人人都是程序員的時(shí)代將要來臨,那時(shí)候面對(duì)一個(gè)新東西,一知半解,沒有自己的獨(dú)立思考,但真正沉下心來去理解被后的運(yùn)作機(jī)制以及自己上手體驗(yàn)后覺得好像不是那么回事兒。當(dāng)然一個(gè)更好的prompt會(huì)越接近你的理想答案,但能達(dá)到理想化的答案似乎還有些距離。

下面寫給大家分享一些實(shí)用的prompt的技巧,技巧的來源主要來源于吳恩達(dá)的prompt課程。

一、Prompt的實(shí)用技巧

1. 運(yùn)用分隔符增強(qiáng)可讀性

如果我們想讓模型幫助我們用一句話總結(jié)段落的內(nèi)容, 我們可以將段落的內(nèi)容用一些分隔符包起來,這樣模型就能更好的識(shí)別哪些是需要處理的內(nèi)容,哪些是要求。

案例展示:

“`
發(fā)現(xiàn)科技與設(shè)計(jì)的完美結(jié)合,iPhone為您帶來前所未有的智能手機(jī)體驗(yàn)。配備超視網(wǎng)膜XDR顯示屏,呈現(xiàn)驚艷的色彩和細(xì)節(jié),無論是瀏覽照片還是觀看視頻,都能感受到前所未有的視覺震撼。搭載最新的A17仿生芯片,性能卓越,確保多任務(wù)處理流暢自如,讓您的每一次操作都快如閃電。

“`

請(qǐng)幫我把”””內(nèi)的內(nèi)容用一句話概括出來。

所運(yùn)用的分隔符可以有多種形式,包括像:

  • 三引號(hào):“”“
  • 三重反引號(hào):“`
  • 三連字符:—
  • 尖括號(hào):<>
  • XML標(biāo)簽:<tag></tag>

2. 要求結(jié)構(gòu)化輸出

結(jié)構(gòu)化輸出的目的是提升模型結(jié)果的可用性,比如通過總結(jié)段落的內(nèi)容,讓模型輸出JSON格式的結(jié)果,那這個(gè)結(jié)果就可以直接拿來和數(shù)據(jù)庫進(jìn)行交互了,或者把輸出的內(nèi)容轉(zhuǎn)換成表格的形式等等。

案例展示:

這里的格式不單單僅支持JSON,像XML ,HTML都可以,甚至你可以給模型一些格式要求,模型按照你定義的格式進(jìn)行內(nèi)容重寫。

3. 讓大模型檢查條件是否滿足

在寫讓大模型執(zhí)行任務(wù)的prompt時(shí),可以先讓模型檢查下執(zhí)行任務(wù)的前置條件是否滿足,如果不滿足需要及時(shí)指出,否則會(huì)差生條件不滿足的情況下仍執(zhí)行任務(wù)的錯(cuò)誤行為。

案例展示:

4. 少量樣本提示(Few-shot prompting)

如果你是一個(gè)產(chǎn)品經(jīng)理,你經(jīng)常會(huì)和設(shè)計(jì)師溝通,你內(nèi)心有自己的想法,這個(gè)功能呈現(xiàn)的交互和樣式大概是什么風(fēng)格,很多時(shí)候你和設(shè)計(jì)師按照你的想法描述了很多很具體,但往往比不上直接丟給設(shè)計(jì)師你想要的案例參照來的更明確,大語言模型也一樣,你需要給他一些Few-shot。

案例描述:

5. 將一個(gè)復(fù)雜的任務(wù)進(jìn)行拆解,按步驟給到模型(給模型時(shí)間思考)

試想下如果老板給你布置一個(gè)短時(shí)間內(nèi)無法完成且需要自拆解梳理的任務(wù),但他需要你當(dāng)天就提交一份解決方案,你能把這個(gè)事情在這么短的時(shí)間內(nèi)做好嗎?很難吧,這里模型也是一樣,你需要將復(fù)雜的任務(wù)按步驟拆解后讓他執(zhí)行。

案例描述:

6. 在讓模型做判斷前,讓模型先思考自己這么解決(給模型時(shí)間思考)

這也是圍繞“給模型思考時(shí)間”思想給出的技巧,這里還是類比人類,人在去判斷一個(gè)數(shù)學(xué)提的答案對(duì)還是錯(cuò)是需要時(shí)間的,大模型也是這樣,如果直接讓模型判斷,就會(huì)出現(xiàn)幻覺,本來是錯(cuò)的模型會(huì)說對(duì),或者會(huì)給你一個(gè)模棱兩可的答案。

這里案例我找了好多數(shù)學(xué)題的例子似乎沒有難倒過GPT的,但在吳恩達(dá)列舉的例子里出現(xiàn)過這種情況,可能是模型的能力日益增強(qiáng)的緣故,大家如果有興趣可以嘗試給大模型一些題目案例用兩種prompt方式,一種讓模型先思考再解決,一種是直接給出答案,看是否有差別。

7. 避免模型出現(xiàn)幻覺

某些時(shí)候你給模型一個(gè)不存在不符合事實(shí)的信息,他會(huì)很認(rèn)真的提供一些更詳細(xì)的解釋或描述,這就是所謂的模型幻覺。

吳恩達(dá)在他的prompt課程中為了一定程度上規(guī)避這些問題,他給出了一些解決方案:

1)首先讓模型找到相關(guān)信息;

2)然后根據(jù)相關(guān)信息回答問題;

3)最后你可以讓模型回答的內(nèi)容中體現(xiàn)出用了哪些相關(guān)信息。

案例描述:

8. 根據(jù)模型回答的結(jié)果迭代prompt

這就像做一個(gè)產(chǎn)品一樣,一個(gè)好的產(chǎn)品需要通過用戶數(shù)據(jù)的反饋不斷的迭代才能形成,模型首次回答的內(nèi)容可能和你的期望差的比較遠(yuǎn),那你就可以迭代你的prompt,比如你在首次prompt獲得的回答字?jǐn)?shù)過多,那你就可以在prompt中增加字?jǐn)?shù)限制的描述;還比如希望在prompt最后給出的結(jié)果末尾加上一些額外信息,那可以吧這些要求補(bǔ)充在prompt內(nèi)。

案例描述:

以上就是吳恩達(dá)的prompt課程的主要內(nèi)容,除此之外他還在課程中提到了幾個(gè)大語言模型的應(yīng)用方向,這里也給大家介紹一下:

二、大模型應(yīng)用方向

1. 總結(jié)類應(yīng)用

現(xiàn)在很多的一些O2O的APP中會(huì)有評(píng)論模塊,有的用戶評(píng)論的內(nèi)容比較長,不利于信息的快速獲取,這里就可以利用LLM的總結(jié)能力,再比如我們要快速了解一本書或一個(gè)PPT內(nèi)的核心要點(diǎn),也可以通過大模型實(shí)現(xiàn),相信這塊兒的應(yīng)用大家日常也都見過或用過。

2. 文本預(yù)測(cè)類應(yīng)用

之前在看AI產(chǎn)品機(jī)會(huì)的時(shí)候,有一家做外呼推銷系統(tǒng)的公司在招聘的時(shí)候就有描述他們內(nèi)部在做一套圍繞用戶回答內(nèi)容通過大模型自動(dòng)進(jìn)行標(biāo)簽分類的系統(tǒng), 具體場(chǎng)景是他們希望能通過用戶在收到推銷電話后的回復(fù)內(nèi)容來推測(cè)推銷失敗的原因,而這個(gè)原因他們預(yù)先定義好標(biāo)簽,例如:產(chǎn)品本身原因、推銷不專業(yè)、用戶不接受電話推銷的方式等,那大語言模型這里的作用就是根據(jù)用戶回復(fù)的內(nèi)容來定義原因。這個(gè)案例就很好的運(yùn)用了文本預(yù)測(cè)這個(gè)功能。

吳恩達(dá)在課程中也列舉了兩個(gè)很有價(jià)值的例子:

1)將評(píng)論的內(nèi)容通過prompt格式化輸出json格式的數(shù)據(jù)能做有效的數(shù)據(jù)存儲(chǔ)和使用;

2)通過大模型的推斷能力為一篇文章生成不同的標(biāo)簽,標(biāo)簽的形式以json形式輸出并存儲(chǔ)。

這里如果能把預(yù)測(cè)的內(nèi)容形成JOSN格式標(biāo)簽化直接和數(shù)據(jù)庫交互,這一點(diǎn)就很有想象空間,比如我們要定某天去某地的機(jī)票,那模型就可以直接把定機(jī)票所需的字段從對(duì)話中總結(jié)預(yù)測(cè)出來,在通過格式化的形式傳給訂票系統(tǒng), 訂票系統(tǒng)通過就可以格局字段顯示相關(guān)的航班信息供用戶選擇了。

再比如點(diǎn)外賣,玲瑯滿目的外賣,我有時(shí)候就很難去選擇,同樣通過大模型的預(yù)測(cè)和總結(jié)能力從對(duì)話中總結(jié)預(yù)測(cè)出來從而推薦一些匹配度比較高的外賣商家出來。這么看來有沒有可能未來的推薦模式會(huì)被模型給革命掉!

3. 文本轉(zhuǎn)換類應(yīng)用

上面將的將對(duì)話內(nèi)容格式化也是文本轉(zhuǎn)化的方式,格式化成JSON或HTML等格式,關(guān)于HTML格式,這里似乎又是一個(gè)能有一些創(chuàng)新機(jī)會(huì)的點(diǎn),最早的建站需要code,到后來有一些低代碼平臺(tái)實(shí)現(xiàn)拖拉拽的形式,到大模型這里,可能提供一些文案就能幫你生成,這么一來用戶自己建站的要求就越來越低了,人人都可輕松建站。

除了這些,轉(zhuǎn)換類應(yīng)用常見的還有翻譯軟件,文本校驗(yàn)軟件,大模型目前完全有能力去檢查出文本中的錯(cuò)別字或者語法錯(cuò)誤,以前為了實(shí)現(xiàn)這個(gè)能力需要花精力去訓(xùn)練小模型,現(xiàn)在通用的大模型就能搞定了。針對(duì)這個(gè)場(chǎng)景,我個(gè)人在創(chuàng)作一些文章時(shí),經(jīng)常會(huì)出現(xiàn)錯(cuò)別字,公眾號(hào)編輯器里有查錯(cuò)字的功能,但其他好多編輯器是沒有的,這就使得我需要花時(shí)間去review我自己寫的內(nèi)容,如果把它做成瀏覽器插件的形式是不是就能覆蓋大多數(shù)平臺(tái)了呢?

最后還有一類是語氣轉(zhuǎn)換,比如在郵件營銷場(chǎng)景下,某些時(shí)候我希望發(fā)送郵件內(nèi)容的語氣篇商務(wù)正式,某些時(shí)候體現(xiàn)出友好的,那我就可以提要求讓模型自動(dòng)轉(zhuǎn)化郵件語氣,這個(gè)語氣轉(zhuǎn)換功能幾乎現(xiàn)在大部分主流的郵件服務(wù)商都在用。

4. 擴(kuò)展類應(yīng)用

針對(duì)這個(gè)功能場(chǎng)景,我之前在做郵件類的AI功能的時(shí)候也有涉及過,給一些郵件內(nèi)容的要點(diǎn),把它擴(kuò)寫成一篇完整的郵件內(nèi)容, 簡單理解就是通過將一個(gè)短文本信息通過大模型擴(kuò)寫成一個(gè)長文本信息,open AI在針對(duì)這個(gè)場(chǎng)景推出了一個(gè)參數(shù)叫:Temperature,這個(gè)值可以調(diào)整擴(kuò)寫內(nèi)容的精確度,取值范圍在0~1 ,趨近于0表示模型給的內(nèi)容更精準(zhǔn),而趨近于1表示模型給的內(nèi)容更有創(chuàng)造性,根據(jù)不同的需求給這個(gè)參數(shù)賦值。

三、Coze Bot prompt實(shí)踐分享

端午節(jié)前,我在Coze平臺(tái)上試圖做一個(gè)關(guān)于節(jié)日海報(bào)生成的Bot,做這個(gè)應(yīng)用也是因?yàn)榭吹搅薈oze新上了圖片流的功能模塊且正值端午前夕,就想著能不能做一個(gè)自動(dòng)生成端午節(jié)海報(bào)的Bot。

應(yīng)用的實(shí)現(xiàn)邏輯大概是這樣的,需要模型按照prompt編寫的執(zhí)行順序從用戶那里獲取幾個(gè)信息:節(jié)日名、公司對(duì)外二維碼(公眾號(hào)二維碼、企微碼)、公司LOGO、企業(yè)聯(lián)系方式,獲取后將這些內(nèi)容賦值給起初定義好的變量,這里變量是在圖片流中會(huì)用到,圖片流中提前搭建好了如何將這些內(nèi)容組合到一起生成一個(gè)海報(bào)的方法。

就這一套功能,我大概花了3天左右的時(shí)間,最后的結(jié)果是勉強(qiáng)能生成符合企業(yè)節(jié)日宣傳需求的海報(bào),當(dāng)然樣式和canvas、高定設(shè)計(jì)這種現(xiàn)成的模版沒法比。

成功率大概在10%左右,成功率低的原因是模型有時(shí)候會(huì)不按照你設(shè)置的步驟執(zhí)行,比如這個(gè)Bot需要在用戶那里獲取依次獲取四個(gè)信息,有時(shí)候模型會(huì)只獲取兩個(gè)就執(zhí)行工作流了,有時(shí)候跳步驟執(zhí)行,有時(shí)候干脆不執(zhí)行就回答一些沒用的廢話,我之前想過如果把成功率提升到百分之70或以上或許就有一定的商業(yè)價(jià)值,但似乎很困難。

我并不清楚是否有更好的prompt的方式能將其成功率提升,但從目前來看模型還沒有達(dá)到按照prompt約束的步驟能穩(wěn)定執(zhí)行的地步,甚至當(dāng)步驟過多時(shí)穩(wěn)定執(zhí)行的成功率還很低很低,這或許需要大模型技術(shù)后續(xù)的升級(jí)和優(yōu)化 ,也需要一些工程化產(chǎn)品化的能力將其解決,有興趣的同學(xué)我們可以一起探討。

我一直覺得模型最大的能力在于交互上的革新,將來有一天我們點(diǎn)外賣、訂機(jī)票等操作可能不需要傳統(tǒng)的人機(jī)交互的形式,取而代之的是語音交互,說可比對(duì)著屏幕打字敲擊方便多了。

本文由 @產(chǎn)品蕭書 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!