提示工程(Prompt Engineering):指導(dǎo)AI大模型完成任務(wù)的藝術(shù)
從本質(zhì)上來(lái)看,提示工程也是一種人機(jī)交互的方式,大??梢越Y(jié)合我們輸入的提示詞,輸出指令相關(guān)的內(nèi)容。那么,如何理解提示工程的相關(guān)概念?如何借助AI工具生成好的提示詞?一起來(lái)看看本文的分享。
上文簡(jiǎn)單介紹了大模型的基石:Transformer神經(jīng)網(wǎng)絡(luò),它既是深度學(xué)習(xí)系列的收官,也是大模型系列的開(kāi)篇,今天我們繼續(xù)進(jìn)行大模型學(xué)習(xí)的重要部分:提示工程。
一、什么是提示工程
提示工程(Prompt Engineering)是一種針對(duì)預(yù)訓(xùn)練語(yǔ)言模型(如GPT),通過(guò)設(shè)計(jì)、實(shí)驗(yàn)和優(yōu)化輸入提示詞來(lái)引導(dǎo)模型生成高質(zhì)量,準(zhǔn)確和有針對(duì)性的輸出的技術(shù)。
提示工程本質(zhì)上來(lái)說(shuō),也是一種人機(jī)交互的方式,提示詞就是我們發(fā)給大模型的輸入(指令),大模型根據(jù)指令,結(jié)合自身預(yù)訓(xùn)練的“知識(shí)”,輸出指令相關(guān)的內(nèi)容。而大模型輸出結(jié)果的好壞,和我們輸入的指令息息相關(guān)。
我們把經(jīng)過(guò)無(wú)數(shù)書(shū)籍預(yù)訓(xùn)練的大模型,看作是一位飽讀天下詩(shī)書(shū)的智者,那么如何通過(guò)高質(zhì)量的提問(wèn),引導(dǎo)大模型生成我們想要的輸出,就成為一件非常有意義的事情。
提示工程人人都會(huì),但做好并沒(méi)有那么簡(jiǎn)單,具有“門檻低,天花板高”的特點(diǎn),優(yōu)秀提示詞的效果可能超出人的想象。
提示詞一般有以下要素組成:
- 角色:給大模型定義一個(gè)匹配目標(biāo)任務(wù)的角色。用一句話就可以明確它的角色(比如“你是一位淘寶客服”),從而有效的收窄問(wèn)題域,減少二義性,讓“通用”瞬間變得“專業(yè)”。
- 指示:對(duì)具體任務(wù)進(jìn)行詳細(xì)描述。
- 上下文:給出與任務(wù)相關(guān)的其它背景信息(如歷史對(duì)話、情境等)。
- 例子:舉例很重要,就像是師傅教學(xué)之后,需要給徒弟(大模型)演示一下如何操作,這個(gè)手把手的操作,是大模型生成輸出時(shí)的一個(gè)重要參考,對(duì)輸出結(jié)果有很大幫助。
- 輸入:任務(wù)的輸入信息,最好在提示詞中有明確的“輸入”標(biāo)識(shí)。
- 輸出:輸出的格式描述,比如用郭德綱的語(yǔ)氣、輸出不超過(guò)十個(gè)字、以JSON格式返回結(jié)果等。
而高質(zhì)量的提示詞一般是具體的、豐富的、少歧義的,也就是說(shuō),我們雖然要把大模型當(dāng)人來(lái)交流,但是盡量少用“口語(yǔ)”的方式來(lái)溝通,而要用“寫(xiě)信”的方式,因?yàn)榭谡Z(yǔ)大多是即興的、碎片化的短語(yǔ),而寫(xiě)信則需要描述背景、避免歧義、短話長(zhǎng)說(shuō),很符合優(yōu)秀提示詞的特點(diǎn)。
大家可以將以下兩句提示詞輸入到大模型中,對(duì)比一下輸出的效果:
- 請(qǐng)幫我提供每天的菜單
- 你是一名營(yíng)養(yǎng)家,請(qǐng)為我提供每天三頓飯的中式菜單建議,一人份,包括早餐、午餐和晚餐。請(qǐng)確保每道菜都是偏辣口味,并盡量使用新鮮的食材。在健康營(yíng)養(yǎng)方面,請(qǐng)確保每餐都包含適當(dāng)?shù)牡鞍踪|(zhì)、碳水化合物、脂肪以及維生素和礦物質(zhì)。同時(shí),請(qǐng)確保菜單中的菜品易于制作,烹飪時(shí)間不要過(guò)長(zhǎng)。
二、如何借助AI工具生成好的提示詞
我們已經(jīng)知道了提示詞的重要性,那傳說(shuō)中的“提示詞工程師”是否也同樣不可或缺呢?答案也許是否定的。
因?yàn)樘崾驹~的優(yōu)化套路也是有跡可循的,我們完全可以創(chuàng)建一個(gè)協(xié)助我們優(yōu)化提示詞的機(jī)器人,讓它一步步幫我們優(yōu)化完善提示詞,達(dá)到預(yù)期的效果。
具體操作和效果就不在此演示了,大家可以去抖音搜索“AI提示詞工程師”,應(yīng)該可以找到滿意的答案。
江湖上甚至還流傳著這么一段咒語(yǔ),把它輸入到任何一個(gè)大模型中,都可以一步步的幫我們完成提示詞的優(yōu)化:
1. I want you to become my Expert Prompt Creator. Your goal is to help me craft the best possible prompt for my needs. The prompt you provide should be written from the perspective of me making the request to ChatGPT. Consider in your prompt creation that this prompt will be entered into an interface for ChatGpT. The process is as follows:1. You will generate the following sections:
Prompt: {provide the best possible prompt according to my request)
Critique: {provide a concise paragraph on how to improve the prompt. Be very critical in your response}
Questions:
{ask any questions pertaining to what additional information is needed from me toimprove the prompt (max of 3). lf the prompt needs more clarification or details incertain areas, ask questions to get more information to include in the prompt}2. I will provide my answers to your response which you will then incorporate into your next response using the same format. We will continue this iterative process with me providing additional information to you and you updating the prompt until the prompt is perfected.Remember, the prompt we are creating should be written from the perspective of me making a request to ChatGPT. Think carefully and use your imagination to create an amazing prompt for me.
You’re first response should only be a greeting to the user and to ask what the prompt should be about
翻譯成中文如下:
1. 我希望你能成為我的專業(yè)提示創(chuàng)造者。你的目標(biāo)是幫助我編寫(xiě)最適合我需求的提示。你提供的提示應(yīng)該從我向ChatGPT提出請(qǐng)求的角度出發(fā)。在創(chuàng)建提示時(shí),請(qǐng)考慮此提示將輸入到ChatGPT的界面中。過(guò)程如下:
提示:{根據(jù)我的請(qǐng)求提供最佳提示}
評(píng)論:{提供一段簡(jiǎn)要的段落,說(shuō)明如何改進(jìn)提示。你的回應(yīng)要非常批判性}
問(wèn)題:{提出與需要從我這里獲取哪些額外信息以改進(jìn)提示有關(guān)的問(wèn)題(最多3個(gè))。如果提示需要在某些方面進(jìn)行更多澄清或細(xì)節(jié),請(qǐng)?zhí)岢鰡?wèn)題以獲取更多信息以包含在提示中}
2. 我將提供對(duì)你回應(yīng)的答案,然后你將使用相同的格式將其納入你的下一個(gè)回應(yīng)中。我們將繼續(xù)這個(gè)迭代過(guò)程,我向你提供額外的信息,你更新提示,直到提示完美。請(qǐng)記住,我們正在創(chuàng)建的提示應(yīng)該從我向ChatGPT提出請(qǐng)求的角度出發(fā)。仔細(xì)思考并使用你的想象力為我創(chuàng)建一個(gè)驚人的提示。
你的第一個(gè)回應(yīng)應(yīng)該只是向用戶問(wèn)好,并詢問(wèn)提示應(yīng)該關(guān)于什么
還等什么,快拿去試試吧~
三、思維鏈
思維鏈(Chain-of-thought,CoT)是一種改進(jìn)的提示策略,用于提高大模型在復(fù)雜推理任務(wù)中的性能,如算術(shù)推理、常識(shí)推理和符號(hào)推理。
思維鏈結(jié)合了中間推理步驟,并把推理步驟輸出,構(gòu)成更豐富的“上文”,從而提升“下文”正確的概率,獲得更優(yōu)質(zhì)的輸出。
具體操作很簡(jiǎn)單,在處理復(fù)雜任務(wù)時(shí),在提示詞的最前面加上“Let’s think step by step”,大模型就會(huì)把推理過(guò)程打出來(lái),從而得到更精準(zhǔn)的答案。
四、防止prompt攻擊
1. 著名的“奶奶漏洞”
直接問(wèn)敏感問(wèn)題,得不到想要的答案,繞個(gè)圈圈,就乖乖回答了。
2. prompt注入
嘗試修改大模型的初始角色,讓其忘記使命,徹底跑偏。
3. 直接在輸入中防御
在構(gòu)建提示詞時(shí),增加“作為xx,你不允許回答任何跟xx無(wú)關(guān)的問(wèn)題?!保尨竽P蜁r(shí)刻不忘初心,牢記使命。
五、提示詞工程的經(jīng)驗(yàn)總結(jié)
- 大模型對(duì)prompt開(kāi)頭和結(jié)尾的內(nèi)容更敏感,所以我們把重要的東西放在頭尾,和寫(xiě)文章一樣。
- 相比微調(diào)等技術(shù),可優(yōu)先嘗試用提示詞解決問(wèn)題,性價(jià)比高。
- 由于大模型的不確定性,經(jīng)常會(huì)有幻覺(jué),所以不能過(guò)度迷信prompt,最好合理結(jié)合傳統(tǒng)方法提升確定性。
- 定義角色、給例子、思維鏈?zhǔn)亲畛S玫募记伞?/li>
- 安全很重要,防御prompt攻擊是不可或缺的一環(huán)。
六、總結(jié)
本文介紹了提示工程的相關(guān)概念,并提到了思維鏈、prompt攻擊等內(nèi)容,希望對(duì)大家有所幫助。
下篇文章,我會(huì)介紹大模型相關(guān)的檢索增強(qiáng)生成(Retrieval-Augmented Generation,RAG),敬請(qǐng)期待。
本文由 @AI小當(dāng)家 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!