国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架)

這篇具有很好參考價(jià)值的文章主要介紹了Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架)

大語言模型 (Large Language Models, LLMs) 在不同領(lǐng)域都表現(xiàn)出了優(yōu)異的性能。然而,對于非AI專家來說,制定高質(zhì)量的提示來引導(dǎo) LLMs 是目前AI應(yīng)用領(lǐng)域的一項(xiàng)重要挑戰(zhàn)?,F(xiàn)有的提示工程研究已經(jīng)提出了一些零散的優(yōu)化原則,也有些研究設(shè)計(jì)了基于經(jīng)驗(yàn)的提示優(yōu)化器。然而,這些研究缺乏結(jié)構(gòu)化的設(shè)計(jì)模板,學(xué)習(xí)成本高,可復(fù)用性低。受到編程語言的結(jié)構(gòu)化和可復(fù)用性的啟發(fā),提出了雙層提示設(shè)計(jì)框架 LangGPT,作為面向 LLM 的編程語言。LangGPT 具有易于學(xué)習(xí)的規(guī)范結(jié)構(gòu),并為遷移和復(fù)用提供了擴(kuò)展結(jié)構(gòu)。實(shí)驗(yàn)表明,與 baseline 相比,LangGPT 極大地增強(qiáng)了 LLM 生成高質(zhì)量回復(fù)的能力。此外,也證明了 LangGPT 框架能有效地指導(dǎo) LLM 自動化地生成高質(zhì)量提示。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

1. 提示優(yōu)化介紹

以 ChatGPT 為代表的大型語言模型(Large Language Models, LLMs)[Achiam 等人,2023;Schulman 等人,2023] 可以基于強(qiáng)大的語言理解能力、推理能力和生成能力執(zhí)行各種各樣的任務(wù)[Sun 等人,2023b;Sun 等人,2023c;Yu 等人,2023]。此外,注入領(lǐng)域知識還能讓 LLM 執(zhí)行與領(lǐng)域相關(guān)的特定任務(wù) [Wang 等人,2023a;Li 等人,2023b;Zhang 等人,2023;Ren 等人,2023]。要充分發(fā)揮 LLM 的這些能力,就需要構(gòu)造高質(zhì)量的提示[Eric,2022;Chen 等人,2023;Gajula,2023]。因此,提示工程 (Prompt Engineering) 吸引了許多研究人員的關(guān)注[Varshney 和 Surla,2023;Mesk′o,2023;Wang,2023]。

  • 提示工程是典型的經(jīng)驗(yàn)科學(xué),主要涉及提示設(shè)計(jì)和提示優(yōu)化。由于 LLM 具備自然語言理解能力,可以通過非結(jié)構(gòu)化的自然語言指令直接要求 LLM 執(zhí)行任務(wù)。在此基礎(chǔ)上,研究人員首先探索并總結(jié)出了一些優(yōu)化提示的技巧。[Bsharat等人,2023年]介紹了26條指導(dǎo)原則,旨在讓 LLMs 表現(xiàn)得更好。除了這些直接作用于提示的優(yōu)化技巧外,一些研究人員還基于歷史數(shù)據(jù)的提出了提示優(yōu)化方法。[Sun 等人,2023a] 引導(dǎo) LLM 從不正確的推理中得出特定實(shí)例的新提示,然后總結(jié)每個(gè)實(shí)例的對應(yīng)提示,作為優(yōu)化原始提示的參考。[Pryzant等人,2023年]定義了自然語言"梯度",利用小批量數(shù)據(jù)求解該"梯度"并利用波束搜索和 Bandit 選擇程序,按照梯度的相反語義方向編輯當(dāng)前提示。[Fan 等人,2023 年]對一個(gè)大型提示數(shù)據(jù)庫進(jìn)行分析,并提出了一個(gè)自動提示優(yōu)化框架。

  • 基于歷史數(shù)據(jù)的直接提示優(yōu)化原則和方法需要豐富的經(jīng)驗(yàn)。因此,這些方法通常只在特定任務(wù)或領(lǐng)域中表現(xiàn)良好。為了提高通用性,一些研究人員提出了自適應(yīng)提示優(yōu)化方法。[Guo 等人,2023 年] 將 LLM 與進(jìn)化算法聯(lián)系起來,提出了一種新的離散提示優(yōu)化框架,稱為 EvoPrompt。[Li等人,2023a]設(shè)計(jì)了一種多輪對話對齊策略,并利用GPT-4[Achiam等人,2023]生成易讀的提示集。同時(shí),他們還提出了一種高效的提示篩選指標(biāo),能以線性復(fù)雜度篩選出高質(zhì)量的提示。[Wang等人,2023b]引入了PromptAgent,它可以反思模型錯(cuò)誤并產(chǎn)生建設(shè)性的錯(cuò)誤反饋,以誘導(dǎo)精確的專家級見解和深入的指導(dǎo)。[Hao等人,2022] 和 [Cheng等人,2023] 還從協(xié)調(diào)人類和 LLM 偏好風(fēng)格的角度優(yōu)化了提示。

  • 提示優(yōu)化可以大大提高 LLM 的性能,但由于缺乏系統(tǒng)性設(shè)計(jì),高質(zhì)量提示的可復(fù)用性很差。因此,一些研究人員設(shè)計(jì)了構(gòu)建提示的規(guī)則。[Nigh, 2023]收集了大量高質(zhì)量提示,并總結(jié)了用于提示設(shè)計(jì)的 CRISPE 規(guī)則。[ZamfirescuPereira等人,2023年]以基于LLM的聊天機(jī)器人設(shè)計(jì)工具原型為設(shè)計(jì)探針,支持非人工智能專家參與"終端用戶提示工程"。此外,一些研究人員為不同領(lǐng)域的應(yīng)用設(shè)計(jì)了提示構(gòu)建規(guī)則。[Cao 等人,2023 年]為 ChatGPT 提出了各種利用深度學(xué)習(xí)執(zhí)行程序修復(fù)任務(wù)的提示模板。[Yeh等人,2022年]將生物醫(yī)學(xué)關(guān)系提取任務(wù)重新表述為簡單提示表述下的 cloze 測試任務(wù),從而系統(tǒng)地生成全面的提示語。[Liu和Chilton,2022年]在文生圖任務(wù)的五個(gè)實(shí)驗(yàn)中評估了涵蓋51個(gè)主題和51種風(fēng)格的5493個(gè)生成提示,并總結(jié)了提示設(shè)計(jì)指南。

  • 這些方法以AI專家大量的使用經(jīng)驗(yàn)為基礎(chǔ),主要依賴列出的設(shè)計(jì)規(guī)則,缺乏系統(tǒng)性。此外,這些規(guī)則具有較強(qiáng)的領(lǐng)域相關(guān)性和模型相關(guān)性,但通用性、靈活性和可復(fù)用性較低。為了進(jìn)一步釋放 LLM 的性能,一些研究人員定義了 Agent。Agent 賦予 LLMs 使用工具、獲取領(lǐng)域知識、保留長期或短期記憶以及制定計(jì)劃的能力[Xu 等人,2023;Xi 等人,2023;Park 等人,2023]。雖然Agent [Chase,2022;Hong 等人,2023;Wu 等人,2023]系統(tǒng)地設(shè)計(jì)了提示的關(guān)鍵組件并預(yù)留了靈活的自定義接口,但學(xué)習(xí)成本非常高。此外,非 AI 專家很難修改 Agent 設(shè)計(jì),可復(fù)用性較差。

為了推廣基于 LLM 的應(yīng)用,進(jìn)一步激發(fā) LLM 的潛力,希望設(shè)計(jì)一個(gè)高質(zhì)量、可復(fù)用的提示模板。該模板應(yīng)具有通用性和可擴(kuò)展性。此外,該模板還應(yīng)該易學(xué)易用。受 prompt 是 LLM 時(shí)代的編程語言這一觀點(diǎn)的啟發(fā) [Alouani, 2023; Mund, 2023],設(shè)計(jì)了一種面向 LLM 的編程語言,即一種 prompt 設(shè)計(jì)框架 Language for GPT-like LLMs (LangGPT)。LangGPT 具有編程語言的系統(tǒng)性、規(guī)范性和可復(fù)用性的特點(diǎn),并保留了自然語言的靈活性和可擴(kuò)展性。首先分析了自然語言和編程語言之間的差異,以確定提示模板應(yīng)具備的屬性。LangGPT 設(shè)計(jì)為雙層結(jié)構(gòu),由模塊和內(nèi)部元素組成。LangGPT 中的模塊可分為兩類:內(nèi)置模塊和擴(kuò)展模塊。對于內(nèi)置模塊,詳細(xì)設(shè)計(jì)了每個(gè)模塊的必要內(nèi)部元素,并給出了示例模板。此外,對于擴(kuò)展模塊,統(tǒng)一了基本內(nèi)部元素的設(shè)計(jì)。實(shí)驗(yàn)證明,在引導(dǎo) LLM 方面,LangGPT 比基線提示更好。此外,LLM 可以利用這一框架自動生成提示,就像生成代碼一樣。

這項(xiàng)工作的主要貢獻(xiàn)為:

  • 提出了雙層結(jié)構(gòu)的提示設(shè)計(jì)框架 LangGPT,以提高提示的通用性和可復(fù)用性。還在 LangGPT 的基礎(chǔ)上編寫了詳細(xì)的提示設(shè)計(jì)規(guī)則,從而降低了提示設(shè)計(jì)的學(xué)習(xí)成本,使 LLM 能夠自動生成高質(zhì)量的提示語。此外,提供了基于 LangGPT 的常見場景的通用提示模板,進(jìn)一步簡化了提示設(shè)計(jì)成本。
  • 通過實(shí)驗(yàn)證明,基于 LangGPT 設(shè)計(jì)的提示可以更好地引導(dǎo) LLM 執(zhí)行任務(wù)。同時(shí),舉例說明了 LangGPT 可以幫助 LLM 生成高質(zhì)量的提示。
  • 建立了一個(gè)基于 LangGPT 的在線社區(qū),提供使用文檔和提示設(shè)計(jì)界面。此外,收集和分享優(yōu)秀的提示案例也促進(jìn)了 LLM 應(yīng)用的交流。在社區(qū)中進(jìn)行了用戶體驗(yàn)調(diào)查,驗(yàn)證了 LangGPT 的易用性和可復(fù)用性。

2. 參考編程語言構(gòu)造提示設(shè)計(jì)規(guī)則

與自然語言相比,編程語言更具標(biāo)準(zhǔn)化和可復(fù)用性。為了設(shè)計(jì)高質(zhì)量的可復(fù)用的提示,分析了自然語言和編程語言之間的差異,并提出了提示設(shè)計(jì)原則。

2.1 自然語言與編程語言的區(qū)別

自然語言主要用于交流,而編程語言則是為機(jī)器執(zhí)行任務(wù)定義的指令[GeeksforGeeks, 2023]。不同的應(yīng)用目的導(dǎo)致這兩種語言的創(chuàng)造和演變背景截然不同。

  1. 目標(biāo)受眾:自然語言是由人類對人類說的[Grune等人,2012],而編程語言是由人類為機(jī)器準(zhǔn)備的[Chakray,2018]。
  2. 結(jié)構(gòu):計(jì)算機(jī)只能理解固定的指令,這要求編程語言具有嚴(yán)格、嚴(yán)謹(jǐn)?shù)恼Z法和語義。相反,自然語言具有寬松而靈活的語法和語義,允許創(chuàng)造和變化,并具有高度的容錯(cuò)性。
  3. 模糊性:自然語言更加模棱兩可,但人類有能力明確自然語言表達(dá)的意思。例如,順序混亂和打字錯(cuò)誤等問題對閱讀的影響較小,發(fā)音錯(cuò)誤也可以理解[Chakray,2018;Aho,2007]。編程語言比較準(zhǔn)確,因?yàn)樗鼈冃枰獮橛?jì)算機(jī)提供明確的指令[GeeksforGeek,2023]。
  4. 演變與更新:自然語言通過人類的使用和交流,隨著時(shí)間的推移自然演變[Sipser,1996]。自然語言在增加新詞與新的意義,以及摒棄過時(shí)用法方面是比較靈活的[Fromkin等人,2018年]。相反地,編程語言是專門為與機(jī)器通信而設(shè)計(jì)的[Sebesta,2012],新的語法規(guī)則和功能需要明確的升級或正式發(fā)布[Pratt等人,1984]。

總而言之,這兩種語言的主要區(qū)別在于,自然語言更模糊、更靈活,而編程語言更規(guī)范、更精確。LLM本質(zhì)上執(zhí)行大量計(jì)算,與機(jī)器有許多相似之處。因此,借鑒了編程語言的特點(diǎn),結(jié)合自然語言的優(yōu)勢,提出了一種面向 LLM 的自然語言編程框架–LangGPT。

2.2 提示設(shè)計(jì)規(guī)則

參考編程語言的設(shè)計(jì)思想來優(yōu)化提示。在分析了編程語言和自然語言的區(qū)別之后,提出了提示的設(shè)計(jì)原則:

  • (1)提示應(yīng)具有規(guī)范化的格式。靈活和模糊的自然語言對于LLM來說是很難理解的。格式規(guī)范的提示使用戶的目的和要求更加突出。
  • (2)提示的結(jié)構(gòu)應(yīng)該是可擴(kuò)展的。自定義結(jié)構(gòu)便于用戶根據(jù)自己的領(lǐng)域和任務(wù)設(shè)計(jì)合適的提示。
  • (3)具體要求必須明確、完整。指令和附加要求都應(yīng)明確和完整,以避免誤解或偏見。
  • (4)語言要靈活。在需求明確的情況下,靈活的語言可以更好地適應(yīng)不同的領(lǐng)域。此外,靈活的語言也便于用戶學(xué)習(xí)。

3 面向大語言模型的自然語言編程框架

基于這些設(shè)計(jì)規(guī)則,提出了一種面向 LLM 的雙層自然語言編程框架–LangGPT。

3.1 整體雙層結(jié)構(gòu)

為了系統(tǒng)地設(shè)計(jì)符合規(guī)則的提示,充分參考了面向?qū)ο缶幊陶Z言的設(shè)計(jì)思想和結(jié)構(gòu)[Rentsch,1982;Lutz,2010]。將提示視為一個(gè)軟件項(xiàng)目,并將提示設(shè)計(jì)過程類比為軟件開發(fā)過程。對應(yīng)關(guān)系如圖1所示。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

圖 1:編程語言和自然語言提示之間的類比。依據(jù)層次結(jié)構(gòu)分析了兩種語言之間的相似性。不同大小的圓圈表示不同的層。較小的圓圈表示更靠近內(nèi)層,對應(yīng)于較深的顏色。

通過類比分析可以發(fā)現(xiàn),自然語言提示與編程語言具有相似的多層次結(jié)構(gòu)。因此,參考編程語言的結(jié)構(gòu),提出了提示設(shè)計(jì)的雙層結(jié)構(gòu),并定義了提示的模塊和元素的概念。

一個(gè)完整的提示包含幾個(gè)模塊。模塊類似于編程語言中的類,每個(gè)模塊代表要求LLM的一個(gè)方面。例如,可以在Constraint、Goal、Profile等方面增加提示。在一個(gè)模塊中,包括許多內(nèi)部元素。元素類似于編程語言中的函數(shù)和屬性,表示對LLM的直接和特定指令的內(nèi)容。例如“輸出不應(yīng)超過500字”可以是提示中屬于Constraint模塊的元素。

雙層結(jié)構(gòu)可以很好地標(biāo)準(zhǔn)化提示的格式。然而,如果過于嚴(yán)格地要求提示遵循預(yù)定義的內(nèi)置模塊和基本元素,無法利用自然語言的靈活性的優(yōu)勢。此外,還會降低LangGPT對不同領(lǐng)域不同任務(wù)的通用性,不利于高質(zhì)量提示的復(fù)用。為了解決這些問題,將模塊和元素的類型進(jìn)行了劃分。首先定義了內(nèi)置模塊和基本元素作為預(yù)定義的雙層提示模板。此外,還構(gòu)建了支持自定義的擴(kuò)展模塊和自定義元素。為內(nèi)置模塊和擴(kuò)展模塊提供Markdown[Gruber,2012]和JSON[Pezoa等人,2016]格式。此外,為不同的模塊編寫了基本元素,并定義了編寫自定義元素的規(guī)則。

3.2 內(nèi)置模塊的構(gòu)造

該模塊作為完整提示和指令單元之間的連接部分,對于控制提示的結(jié)構(gòu)有非常重要的作用。

為幾乎所有提示所需的關(guān)鍵方面定義了內(nèi)置模塊。此外,還針對與應(yīng)用程序相關(guān)的某些場景定義了內(nèi)置模塊,以便于學(xué)習(xí)和使用。表1展示了為某些場景定義的內(nèi)置模塊。

  • Prof. (Profile)指出了用戶對LLM在角色方面的要求,包括個(gè)人簡介、人物肖像等。
  • Cons. (Constraint)表示約束或突出,即不允許LLM超出的范圍以及生成回復(fù)時(shí)必須滿足的要求等。
  • Goal列出了用戶想要實(shí)現(xiàn)的目標(biāo),這就是LLM需要完成的目標(biāo)。Init. (Initialization)即初始化,以告知LLM即將開始對話。有時(shí),該模塊中還會給出指定的第一句話。
  • Ex. (Example)給出了輸入-輸出對作為供LLM學(xué)習(xí)的例子。
  • Wkflo. (Workflow)指示了執(zhí)行任務(wù)時(shí)的工作流程,類似于 CoT 方法 [Wei 等人., 2023]。當(dāng)任務(wù)需求比較復(fù)雜時(shí),往往需要實(shí)例化這個(gè)模塊。
  • Skill用于向LLM表明他們擁有的技能。經(jīng)過工具學(xué)習(xí)的LLM,可以指導(dǎo)他們調(diào)用工具,更準(zhǔn)確地執(zhí)行任務(wù)。另外,計(jì)劃在未來的工作中提供使用該模塊下工具的能力,參考代理工具的設(shè)計(jì)[Chase, 2022;洪等人,2023]。
  • Sug. (Suggestion)包括對LLM的建議和行為規(guī)劃。該模塊重點(diǎn)列出常見場景,并告訴LLM在此類情況下可以采取的行為或應(yīng)對措施。
  • Bkgrd. (Background)表示LLM在執(zhí)行任務(wù)時(shí)需要具備的背景信息和記憶。
  • Style限定了LLM生成回復(fù)的風(fēng)格。
  • Outf. (Output Format)定義了LLM的輸出格式。指定輸出格式可以提高某些任務(wù)中結(jié)果提取的效率和準(zhǔn)確性。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

表 1:內(nèi)置模塊定義的狀態(tài)。該表列出了目前定義的8類應(yīng)用場景以及為這些場景定義的模塊。 ?表示已經(jīng)針對該場景設(shè)計(jì)了相應(yīng)的模塊。相反, ? 表示沒有設(shè)計(jì)。

3.3 內(nèi)部基本元素

  • 提示通常包含三個(gè)目的:
    1. 向LLM傳遞某種信息;
    2. 讓LLM執(zhí)行某個(gè)有輸出或無輸出的任務(wù);
    3. 前兩者的結(jié)合。

第一個(gè)與編程語言中屬性或變量的定義非常相似。相應(yīng)地,后兩類類似于編程語言中的函數(shù)。因此,構(gòu)建了這三種類型的基本元素。使用“?PROPERTY? 是?VALUE?”語句來模擬賦值操作。對于后兩種情況,需要指定輸入信息、任務(wù)和輸出,其中輸入和輸出可以省略。使用“對于給定的?VALUE?的?PROPERTY?,請執(zhí)行以下操作:?ACTIONS?;返回?RESULT??!钡男问絹砟M函數(shù)。在提供的基本元素模式中,尖括號中包含的內(nèi)容需要根據(jù)模塊和使用場景來填充。需要注意的是,提供的模式僅指定了編輯內(nèi)部元素的想法。為了提高提示的通用性和靈活性,可以調(diào)整語言來表達(dá)關(guān)鍵信息。在表 2 中,展示了一些模塊中基本元素的一些示例。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

表2:寫作場景中內(nèi)置模塊的基本內(nèi)部元素示例。該提示屬于寫作場景,其目的是為給定的文章生成標(biāo)題。選擇了五個(gè)模塊作為示例——Profile、Goal、Constraint、Workflow和Style——并展示了每個(gè)模塊的一個(gè)內(nèi)部元素。特別是,對于Workflow模塊,展示了一個(gè)類似函數(shù)的基本元素。

3.4 擴(kuò)展模塊和自定義元素

定義的內(nèi)置模塊已經(jīng)盡可能全面地涵蓋了提示的許多方面。此外,還添加了LangGPT涵蓋的應(yīng)用場景和模塊。但受限于自身的能力和領(lǐng)域知識,無法考慮LLM的所有應(yīng)用場景。

因此,除了內(nèi)置模塊和基本元素之外,還定義了擴(kuò)展模塊和自定義元素,以提高提示的通用性和復(fù)用性。擴(kuò)展模塊和自定義元素的設(shè)計(jì)流程如圖2所示。

這個(gè)過程可以幫助用戶快速分析他們的需求并提出提示中需要包含的要點(diǎn)。基于LangGPT提供的設(shè)計(jì)模板以及設(shè)計(jì)流程,可以優(yōu)化高質(zhì)量提示以快速匹配應(yīng)用場景。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

圖 2:擴(kuò)展模塊和自定義元素的設(shè)計(jì)流程。對于內(nèi)置模塊無法覆蓋所有方面的應(yīng)用場景,可以根據(jù)需要定義新的擴(kuò)展模塊。定義了擴(kuò)展模塊后,還應(yīng)該根據(jù)擴(kuò)展模塊的要求來設(shè)計(jì)內(nèi)部元素。另外,如果內(nèi)置模塊能夠滿足應(yīng)用場景需求,但基本元素?zé)o法滿足所有需求,可以直接在內(nèi)置模塊中添加自定義元素。需要注意的是,擴(kuò)展模塊和內(nèi)置模塊應(yīng)盡可能相互排斥,以最大限度地減少修改成本。

4. 實(shí)驗(yàn)

為了驗(yàn)證提出的LangGPT的先進(jìn)性,在兩個(gè)方面進(jìn)行了實(shí)驗(yàn):LLM執(zhí)行任務(wù)的效果和LangGPT的可用性調(diào)研。在的實(shí)驗(yàn)中,選擇了兩種類型的應(yīng)用場景:寫作和角色扮演。對于每個(gè)場景,選擇了五個(gè)由社區(qū)用戶構(gòu)建和共享的具體的任務(wù)助手。

4.1 Baseline

為了進(jìn)行比較,選擇了兩個(gè)baseline。

  • 直接指令:提示僅包含對LLM提出的說明以及所需的必要信息。
  • CRISPE:提示設(shè)計(jì)規(guī)則 [Night,2023]。該框架從宏觀角度前瞻性地定義了提示的組成部分。它需要一個(gè)完整的提示,包含Capacity和Role、Insight、Statement、Personality和Experiment。

直接指令提示非常直觀,可最大限度地節(jié)省token。但這種方式內(nèi)容太少,往往不能全面?zhèn)鬟_(dá)需求,也難以抓住重點(diǎn)。 CRISPE提供了一個(gè)相對完整的設(shè)計(jì)框架,而不是一些零散的規(guī)則。但它沒有清晰的結(jié)構(gòu)化設(shè)計(jì),不利于學(xué)習(xí)和高質(zhì)量提示的復(fù)用。另外,CRISPE對提示中包含的元素有嚴(yán)格的規(guī)范,泛化能力較低。由于這些方法在提示設(shè)計(jì)上的缺點(diǎn),設(shè)計(jì)了LangGPT。然而,除了這些直觀的優(yōu)勢之外,還需要驗(yàn)證提示能否引導(dǎo)LLM執(zhí)行任務(wù),這才是提示設(shè)計(jì)最本質(zhì)的目的。

4.2 大語言模型

選擇了表 3 中所示的這些LLM進(jìn)行評估,實(shí)驗(yàn)中的所有任務(wù)均于2024年1月18日前完成。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

表 3:實(shí)驗(yàn)中使用的LLM?!皍nk”表示不知道這些模型的規(guī)模。

4.3 評估指標(biāo)

由于任務(wù)場景的復(fù)雜性,缺乏客觀的評價(jià)指標(biāo)。因此,使用人工評估和LLM評估來評估LLM執(zhí)行任務(wù)的能力。為了更好地保證評估的合理性,針對兩種場景設(shè)定了評估標(biāo)準(zhǔn)。

對于寫作任務(wù),要求評估者從3個(gè)維度評估LLM執(zhí)行任務(wù)的有效性:文本連貫性、格式規(guī)范和內(nèi)容豐富度。生成主題連貫的內(nèi)容的能力很重要。然而,發(fā)現(xiàn)LLM在生成任務(wù)中通常能夠保持主題一致性,因此沒有針對這方面設(shè)計(jì)評估指標(biāo)。對于角色扮演任務(wù),同樣設(shè)計(jì)了3個(gè)維度的評價(jià)指標(biāo):語言風(fēng)格、角色相關(guān)性和主題一致性。對于每個(gè)評估指標(biāo),定義了從0到5的分?jǐn)?shù)來表示不同的級別,并解釋了每個(gè)整數(shù)分?jǐn)?shù)對應(yīng)的情況的描述。此外,允許評估者在不同級別之間打 .5 分。

該評估框架還可以指導(dǎo)高性能LLM,例如GPT-4和Ernie Bot-4,自動評估其表現(xiàn)。由于LLM作為評估者的一致性較低[Liu et al., 2023],實(shí)驗(yàn)中也發(fā)現(xiàn)LLM評分的區(qū)分度很低,因此僅采用了人工評估的結(jié)果。

4.4 結(jié)果

提示引導(dǎo)LLM執(zhí)行任務(wù)能力最直觀的體現(xiàn)是LLM在執(zhí)行提示引導(dǎo)的任務(wù)時(shí)的表現(xiàn)。因此,評估了LLM在兩種情況下的表現(xiàn),結(jié)果如表 4 及表 5 所示。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

表 4:引導(dǎo)LLM執(zhí)行任務(wù)的不同提示的結(jié)果。粗體字體表示在當(dāng)前場景中效果最佳的提示類型。 I、C、L 分別表示三種提示符,即Instruction-only、CRISPE、LangGPT。 s1到s3分別代表兩種場景的三個(gè)評估指標(biāo)。對于寫作場景來說,s1是文本連貫性,s2是格式規(guī)范,s3是內(nèi)容豐富度。對于角色扮演場景,s1是語言風(fēng)格,s2是角色相關(guān)性,s3是主題一致性。

從結(jié)果可以看出,LangGPT更擅長引導(dǎo)LLM執(zhí)行任務(wù)。此外,還注意到一個(gè)有趣的現(xiàn)象。某些具有特別嚴(yán)格安全限制的LLM將拒絕回答,例如關(guān)于吹牛和暴躁等話題的問題或請求。 LangGPT可以讓這些LLM認(rèn)識到這只是一種說話方式,而不是真正具有破壞性的行為,并引導(dǎo)LLM生成回復(fù)。其他兩個(gè)baseline都無法做到這一點(diǎn)。

為了評估 LangGPT 的易用性,在在線社區(qū)進(jìn)行了一項(xiàng)用戶調(diào)查。該社區(qū)已經(jīng)運(yùn)行了六個(gè)多月,已經(jīng)聚集了來自各行各業(yè)的數(shù)千名用戶,包括制造、建筑、信息技術(shù)、金融和娛樂。因此,調(diào)查結(jié)果的客觀性能夠得到保證。設(shè)計(jì)了一份關(guān)于 LangGPT 體驗(yàn)的完整調(diào)查問卷,以確保答案的質(zhì)量。調(diào)查問卷包括關(guān)于易用性的評分問題。用戶評分結(jié)果如圖3所示。從圖3可以看出,87.81%的用戶給出了3分或更高的分?jǐn)?shù),這表明用戶對LangGPT的易用性表示認(rèn)可。此外,LangGPT在用戶調(diào)查中的總體滿意度得分為8.48分(滿分10分)。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

圖 3:用戶調(diào)查中的易用性評分。最低分是0分,表示非常難用,最高分是5分,表示非常容易使用。 “:”用于分隔分?jǐn)?shù)和百分比。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

表 5:不同LLM在兩種情況下的平均得分。

4.5 案例研究

為了更直觀地展示LangGPT的效果,從實(shí)驗(yàn)中篩選了具體案例。除了直接的效果比較之外,還嘗試使用LangGPT來指導(dǎo)LLM生成質(zhì)量提示。

提示引導(dǎo)LLM

在的實(shí)驗(yàn)中,使用三種提示來引導(dǎo)LLM扮演馬屁精,圖 4 中給出了一個(gè)示例。

在此示例中,直接指令提示和 CRISPE 提示引導(dǎo)的 ChatGPT 都只是回復(fù)用戶的話語。相比之下,LangGPT 引導(dǎo)的 ChatGPT 在針對用戶給定主題進(jìn)行了更加夸張的吹噓。此外,它從更廣泛的角度表達(dá)贊美,也更有個(gè)性。

LangGPT引導(dǎo)LLM編寫提示

在實(shí)驗(yàn)中,還嘗試讓LLM使用 LangGPT 構(gòu)建提示。圖 5 展示了一個(gè)示例。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

圖 4:馬屁精的案例。 ChatGPT-3.5 在三種不同提示下對用戶的回復(fù)。需要注意的是,明遠(yuǎn)大學(xué)是虛構(gòu)的。

Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架),LLM技術(shù)匯總,prompt,人工智能,LLM,大語言模型,prompt工程

圖 5:ChatGPT-3.5 使用 LangGPT 生成提示的示例。為了便于演示,一些模塊被省略。

如果直接要求LLM生成有關(guān) MBTI 評估的提示,他們可能會拒絕。然而,LangGPT 可以指導(dǎo)LLM生成無害的高質(zhì)量提示。

5 結(jié)論

在本文中,提出了 LangGPT,一個(gè)用于提示設(shè)計(jì)的結(jié)構(gòu)化且可擴(kuò)展的框架。 LangGPT具有類似于面向?qū)ο缶幊陶Z言的系統(tǒng)結(jié)構(gòu),易于學(xué)習(xí)和復(fù)用。實(shí)驗(yàn)表明,LangGPT 在指導(dǎo)LLM執(zhí)行任務(wù)方面比baseline方法表現(xiàn)更好。還在LangGPT構(gòu)建的社區(qū)中進(jìn)行了用戶調(diào)查,以驗(yàn)證LangGPT的易用性和可復(fù)用性。在未來的工作中,將進(jìn)一步優(yōu)化LangGPT的設(shè)計(jì),減少LangGPTtoken消耗。此外,還將添加對LLM使用第三方工具和自定義工具的支持。

  • 倫理聲明

在LLM的應(yīng)用過程中,可能會出現(xiàn)倫理爭議,但LangGPT的設(shè)計(jì)及本文的寫作過程避免了可能出現(xiàn)的倫理問題。

更多優(yōu)質(zhì)內(nèi)容請關(guān)注公號:汀丶人工智能;會提供一些相關(guān)的資源和優(yōu)質(zhì)文章,免費(fèi)獲取閱讀。文章來源地址http://www.zghlxwxcb.cn/news/detail-838343.html

  • 論文地址:https://arxiv.org/abs/2402.16929
  • 項(xiàng)目地址:https://github.com/EmbraceAGI/LangGPT
  • 社區(qū)地址:https://www.langgpt.ai/
  • 作者:Ming Wang, Yuanzhong Liu, Xiaoming Zhang, Songlian Li, Yijie Huang, Chi Zhang, Daling Wang, Shi Feng, Jigang Li

到了這里,關(guān)于Prompt進(jìn)階系列1:LangGPT(從編程語言反思LLM的結(jié)構(gòu)化可復(fù)用提示設(shè)計(jì)框架)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 100天精通Golang(基礎(chǔ)入門篇)——第15天:深入解析Go語言中函數(shù)的應(yīng)用:從基礎(chǔ)到進(jìn)階,助您精通函數(shù)編程!(進(jìn)階)

    100天精通Golang(基礎(chǔ)入門篇)——第15天:深入解析Go語言中函數(shù)的應(yīng)用:從基礎(chǔ)到進(jìn)階,助您精通函數(shù)編程?。ㄟM(jìn)階)

    ?? 博主 libin9iOak帶您 Go to Golang Language.? ?? 個(gè)人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬請批

    2024年02月12日
    瀏覽(36)
  • 解密Prompt系列22. LLM Agent之RAG的反思:放棄了壓縮還是智能么?

    解密Prompt系列22. LLM Agent之RAG的反思:放棄了壓縮還是智能么?

    已經(jīng)嘮了三章的RAG,是時(shí)候回頭反思一下,當(dāng)前的RAG是解決幻覺的終點(diǎn)么?我給不出直接的答案,不過感覺當(dāng)前把RAG當(dāng)作傳統(tǒng)搜索框架在大模型時(shí)代下的改良,這個(gè)思路的天花板高度有限~ 反思來源于對RAG下模型回答的直觀感受,最初我們被ChatGPT的能力所震驚,并不是它能背

    2024年02月03日
    瀏覽(31)
  • GO編程語言:簡潔、高效、強(qiáng)大的開源編程語言

    GO編程語言:簡潔、高效、強(qiáng)大的開源編程語言

    在現(xiàn)代軟件開發(fā)領(lǐng)域,隨著應(yīng)用復(fù)雜度的不斷提升,開發(fā)人員對編程語言的需求也日益增長。GO編程語言,作為一種簡潔、高效且具備強(qiáng)大并發(fā)能力的新型開源編程語言,逐漸成為了許多開發(fā)者的首選。本文將詳細(xì)介紹GO語言在哪些項(xiàng)目開發(fā)中表現(xiàn)出色,以及為什么許多開發(fā)者

    2024年02月02日
    瀏覽(174)
  • 【編程語言 · C語言 · 函數(shù)指針】

    由于指針可以指向任何存儲器位置中的地址,因此它們也可以指向可執(zhí)行代碼的開頭。 函數(shù)指針或函數(shù)指針指向內(nèi)存中函數(shù)的可執(zhí)行代碼。函數(shù)指針可以存儲在數(shù)組中,也可以作為參數(shù)傳遞給其他函數(shù)。 函數(shù)指針聲明使用 * 就像使用任何指針一樣: (*func_name)? 周圍的括號很

    2024年02月10日
    瀏覽(26)
  • 介紹一些編程語言— Perl 語言

    Perl 是一種動態(tài)解釋型的腳本語言。 最初的設(shè)計(jì)者為拉里?沃爾,它于 1987 1987 1987 年 12 12 12 月 18 18 18 日發(fā)表。Perl 借取了 C、sed、awk、shell scripting 以及很多其他編程語言的特性。其中最重要的特性是他內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫 CPAN。 1987 1987

    2024年02月12日
    瀏覽(28)
  • 介紹一些編程語言—C語言

    介紹一些編程語言—C語言

    C 語言是一門 面向過程 的計(jì)算機(jī)編程語言,與 C++、C#、Java 等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。 C語言描述問題比匯編語言迅速、工作量小

    2024年02月13日
    瀏覽(32)
  • Go語言網(wǎng)絡(luò)編程(socket編程)WebSocket編程

    WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議 WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù) 在WebSocket API中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸 需要安裝第

    2024年02月09日
    瀏覽(93)
  • Go語言網(wǎng)絡(luò)編程(socket編程)http編程

    Web服務(wù)器的工作原理可以簡單地歸納為 客戶機(jī)通過TCP/IP協(xié)議建立到服務(wù)器的TCP連接 客戶端向服務(wù)器發(fā)送HTTP協(xié)議請求包,請求服務(wù)器里的資源文檔 服務(wù)器向客戶機(jī)發(fā)送HTTP協(xié)議應(yīng)答包,如果請求的資源包含有動態(tài)語言的內(nèi)容,那么服務(wù)器會調(diào)用動態(tài)語言的解釋引擎負(fù)責(zé)處理“

    2024年02月09日
    瀏覽(95)
  • 【編程】C++語言編程規(guī)范-2

    結(jié)合C++ Effective系列參考樹、尤其是工程經(jīng)驗(yàn)教訓(xùn)的總結(jié)。 并發(fā) 除非必要,盡量少用線程。 多線程編程要守護(hù)好內(nèi)存,使用atomic、mutex、condition variable、future、semaphore、latch、barrier等同步機(jī)制避免數(shù)據(jù)競爭。 盡量縮小臨界區(qū),臨界區(qū)指獨(dú)占的資源,禁止其他線程訪問變量的代

    2024年02月21日
    瀏覽(28)
  • 【編程語言 · C語言 · for語句】

    【編程語言 · C語言 · for語句】

    C語言中,使用for語句也可以控制一個(gè)循環(huán),并且在每一次循環(huán)時(shí)修改循環(huán)變量。在循環(huán)語句中,for語句的應(yīng)用最為靈活,不僅可以用循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況。 for 語法: 執(zhí)行for語句時(shí),程序首先計(jì)算第一個(gè)表達(dá)式

    2024年02月08日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包