偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

解讀提示工程(Prompt Engineering)

原創(chuàng)
人工智能
企業(yè)實(shí)施將是特定于領(lǐng)域的,需要約束,并具有一定程度的域外檢測。問題或請求的分解對于創(chuàng)建一個(gè)思維鏈推理過程非常重要。微調(diào)設(shè)置模型行為,而RAG為LLM創(chuàng)建了一個(gè)上下文參考,以便在推理過程中使用。數(shù)據(jù)管理將始終是LLM應(yīng)用程序的一部分。

提示工程(Prompt Engineering),也稱為上下文提示,是一種通過不更新模型的權(quán)重/參數(shù)來引導(dǎo)LLM行為朝著特定結(jié)果的方法。這是與AI有效交流所需結(jié)果的過程。提示工程可以用于各種任務(wù),從回答問題到算術(shù)推理乃至各種應(yīng)用領(lǐng)域,理解提示工程,能夠幫助我們了解LLM的限制和能力。

為了理解提示工程,先要澄清什么是Prompt。

1.什么是Prompt

Prompt提示是什么呢?

Prompt提示是模型接收以生成響應(yīng)或完成任務(wù)的初始文本輸入。我們給AI一組Prompt輸入,用于指導(dǎo)模型生成響應(yīng)以執(zhí)行任務(wù)。這個(gè)輸入可以是一個(gè)問題、一段描述、一組關(guān)鍵詞,或任何其他形式的文本,用于引導(dǎo)模型產(chǎn)生特定內(nèi)容的響應(yīng)。

例如,在chatGPT中,用戶通常使用 prompt 來與大語言模型進(jìn)行交互,請求回答問題、生成文本、完成任務(wù)等。模型會根據(jù)提供的 prompt 來生成一個(gè)與之相關(guān)的文本,盡量符合用戶的要求。

2. Prompt的分類

從不同的視角, 可以對Prompt 進(jìn)行不同的分類。在這里,嘗試根據(jù)可解釋性、交互方式和應(yīng)用領(lǐng)域三個(gè)方面對Prompt 進(jìn)行分類。

2.1 可解釋性分類:硬提示和軟提示

硬提示(hard prompt )是手工制作的、預(yù)定義的帶有離散輸入標(biāo)記的文本,或者文本模板。靜態(tài)提示可以合并到程序中用于編程、存儲和重用,基于大模型的應(yīng)用程序可以有多個(gè)提示模板供其使用。

盡管模板帶來了一定程度的靈活性,但是提示語仍然需要被設(shè)置得很好才行,換句話說,靜態(tài)提示一種硬編碼的提示。 

建立在LangChain 之上的基于大模型的 很多應(yīng)用程序,其提示模板在很大程度上是靜態(tài)的,它指示代理執(zhí)行哪些操作。一般來說,模板包括: 定義了可以訪問哪些工具,何時(shí)應(yīng)該調(diào)用這些工具,以及一般的用戶輸入。

軟提示(soft prompt )是在提示調(diào)優(yōu)過程中創(chuàng)建的。與hard prompt 不同,軟提示不能在文本中查看和編輯,包含一個(gè)嵌入或一串?dāng)?shù)字,代表從大模型中獲得知識。軟提示缺乏軟可解釋性。人工智能發(fā)現(xiàn)與特定任務(wù)相關(guān)的軟提示,但不能解釋為什么它。與深度學(xué)習(xí)模型本身一樣,軟提示也是不透明的。軟提示可以替代額外的訓(xùn)練數(shù)據(jù),一個(gè)好的語言分類器軟提示有幾百到幾千個(gè)額外的數(shù)據(jù)點(diǎn)。

提示微調(diào)包括了在使用 LLM 之前使用一個(gè)小的可訓(xùn)練模型。小模型用于對文本提示進(jìn)行編碼并生成特定于任務(wù)的虛擬令牌。這些虛擬令牌被預(yù)先追加到Prompt上并傳遞給 LLM。調(diào)優(yōu)過程完成后,這些虛擬令牌將存儲在一個(gè)查找表中,并在推斷期間使用,從而替換原來的小模型。當(dāng)提供上下文時(shí),LLM 的表現(xiàn)要好得多,而且提示微調(diào)是一種快速有效的方法,能夠以動(dòng)態(tài)地創(chuàng)建急需的上下文。

2.2 交互方式分類:在線提示和離線提示

"online" 和 "offline" 是一種方式來區(qū)分模型互動(dòng)中 prompt 的使用方式。這兩種分類表示了 prompt 在與大模型互動(dòng)的時(shí)間和方式上的不同。

在線提示(Online prompt) 是在與模型的實(shí)時(shí)互動(dòng)中提供的提示,通常用于即時(shí)的交互式應(yīng)用。這種提示在用戶與模型進(jìn)行實(shí)際對話時(shí)提供,用戶可以逐步輸入、編輯或更改提示,在在線聊天、語音助手、實(shí)時(shí)問題回答等應(yīng)用中常見。

離線提示(Offline prompt )是預(yù)先準(zhǔn)備好的提示,通常在用戶與模型的實(shí)際互動(dòng)之前創(chuàng)建。這種提示在沒有用戶互動(dòng)時(shí)預(yù)先設(shè)計(jì)和輸入,然后整批輸入模型進(jìn)行批量處理。在離線文本生成、文章寫作、大規(guī)模數(shù)據(jù)處理等應(yīng)用中常見。

對提示分類為 "online" 或 "offline" ,可幫助確定如何有效地使用提示,以滿足不同應(yīng)用的需求。在線提示通常用于需要實(shí)時(shí)交互和即時(shí)反饋的情況,而 離線提示則適用于需要大規(guī)模處理或預(yù)生成文本的情況。根據(jù)具體應(yīng)用和使用情境,您可以選擇適當(dāng)?shù)奶崾绢愋汀?/span>

2.3 應(yīng)用領(lǐng)域分類

用途分類可以幫助確定 prompt 的主要目標(biāo),以便更有效地使用它們。以下是一些常見的 prompt 類別:

Information Retrieval (信息檢索):這些 prompt 用于從模型中檢索特定信息,如回答問題、提供事實(shí)或解釋概念。用途包括問答、信息檢索、事實(shí)核實(shí)等。

Text Generation (文本生成):這些 prompt 用于指導(dǎo)模型生成文本,可能是文章、故事、評論等。用途包括創(chuàng)意寫作、內(nèi)容生成、自動(dòng)摘要等。

Translation (翻譯):這些 prompt 用于將文本從一種語言翻譯成另一種語言。用途包括機(jī)器翻譯應(yīng)用。

Sentiment Analysis (情感分析):這些 prompt 用于評估文本的情感傾向,如正面、負(fù)面或中性。用途包括社交媒體監(jiān)測、情感分析應(yīng)用。

Programming and Code Generation (編程和代碼生成):這些 prompt 用于生成計(jì)算機(jī)程序代碼或解決編程問題。用途包括編程輔助、自動(dòng)化代碼生成等。

Conversation (對話):這些 prompt 用于模擬對話或聊天,并回應(yīng)用戶提出的問題或評論。用途包括聊天機(jī)器人、虛擬助手等。

Task-Specific (特定任務(wù)):這些 prompt 針對特定應(yīng)用或任務(wù),如制定旅行計(jì)劃、編寫營銷文案、生成報(bào)告等。用途因任務(wù)而異。

Custom Applications (自定義應(yīng)用):這些 prompt 針對特定領(lǐng)域或自定義應(yīng)用,具體用途由用戶定義。用途根據(jù)用戶需求而定。

通過將 prompt 分類為不同的用途,可以更好地理解模型如何應(yīng)用于各種任務(wù)和情境。這有助于選擇合適的提示類型,并設(shè)計(jì)它們以滿足特定需求。

3. Prompt 的一般要素

在應(yīng)用Prompt的時(shí)候,我們需要理解一個(gè)Prompt 可能包含的6個(gè)要素:任務(wù),上下文,示例,角色,格式和語氣,而且這些要素是按重要性降序排列的。

3.1 任務(wù)

任務(wù)序列是由動(dòng)詞引導(dǎo)的,例如generate, drive, write, analyze等,而且需要明確任務(wù)目標(biāo)。例如:

圖片圖片

3.2 上下文

背景上下文極具挑戰(zhàn)性, 一般要描述什么是用戶的背景信息,成功的結(jié)果希望是什么樣子,以及他們處于怎樣的環(huán)境中,例如:

圖片圖片

3.3 示例

基本上,對所有主要語言模型進(jìn)行的研究表明,在提示中包含例子都將產(chǎn)生更高質(zhì)量的答案。 例如:

圖片圖片

如果想為團(tuán)隊(duì)內(nèi)的某個(gè)職位撰寫一份JD,prompt可以是首先向ChatGPT提供情景描述(context),然后再根據(jù)已經(jīng)準(zhǔn)備好的描述提供一個(gè)參考案例(example)。

3.4 角色

這是你希望人工智能所扮演的角色。想象一下你有一個(gè)問題,想咨詢專家來解決這些疑問。例如,如果你在鍛煉時(shí)受傷,你會去找一位有康復(fù)治療師。如果你正在找工作,你會向招聘人員尋求建議。例如:

圖片圖片

3.5 格式

想象一下實(shí)現(xiàn)的目標(biāo),可以是個(gè)人或團(tuán)體的目標(biāo),比如找到工作、成為一位優(yōu)秀的演講者等。所有這些都是零散的想法,但借助人工智能的幫助,可以將它們整理成一個(gè)特定的格式,比如一個(gè)表格。我們也可以希望得到電子郵件、要點(diǎn)、代碼塊等格式。這些格式對我們的工作也很有用,例如段落和標(biāo)記。

看一個(gè)電子郵件示例,給一個(gè)上下文、一個(gè)任務(wù),并要求AI使用標(biāo)題格式。

圖片圖片

3.6 語氣

如果正確衡量要使用的音調(diào)類型,“語氣”者一個(gè)元素就很容易理解。

圖片圖片

在這6個(gè)要素中,任務(wù)是必須的,上下文和示例非常重要,而且最好也要有角色、格式和語氣。下面shi一個(gè)實(shí)際示例,需要在電子郵件中傳達(dá)包含相關(guān)和有影響力信息的內(nèi)容。

圖片圖片

那么,Prompt 如何在LLM起作用的呢?它個(gè)工作原理又是什么呢?

4 Prompt 的工作原理

在試圖理解Prompt 的工作原理之前, 需要理解大模型是如何生成文本的。簡單起見,可以把大模型的文本生成理解為目標(biāo)文本的補(bǔ)全, 在理解了LLM 文本生成的工作原理之后,就可能對Prompt 有一個(gè)相對清楚的理解。

例如,假設(shè)想讓“Paris is the city…”這句話繼續(xù)下去。編碼器使用Bloom-560M模型發(fā)送我們擁有的所有token的logits,這些logits可以使用softmax函數(shù)轉(zhuǎn)換為選擇生成token的概率。

圖片圖片

如果查看top 5個(gè)輸出token,它們都是有意義的。我們可以生成以下看起來合法的短語:

  • Paris is the city of love.
  • Paris is the city that never sleeps.
  • Paris is the city where art and culture flourish.
  • Paris is the city with iconic landmarks.
  • Paris is the city in which history has a unique charm.

然后, 有不同的策略來選擇token。

4.1 greedy sampling

簡單來說,貪婪采樣的模型在每一步都選擇它認(rèn)為最有可能的詞語——它不考慮其他可能性或探索不同的選擇。模型選擇概率最高的詞語,并基于選擇的詞語繼續(xù)生成文本。

圖片圖片

使用貪婪策略是計(jì)算效率高且直接的方法,但也會帶來重復(fù)或過于確定性的輸出。由于模型在每一步中只考慮最可能的標(biāo)記,可能無法捕捉到上下文和語言的全部多樣性,也不能產(chǎn)生最富創(chuàng)造力的回答。模型的這種目光短淺的特點(diǎn)僅僅關(guān)注每一步中最可能的標(biāo)記,而忽視了對整個(gè)序列的整體影響。

示例中生成的輸出可能是:Paris is the city of the future. The

4.2 Beam Search

beam搜索是文本生成中使用的另一個(gè)策略。在beam搜索中,模型假設(shè)一組最有可能的前“k”個(gè)token,而不僅僅考慮每個(gè)步驟中最有可能的token。這組k個(gè)token被稱為“beam”。

圖片圖片

模型通過為每個(gè)token生成可能的序列,并通過擴(kuò)展每個(gè)beam在文本生成的每個(gè)步驟中跟蹤它們的概率來生成可能的序列。這個(gè)過程會一直持續(xù)下去,直到達(dá)到生成文本的所需長度或者每個(gè)beam遇到一個(gè)“終止”標(biāo)記的時(shí)候。模型會從所有beam中選擇具有最高整體概率的序列作為最終輸出。從算法的角度來看,創(chuàng)建beam就是擴(kuò)展一個(gè)k叉樹。在創(chuàng)建beam之后,選擇具有最高整體概率的分支作為最終輸出。

示例中生成的輸出可能是:Paris is the city of history and culture.

4.3 probability sampling

簡單來說就是通過選擇一個(gè)隨機(jī)值,并將其映射到所選的詞匯來選擇下一個(gè)詞。可以將其想象為旋轉(zhuǎn)輪盤,每個(gè)詞匯的區(qū)域由其概率決定。概率越高,選中該詞的機(jī)會越大。這是一個(gè)相對簡單的計(jì)算解決方案,由于相對較高的隨機(jī)性,句子(或詞語序列)可能每次都會不同。

圖片圖片

4.4 ramdom sampling with temperature

一般地,使用softmax函數(shù)將logit轉(zhuǎn)換為概率。在這里,為隨機(jī)采樣引入了溫度——一種影響文本生成隨機(jī)性的超參數(shù)。比較一下激活函數(shù),可以更好地理解溫度如何影響概率計(jì)算。

圖片圖片

在引入溫度之后,與典型的softmax不同之處在于分母除以了溫度T。溫度越高(趨向1)輸出結(jié)果會更加多樣化,而溫度越低(趨向0),輸出結(jié)果則更加集中并更具確定性。當(dāng)T = 1的時(shí)候,演變?yōu)樽畛跏褂玫膕oftmax函數(shù)。

4.5 Top-k sampling

雖然可以根據(jù)溫度來調(diào)整概率,另一個(gè)改進(jìn)是使用前k個(gè)token而不是全部token。這將增強(qiáng)文本生成的穩(wěn)定性,又不會太大程度上降低創(chuàng)造力?,F(xiàn)在只對前k個(gè)token進(jìn)行溫度下的隨機(jī)抽樣。唯一可能的問題可能是選擇數(shù)字k,以下是如何改進(jìn)它。

圖片圖片

4.6 Top-P sampling

top-p采樣不是指定一個(gè)固定的“k”令牌數(shù)量,而是使用一個(gè)概率閾值“p”。該閾值代表了希望在采樣中包括的累積概率。模型在每個(gè)步驟中計(jì)算所有可能令牌的概率,然后按照降序的方式對它們進(jìn)行排序。

圖片圖片

該模型將繼續(xù)添加token到生成的文本中,直到它們的概率之和超過指定的閾值。top-p采樣的優(yōu)勢在于它允許根據(jù)上下文進(jìn)行更動(dòng)態(tài)和自適應(yīng)的標(biāo)記選擇。每步選擇的標(biāo)記數(shù)量可以根據(jù)該上下文中token的概率而變化,這可以產(chǎn)生更多樣化和更高質(zhì)量的輸出。

4.7 Prompt 的可能工作機(jī)制

在預(yù)訓(xùn)練語言模型中,解碼策略對于文本生成非常重要。有多種方法來定義概率,又有多種方法來使用這些概率。溫度控制了解碼過程中token選擇的隨機(jī)性。較高的溫度增強(qiáng)了創(chuàng)造力,而較低的溫度則關(guān)注連貫性和結(jié)構(gòu)。雖然創(chuàng)造力可以帶來有趣的語言體驗(yàn),但適度的穩(wěn)定性可以確保生成的文本的優(yōu)雅。

那么,Prompt 的本質(zhì)大概應(yīng)該是語義特征的顯式表達(dá), Prompt 的工作機(jī)制很可能只是影響大模型所選擇生成文本token 的概率。由于大模型在很大程度上是一個(gè)黑盒子,其涌現(xiàn)特性具有難解釋性,而海量的數(shù)據(jù)關(guān)系很難抽象出確定性的特征,只能是概率性結(jié)果。另一方面,用戶的需求千變?nèi)f化,并且對于需求的表達(dá)更是極具多樣性。因此, Prompt 很可能在某些限定的領(lǐng)域才存在一些通用的表達(dá)方式。

5. 什么是提示工程:Prompt Engingering

提示工程(Prompt Engingering),也被稱為在上下文中提示,是指如何與 LLM 通信的方法,以引導(dǎo)其行為為期望的結(jié)果,而無需更新模型權(quán)重。提示工程關(guān)注提示詞的開發(fā)和優(yōu)化,幫助用戶將大模型用于各場景和研究領(lǐng)域。這是一門經(jīng)驗(yàn)科學(xué),Prompt Engingering的效果在不同模型之間可能有很大差異,因此需要大量的試驗(yàn)和啟發(fā)。

因此,提示工程旨在獲取這些提示并幫助模型在其輸出中實(shí)現(xiàn)高準(zhǔn)確度和相關(guān)性,掌握提示工程相關(guān)技能將有助于用戶更好地了解大型語言模型的能力和局限性。特別地, 矢量數(shù)據(jù)庫、agent和prompt pipeline已經(jīng)被用作在對話中,作為向 LLM 提供相關(guān)上下文數(shù)據(jù)的途徑。

提示工程不僅僅是關(guān)于設(shè)計(jì)和研發(fā)提示詞。它包含了與大語言模型交互和研發(fā)的各種技能和技術(shù)。提示工程在實(shí)現(xiàn)和大語言模型交互、對接,以及理解大語言模型能力方面都起著重要作用。用戶可以通過提示工程來提高大語言模型的安全性,也可以賦能大語言模型,比如借助專業(yè)領(lǐng)域知識和外部工具來增強(qiáng)大語言模型能力。例如,流水線、Agent代理、CoT思維鏈等基于 LLM 的實(shí)現(xiàn)都是以某種形式的提示工程為前提的。

提示工程涉及選擇、編寫和組織提示,以便獲得所需的輸出,主要包括以下方面:

  • Prompt 格式:確定 prompt 的結(jié)構(gòu)和格式,例如,問題形式、描述形式、關(guān)鍵詞形式等。
  • Prompt 內(nèi)容:選擇合適的詞語、短語或問題,以確保模型理解用戶的意圖。
  • Prompt 上下文:考慮前文或上下文信息,以確保模型的回應(yīng)與先前的對話或情境相關(guān)。
  • Prompt 編寫技巧:使用清晰、簡潔和明了的語言編寫 prompt,以準(zhǔn)確傳達(dá)用戶的需求。
  • Prompt 優(yōu)化:在嘗試不同 prompt 后,根據(jù)結(jié)果對 prompt 進(jìn)行調(diào)整和優(yōu)化,以獲得更滿意的回應(yīng)。

提示工程可以幫助改善大語言模型的性能,使其更好地滿足用戶需求。這是在與模型互動(dòng)時(shí)常用的策略,特別是在自然語言處理任務(wù)和生成性任務(wù)中,如文本生成、答案生成、文章寫作等。

6. 提示工程(Prompt Engingeering)的基本方式

6.1 Zero-shot Prompting

Zero-shot Prompting涉及將任務(wù)輸入模型,而沒有任何示例表明所需的輸出,因此稱為Zero-shot 。例如,我們可以向模型提供一個(gè)句子,并期望它輸出該句子的情感。讓我們看一個(gè)來自DAIR-AI的示例:

-Prompt: Classify the text into neutral, negative, or positive.
 Text: I think the vacation is okay.
**** Output: Neutral

6.2 Few-shot Prompting

few-shot prompting則是通過提供模型少量高質(zhì)量的示例,這些示例包括目標(biāo)任務(wù)的輸入和期望輸出。通過觀察這些良好的示例,模型可以更好地理解人類意圖和生成準(zhǔn)確輸出的標(biāo)準(zhǔn)。因此,與zero-shot相比,few-shot 通常會產(chǎn)生更好的性能。然而,這種方法可能會消耗更多的token,并且在處理長文本的輸入或者輸出的時(shí)候可能會遇到上下文長度限制的問題。

大型語言模型(例如GPT-3)在zero-shot能力方面表現(xiàn)出色。但對于復(fù)雜任務(wù),few-shot 提示性能更好。為了提高性能,我們使用,few-shot 提示進(jìn)行上下文學(xué)習(xí),通過在提示中提供演示來指導(dǎo)模型執(zhí)行任務(wù)。換句話說,將模型置于一些特定任務(wù)的示例中有助于提高模型性能。

讓我們看一下面的例子,來自https://arxiv.org/abs/2005.14165

- Prompt: A "whatpu" is a small, furry animal native to Tanzania.
An example of a sentence that uses the word whatpu is:
We were traveling in Africa and we saw these very cute whatpus.

我們可以從上面的提示中看到,模型被給定一個(gè)例子,然后能夠?yàn)橄乱粋€(gè)問題生成答案。

6.3 instruction Prompting

指令提示是LLM的最常見用途,尤其是像ChatGPT這樣的聊天機(jī)器人。舉個(gè)提示指令的例子:

- Prompt: Define Onomatopoeia **in** one sentence.
**** Output: Onomatopoeia **is** the use of words that imitate **or** suggest the natural sound of a thing **or** action.

指令提示旨在向大語言模型提供指令提示示例,以便它可以消除訓(xùn)練或測試差異(模型是在Web規(guī)模語料庫上訓(xùn)練并在大多數(shù)指令上進(jìn)行測試),并模擬聊天機(jī)器人的實(shí)際使用場景。指令提示使用(任務(wù)說明,輸入,真實(shí)輸出)元組對預(yù)訓(xùn)練模型進(jìn)行微調(diào),以使模型更好地與用戶意圖對齊并遵循說明。與說明模型交互時(shí),應(yīng)該詳細(xì)描述任務(wù)要求,盡量具體和準(zhǔn)確,清楚地指定要做什么(而不是說不要做某事)。

7. Prompt Engingeering的組合方式

Prompt Engingeering 之所以成為工程方式,是因?yàn)榇嬖谥鞣N相對復(fù)雜的Prompt方式,主要包括思維鏈(CoT) 和 遞歸提示( Recursive Prompting)等。

7.1 Chain-of-Thought Prompting

Chain-of-Thought(CoT)提示生成一系列短句,即被稱為推理鏈的句子。這些句子描述了逐步推理邏輯,導(dǎo)致最終答案,對于復(fù)雜推理的任務(wù)和較大的模型,可獲得更多的好處。常見的兩種基本CoT提示包括Few-shot CoT 和 Zero-Shot CoT,并在下面對它們進(jìn)行描述。

7.1.1 Few-shot CoT

Few-shot CoT 允許模型查看一些高質(zhì)量推理鏈的演示。讓我們看 下面的例子: 

圖片圖片

7.1.2 Zero-shot CoT

Zero-shot CoT是由Kojima等人在2022年首先提出的,它在提示中添加了“讓我們逐步思考”,有助于提高模型性能。讓我們看一個(gè)下面的例子:

Prompt:
**-** I went to the market **and** bought 10 apples. I gave 2 apples to the neighbor **and** 2 to the repairman. I then went **and** bought 5 more apples **and** ate 1. How many apples did I remain **with**?
**-** Let's think step by step.
Output:
- First, you started with 10 apples.
-You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.
-Then you bought 5 more apples, so now you had 11 apples.
-Finally, you ate 1 apple, so you would remain with 10 apples.

Zero-shot CoT能夠幫助我們看到模型內(nèi)部,并了解它是如何推理得出答案的。

7.2 Recursive Prompting

遞歸提示是一種問題解決方法,它涉及將復(fù)雜問題分解成更小、更易管理的子問題,然后通過一系列提示遞歸地解決這些子問題。這種方法對需要組合泛化的任務(wù)尤其有用,其中語言模型必須學(xué)習(xí)如何組合不同的信息來解決問題。

在自然語言處理的背景下,遞歸提示可以使用少量提示方法將復(fù)雜問題分解為子問題,然后順序解決提取的子問題,使用前一個(gè)子問題的解決方案來回答下一個(gè)子問題。這種方法可以用于數(shù)學(xué)問題或問答等任務(wù),其中語言模型需要能夠?qū)?fù)雜問題分解為更小、更易管理的部分,以得出解決方案。例如:

Calculate the product of the length **and** width:
prompt: "What is the product of 8 and 6?"
answer: 48

Substitute the given values **for** length **and** width into the equation:
prompt: "What is the area of a rectangle with length 8 and width 6?"
answer: "The area of a rectangle with length 8 and width 6 is 48."

recursive prompting 的更多示例 如下:

圖片圖片

7.3 CoT 與 遞歸提示的混合使用

自我提問(self-ask )可以視為另一種類型的遞歸提示,是一種反復(fù)提示模型提出后續(xù)問題以迭代構(gòu)建思維過程的方法。后續(xù)問題可以通過搜索引擎結(jié)果來回答。類似地,IRCoT 和 ReAct將迭代 CoT 提示與對 Wikipedia API 的查詢相結(jié)合,以搜索相關(guān)實(shí)體和內(nèi)容,然后將其添加回上下文中。示例如下:

圖片圖片

思維樹(Tree of Thought)通過探索每一步的多種推理可能性來擴(kuò)展 CoT。它首先將問題分解為多個(gè)思維步驟,并在每個(gè)步驟中生成多個(gè)思維,實(shí)質(zhì)上是創(chuàng)建一個(gè)樹形結(jié)構(gòu)。搜索過程可以是廣度優(yōu)先過程或深度優(yōu)先的過程,而每個(gè)節(jié)點(diǎn)的評估分類器可以通過Prompt提示的方式完成。

圖片圖片

8. 自動(dòng)提示的設(shè)計(jì)

一般而言,Prompt 相當(dāng)于一系列前綴令牌,它們增加了在給定輸入時(shí)獲得所需輸出的概率。因此,可以將它們視為可訓(xùn)練的參數(shù),并通過梯度下降法直接在嵌入空間上對它們進(jìn)行優(yōu)化,例如 AutoPrompt ,Prefix-Tuning ,P 微調(diào)和 Prompt-Tuning,從自動(dòng)提示到提示微調(diào)的趨勢是設(shè)置的逐漸簡化。

8.1 自動(dòng)提示工程

APE是一種在模型生成的Prompt候選集中搜索的方法,然后根據(jù)選擇的得分函數(shù)過濾候選人集,以最終選擇得分最高的最佳候選提示。

  • 提示 LLM 根據(jù)輸入輸出健值對形式的一個(gè)小集合嘗試生成候選指令。
  • 給定一個(gè)數(shù)據(jù)集 Dtrain = {(x,y)} ,希望找到一個(gè)指令ρ,使:

圖片圖片

  • f (.)是每個(gè)樣本的得分函數(shù),例如執(zhí)行精度或?qū)?shù)概率。
  • 使用蒙特卡羅搜索方法進(jìn)行迭代,通過promt生成下列指令的變體,同時(shí)保持語義,提出語義相似的變體,從而改進(jìn)最佳候選項(xiàng)。

8.2 自動(dòng)構(gòu)建CoT

為了自動(dòng)構(gòu)建思維鏈,Shum 等人(2023)提出了增強(qiáng)-修剪-選擇,一個(gè)三步過程:

  • 增強(qiáng): 使用few-shot或zero shot 的 CoT Prompt 生成給定問題的多個(gè)偽思維鏈;
  • 修剪: 基于生成的答案是否匹配基本真相來修剪這些偽思維鏈。
  • 選擇: 應(yīng)用降低方差的梯度策略來學(xué)習(xí)選定示例的概率分布,同時(shí)考慮將示例的概率分布作為策略,并將驗(yàn)證集的準(zhǔn)確性作為獎(jiǎng)勵(lì)。

8.3 基于聚類的CoT 構(gòu)建

采用聚類技術(shù)對問題進(jìn)行抽樣,然后生成鏈(2023)。LLM 傾向于犯某些類型的錯(cuò)誤,一類錯(cuò)誤可以在嵌入空間中相似,因此可以組合在一起。通過只從頻繁錯(cuò)誤集群中抽樣一個(gè)或幾個(gè),可以防止一個(gè)錯(cuò)誤類型的過多錯(cuò)誤演示,并收集一組不同的示例。

  • 問題聚類: 嵌入問題并采用K-means聚類的運(yùn)行方式。
  • 演示選擇: 從每個(gè)聚類中選擇一組有代表性的問題,即從一個(gè)聚類中選擇一個(gè)演示樣例。每個(gè)簇中的樣本按照到簇中心的距離進(jìn)行排序,首先選擇離簇中心較近的樣本。
  • 基本關(guān)系的生成: 使用zero-shot CoT 為選定的問題生成推理鏈,構(gòu)造few-shot prompt進(jìn)行推理。

9. 提示工程的常見實(shí)踐

提示工程的實(shí)現(xiàn)涉及到基于LLM應(yīng)用中的各個(gè)方面,這里給出一些提示工程的常見實(shí)踐:

  • 靜態(tài)提示:Prompt可以遵循zero、single或few shot的方法。LLM 的生成能力通過在Prompt中包含示例數(shù)據(jù)來遵循一次性學(xué)習(xí)或幾次性學(xué)習(xí)得到了極大的增強(qiáng)。
  • 上下文提示:上下文提示在生成響應(yīng)時(shí)提供對 LLM 的參考框架,在很大程度上可以避免 LLM 的幻覺。
  • 提示模板:靜態(tài)提示轉(zhuǎn)換為模板,其中鍵值被替換為占位符,占位符在運(yùn)行時(shí)被應(yīng)用程序的值/變量替換。提示模板中的變量或占位符通過用戶提出的問題,以及從知識存儲中搜索的知識來填充,因此也稱為提示注入或?qū)嶓w注入。
  • 提示鏈:提示鏈,也稱為LLM鏈,是創(chuàng)建一個(gè)由一系列模型調(diào)用組成的鏈的概念。這一系列調(diào)用相繼發(fā)生,其中一個(gè)鏈的輸出作為另一個(gè)鏈的輸入。每個(gè)鏈的目標(biāo)都是小型且范圍良好的子任務(wù),因此單個(gè) LLM 是用于尋址任務(wù)的多個(gè)有序子組件之一。
  • 提示流水線:在機(jī)器學(xué)習(xí)中,流水線可以描述為端到端結(jié)構(gòu),來協(xié)調(diào)事件和數(shù)據(jù)流。流水線由觸發(fā)器啟動(dòng)或啟動(dòng); 并且基于某些事件和參數(shù),遵循一個(gè)流程,該流程將產(chǎn)生一個(gè)輸出。對于提示流水線而言,流在大多數(shù)情況下是由用戶請求啟動(dòng)的,請求被定向到特定的提示模板。因此,提示流水線可以描述為提示模板的智能擴(kuò)展。
  • Agent代理:對于 LLM 相關(guān)的操作,其自動(dòng)化的形式是所謂的Agent代理。提示鏈?zhǔn)菆?zhí)行預(yù)先確定和設(shè)置的操作序列,Agent 不遵循預(yù)先確定的事件順序,可以保持高度的自主性。Agent可以訪問一組工具,任何屬于這些工具范圍的請求都可以由Agent處理。執(zhí)行流水線為Agent提供了自治權(quán),在代理到達(dá)最終答案之前可能需要進(jìn)行多次迭代。
  • CoT提示:CoT提示使大型語言模型(LLM)能夠處理常識推理和算術(shù)等復(fù)雜任務(wù)。通過Prompt建立CoT推理并相應(yīng)地指導(dǎo) LLM,這是一種相當(dāng)直接的實(shí)現(xiàn)。標(biāo)準(zhǔn)提示與CoT提示的對比如下:

圖片圖片

  • 思維鏈提示特別有用的地方在于,通過分解 LLM 輸入和 LLM 輸出,它創(chuàng)建了一個(gè)洞察和解釋窗口。
  • ChatML:LLM 的主要安全漏洞和濫用途徑是Prompt注入攻擊,ChatML 將允許針對這些類型的攻擊提供保護(hù)。為了消除prompt注入攻擊,會話被分為以下幾個(gè)層次或角色: 系統(tǒng)、助理和用戶等, 然后做相應(yīng)的prompt防護(hù)。

圖片圖片

10. Prompt engineering 的挑戰(zhàn)與未來

有人可以說,Prompt Engineering是以某種方式構(gòu)建的自然語言。但OpenAI首席執(zhí)行官所指的似乎是真正的非結(jié)構(gòu)化和高度直觀的交互界面,在某種程度上,這種說法是值得商榷的,因?yàn)槿绱硕嗟募夹g(shù)和創(chuàng)新都是基于Prompt engineering的基本原理來實(shí)現(xiàn)的。

圖片圖片

考慮到企業(yè)用例,操縱LLM的兩種主要方法是微調(diào)和將上下文參考數(shù)據(jù)注入到推理prompt中,兩種方法不是互斥的。模型微調(diào)會更改LLM的行為和響應(yīng),RAG通過上下文參考來補(bǔ)充用戶的輸入。

提示工程的主要挑戰(zhàn)之一是問題的陳述和形式化表達(dá),將思想中存在的需求轉(zhuǎn)化為文本請求。退一步而言,在傳統(tǒng)的聊天機(jī)器人中建立上下文是非常重要的。上下文首先是通過根據(jù)一個(gè)或多個(gè)意圖對用戶輸入進(jìn)行分類來建立的,通過先前的對話、對其他系統(tǒng)的API調(diào)用等建立進(jìn)一步的上下文。上下文在很大程度上也取決于時(shí)間和地點(diǎn),以及提出問題時(shí)的背景參考是什么。

除了上下文感知外,歧義性是另一個(gè)挑戰(zhàn)。有些形式的歧義對我們?nèi)祟悂碚f很容易理解,但傳統(tǒng)上對NLU/聊天機(jī)器人來說很難。在OpenAI的實(shí)現(xiàn)中,LLM輸入方面出現(xiàn)了chatML,定義了角色,并為LLM的輸入提供了明確的結(jié)構(gòu)。LLM輸出方面出現(xiàn)了function call,聊天的完成模式被設(shè)置為事實(shí)上的標(biāo)準(zhǔn)。

意圖、上下文、歧義和消除歧義都是任何對話的組成部分。有了人類語言界面,語境和語境感知將永遠(yuǎn)是重要的。歧義是存在的,一定程度的歧義消除是人類對話的一部分。在對話中,我們不斷使用“歧義消除”來確立意義和意圖,在上下文中可以在一定程度上自動(dòng)消除歧義。例如,要求LLM生成五個(gè)選項(xiàng),然后讓用戶選擇生成的最佳答案,就是一種消除歧義的形式。

企業(yè)實(shí)施將是特定于領(lǐng)域的,需要約束,并具有一定程度的域外檢測。問題或請求的分解對于創(chuàng)建一個(gè)思維鏈推理過程非常重要。微調(diào)設(shè)置模型行為,而RAG為LLM創(chuàng)建了一個(gè)上下文參考,以便在推理過程中使用。數(shù)據(jù)管理將始終是LLM應(yīng)用程序的一部分。

圖片圖片

復(fù)雜性從不會消失,只會從一個(gè)地方轉(zhuǎn)移到另一個(gè)地方。

【參考資料】

責(zé)任編輯:武曉燕 來源: 喔家ArchiSelf
相關(guān)推薦

2023-03-21 21:22:27

提示工程預(yù)測NLG

2025-02-14 08:44:39

提示工程OpenAIDeepSeek

2025-09-09 09:49:36

2025-03-26 05:00:00

AIprompt交互效果

2024-11-13 10:26:25

2023-10-17 15:49:08

AI生命周期AGI

2024-07-17 09:47:18

2023-03-09 09:14:51

ChatGPTAI

2025-07-04 09:05:00

2024-03-18 10:24:12

優(yōu)化模型

2025-07-08 08:34:04

2017-07-26 13:30:54

LinuxShell命令

2024-07-10 12:33:06

2025-05-22 06:34:28

2025-08-28 06:05:00

2024-07-29 00:00:00

2025-10-14 01:55:00

AI應(yīng)用上下文工程機(jī)器人

2009-10-19 15:37:43

綜合布線工程

2023-05-11 15:39:34

模型設(shè)計(jì)

2023-10-30 00:14:34

Agent提示工程LLM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號