全球专业中文经管百科,由121,994位网友共同编写而成,共计436,139个条目

提示工程

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

提示工程(Prompt Engineering)

目錄

什麼是提示工程[1]

  提示工程(Prompt Engineering)是一種針對預訓練語言模型(如 GPT),通過設計、實驗和優化輸入提示詞來引導模型生成高質量,準確和有針對性的輸出的技術。

  提示工程本質上來說,也是一種人機交互的方式,提示詞就是我們發給大模型的輸入(指令),大模型根據指令,結合自身預訓練的 " 知識 ",輸出指令相關的內容。而大模型輸出結果的好壞,和我們輸入的指令息息相關。

  我們把經過無數書籍預訓練的大模型,看作是一位飽讀天下詩書的智者,那麼如何通過高質量的提問,引導大模型生成我們想要的輸出,就成為一件非常有意義的事情。

提示工程的分類[2]

  從不同的視角, 可以對Prompt 進行不同的分類。在這裡,嘗試根據可解釋性、交互方式和應用領域三個方面對Prompt 進行分類。

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

  硬提示(hard prompt )是手工製作的、預定義的帶有離散輸入標記的文本,或者文本模板。靜態提示可以合併到程式中用於編程、存儲和重用,基於大模型的應用程式可以有多個提示模板供其使用。

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

  建立在LangChain 之上的基於大模型的 很多應用程式,其提示模板在很大程度上是靜態的,它指示代理執行哪些操作。一般來說,模板包括: 定義了可以訪問哪些工具,何時應該調用這些工具,以及一般的用戶輸入。

  軟提示(soft prompt )是在提示調優過程中創建的。與hard prompt 不同,軟提示不能在文本中查看和編輯,包含一個嵌入或一串數字,代表從大模型中獲得知識。軟提示缺乏軟可解釋性。人工智慧發現與特定任務相關的軟提示,但不能解釋為什麼它。與深度學習模型本身一樣,軟提示也是不透明的。軟提示可以替代額外的訓練數據,一個好的語言分類器軟提示有幾百到幾千個額外的數據點。

  提示微調包括了在使用 LLM 之前使用一個小的可訓練模型。小模型用於對文本提示進行編碼並生成特定於任務的虛擬令牌。這些虛擬令牌被預先追加到Prompt上並傳遞給 LLM。調優過程完成後,這些虛擬令牌將存儲在一個查找表中,併在推斷期間使用,從而替換原來的小模型。當提供上下文時,LLM 的表現要好得多,而且提示微調是一種快速有效的方法,能夠以動態地創建急需的上下文。

  2、交互方式分類:線上提示和離線提示

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

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

  離線提示(Offline prompt )是預先準備好的提示,通常在用戶與模型的實際互動之前創建。這種提示在沒有用戶互動時預先設計和輸入,然後整批輸入模型進行批量處理。在離線文本生成、文章寫作、大規模數據處理等應用中常見。

  對提示分類為 "online" 或 "offline" ,可幫助確定如何有效地使用提示,以滿足不同應用的需求。線上提示通常用於需要實時交互和即時反饋的情況,而 離線提示則適用於需要大規模處理或預生成文本的情況。根據具體應用和使用情境,您可以選擇適當的提示類型。

  3、應用領域分類

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

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

  Text Generation (文本生成):這些 prompt 用於指導模型生成文本,可能是文章、故事、評論等。用途包括創意寫作、內容生成、自動摘要等。

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

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

  Programming and Code Generation (編程和代碼生成):這些 prompt 用於生成電腦程式代碼或解決編程問題。用途包括編程輔助、自動化代碼生成等。

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

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

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

  通過將 prompt 分類為不同的用途,可以更好地理解模型如何應用於各種任務和情境。這有助於選擇合適的提示類型,並設計它們以滿足特定需求。

提示工程中的提示詞[1]

  提示詞一般有以下要素組成:

  角色:大模型定義一個匹配目標任務的角色。用一句話就可以明確它的角色(比如 " 你是一位淘寶客服 "),從而有效的收窄問題域,減少二義性,讓 " 通用 " 瞬間變得 " 專業 "。

  指示:對具體任務進行詳細描述。

  上下文:給出與任務相關的其它背景信息(如歷史對話、情境等)。

  例子:舉例很重要,就像是師傅教學之後,需要給徒弟(大模型)演示一下如何操作,這個手把手的操作,是大模型生成輸出時的一個重要參考,對輸出結果有很大幫助。

  輸入:任務的輸入信息,最好在提示詞中有明確的 " 輸入 " 標識。

  輸出:輸出的格式描述,比如用郭德綱的語氣、輸出不超過十個字、以 JSON 格式返回結果等。

  而高質量的提示詞一般是具體的、豐富的、少歧義的,也就是說,我們雖然要把大模型當人來交流,但是儘量少用 " 口語 " 的方式來溝通,而要用 " 寫信 " 的方式,因為口語大多是即興的、碎片化的短語,而寫信則需要描述背景、避免歧義、短話長說,很符合優秀提示詞的特點。

  大家可以將以下兩句提示詞輸入到大模型中,對比一下輸出的效果:

  1、請幫我提供每天的菜單

  2、你是一名營養家,請為我提供每天三頓飯的中式菜單建議,一人份,包括早餐、午餐和晚餐。請確保每道菜都是偏辣口味,並儘量使用新鮮的食材。在健康營養方面,請確保每餐都包含適當的蛋白質、碳水化合物、脂肪以及維生素和礦物質。同時,請確保菜單中的菜品易於製作,烹飪時間不要過長。

參考文獻

本條目對我有幫助0
MBA智库APP

扫一扫,下载MBA智库APP

  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

陈cc.

評論(共0條)

提示:評論內容為網友針對條目"提示工程"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号