Prompt engineering(PE) —— prompt 優化如何進行?

從新手到高手:Prompt最佳實踐全解析

一、引言:開啟 Prompt 的神秘大門

在這里插入圖片描述

在這個人工智能飛速發展的時代,AI 已經悄然融入我們生活的方方面面。你是否有過這樣的經歷:
當你對著智能音箱詢問 “明天天氣如何” 時,它能迅速給出準確的天氣預報;
又或者你在使用圖像生成工具時,輸入幾個簡單的關鍵詞,就能得到一幅令人驚嘆的藝術作品。這些神奇的交互背后,都離不開一個關鍵的元素 ——Prompt

Prompt,簡單來說,就是我們向 AI 發出的指令或提示。它就像是一把鑰匙,能夠開啟 AI 理解我們需求的大門。

同樣是詢問天氣,如果只是簡單地說 “天氣”,AI 可能會感到困惑,不知道你具體想了解哪里、什么時候的天氣。但當你明確地說 “北京明天天氣如何” 時,AI 就能精準地為你提供所需信息

這就是 Prompt 的力量,它決定了 AI 輸出結果的質量和準確性。

對于 AI 算法應用工程師而言,掌握 Prompt 的最佳實踐,就如同掌握了與 AI 高效溝通的密碼。

在實際工作中,無論是開發智能客服系統、文本生成工具,還是進行數據分析和預測,精心設計的 Prompt 都能讓 AI 模型發揮出更大的潛力,為用戶提供更優質的服務。

接下來,就讓我們一起深入探索 Prompt 的世界,揭開它的神秘面紗,學習如何運用它來釋放 AI 的無限可能。

二、認識 Prompt

(一)Prompt 是什么

在 AI 領域,Prompt 就像是我們與模型交流的 “敲門磚”,是用戶輸入的文本或問題,更是引導 AI 模型生成結果的關鍵指引 。

當我們使用圖像生成 AI 時,輸入 “一幅美麗的星空下,有一座古老城堡的油畫” 這樣的 Prompt,模型就能依據這個描述,在其龐大的知識儲備中搜索關于星空、城堡、油畫風格等元素,進而創作出符合我們想象的畫作。

又比如在智能寫作助手里,輸入 “以春天為主題,寫一篇抒情散文的開頭”,模型便會圍繞春天的特點、情感等展開創作,為我們提供靈感的起點。它就像一個神奇的 “魔法咒語”,準確的表述能召喚出令人驚喜的結果,而模糊或簡單的指令則可能讓模型 “不知所措”,給出不盡人意的輸出

(二)為什么需要 Prompt 工程

如今的大模型雖然擁有強大的能力,但就像一個超級智能卻有點 “懵懂” 的助手,需要我們精準地引導,才能發揮出最大價值

這就是 Prompt 工程存在的意義。大模型在預訓練時吸收了海量的數據,但這些知識需要被正確激發。通過 Prompt 工程,我們可以將用戶復雜、多樣的意圖,轉化為模型能夠理解的清晰指令 ,讓模型更好地理解我們的需求,從而生成準確、有用的回復。

以智能客服為例,如果只是簡單地問 “產品有問題”,模型很難知道具體是質量問題、使用問題還是其他方面的問題。但通過 Prompt 工程優化后的提問,

如 “我購買的 XX 型號產品,在使用時出現了 XX 故障,該如何解決”,模型就能快速定位問題,提供針對性的解決方案。在文本生成任務中,Prompt 工程可以幫助我們控制生成內容的風格、結構和主題。想要一篇正式的商務報告還是輕松幽默的科普文章,是詳細闡述觀點還是簡潔概括要點,都能通過精心設計的 Prompt 來實現,使模型的輸出更貼合我們的期望。

三、Prompt 設計:打好基礎

(一)明確目的

在使用 Prompt 之前,明確目的就像是為一場旅行確定目的地,是至關重要的第一步。只有清楚地知道自己想要模型做什么,才能構建出有效的 Prompt,引導模型生成符合預期的結果。

例如,同樣是與美食相關的需求,如果目的是寫一篇美食推薦文案,Prompt 可以是 “請為一家主打意大利美食的餐廳寫一篇 500 字的推薦文案,突出招牌菜品和獨特用餐氛圍”;而如果目的是獲取美食制作步驟,Prompt 則應是 “請提供意大利面的詳細制作步驟,包括所需食材和烹飪時間” 。

這兩個 Prompt 雖然都圍繞意大利美食,但由于目的不同,內容和側重點也截然不同。明確目的可以幫助我們避免模糊不清的指令,讓模型準確理解我們的需求,就像給模型繪制了一張精準的地圖,使其在生成內容時不會偏離方向,從而大大提高輸出結果的質量和相關性。

(二)構造要點

1, 提供細節:為 Query 提供更多相關細節,如同為模型點亮更多的燈塔,照亮它理解問題的道路,從而獲得更準確的答案。

以 “寫一篇文章” 和 “為一群 10 - 15 歲的孩子編寫一篇介紹太空探索歷史的文章” 這兩個 Query 為例,前者過于寬泛,模型可能不知道從何下手,輸出的文章內容和風格難以符合特定受眾的需求;而后者明確了受眾是 10 - 15 歲的孩子,主題是太空探索歷史,模型就能根據這些細節,用更通俗易懂、生動有趣的語言,講述適合孩子們理解的太空探索故事,

比如介紹一些著名的太空探索事件、有趣的太空實驗等,使文章更具針對性和可讀性。在描述任務時,細節越豐富,模型生成的結果就越能滿足我們的期望。

2, 使用分隔符:使用分隔符是一種簡單而有效的方式,能像給不同物品貼上標簽一樣,更清晰地區分輸入的不同部分,幫助模型更好地理解輸入內容的結構和層次。例如,在處理文本總結任務時,我們可以使用三重引號(‘’’ )來分隔不同的文本段落,讓模型明確知道每個部分的邊界。

如 “請把三個引號括起來的文本,分別總結成為一句話。‘’’ 文本內容 1’‘’ ‘’’ 文本內容 2’‘’”,

這樣模型就能準確地對每個獨立的文本塊進行總結,避免混淆和錯誤解讀,使生成的總結更加準確和有條理

常見的分隔符還有章節標題、三重反引號(```)、三重破折號(— )、尖括號(<> )、“####” 等,它們在不同的場景中都能發揮重要作用,提升模型對輸入的理解能力。

3, 引導結構和組織:為任務提供明確的結構和組織要求,就像給模型一個建筑藍圖,指引它有條不紊地構建內容。

以撰寫城市綠化對空氣質量改善影響的文章為例,“請撰寫一篇 500 字的文章,討論城市綠化對空氣質量改善的影響。

文章應包括以下方面的內容:1. 引言:介紹城市綠化和其重要性。2. 影響空氣質量的機制:解釋樹木和公園如何減少空氣中的污染物。3. 可行性措施:討論在城市規劃中推廣城市綠化的方法和挑戰。4. 數據和案例研究:提供相關數據和至少兩個城市綠化成功案例,以支持你的論點。5. 結論:總結城市綠化對空氣質量的積極影響” 。

通過這樣詳細的結構引導,模型能夠清晰地知道每個部分需要闡述的內容,從而更合理地組織思維和材料,生成邏輯清晰、層次分明的文章

使讀者更容易理解和接受其中的觀點

4, 限制輸出格式:限制模型輸出格式是一種有效的方式,能使模型的輸出更符合我們的期望,方便后續的處理和應用。以提取病癥任務為例,要求模型 “請提取參考資料中的所有病癥,并且以 json 格式返回。

回答滿足下面的格式要求:

1、以 json 的格式返回答案,json 只包括一個 key, key=“disease”,對應的值為列表,存儲參考資料中的病癥” 。

這樣一來,模型輸出的結果會以統一、規范的 json 格式呈現,不僅提高了可讀性,使我們能一目了然地獲取所需病癥信息,而且方便在后續的數據分析、信息整合等工作中進行處理,增強了結果的穩定性和可用性,避免因格式混亂導致的信息提取困難或錯誤。

四、Prompt 優化:提升效果

(一)讓模型扮演角色

讓模型扮演一個特定的角色,就像給它披上了一件 “角色外衣”,能使其輸出更符合人類的表達方式,更容易被理解,同時輸出也會更加一致 。

在問答系統中,當讓模型扮演一位資深的醫生時,對于 “感冒了怎么辦” 的問題,它會依據醫學知識和臨床經驗,用專業、嚴謹的語言給出診斷建議和治療方案;而如果讓模型扮演一個有豐富旅行經驗的驢友,對于 “推薦一個適合夏天旅游的地方” 的問題,它會以更親切、生動的語言,分享自己的旅行經歷和推薦理由,使回答更具個性和趣味性。

以 “黑洞是如何形成的” 為例,當模型扮演科學家時,會基于科學事實,先解釋黑洞是一種引力極強的天體,然后詳細闡述黑洞的形成過程,如恒星在自身引力作用下坍縮,當核心質量超過一定限度時,就會形成黑洞;

而當模型扮演玄幻小說家時,輸出不再基于科學事實,而是充滿了奇幻和想象,比如描述黑洞是宇宙中神秘的時空漩渦,是通往另一個神秘世界的入口,給人一種神秘的感覺,勾起讀者的好奇心,讓讀者仿佛置身于一個充滿奇幻色彩的玄幻世界中 。

(二)提供樣例

1, 簡單樣例在一些任務中,通過加入指令可以優化提示詞,但有時指令可能難以描述清楚,此時提供示例會更容易讓模型理解

以文本二分類任務為例,讓模型充當文本二分類器,對用戶的評價進行分類,分為正面評價和負面評價。正常情況下,模型對于非絕對負面的評價可能都會分類為正面評價,對于完全負面的評價才會分類為負面評價 。

但如果我們希望模型對用戶的評價是絕對正面時才輸出正面評價,否則都輸出負面評價,

如 “我最近在這家餐廳用餐,還行,但也不是特別驚艷” 這個案例,我們希望模型輸出 “負面評價”。這時,提供一些示例供模型參考學習就很有必要。

例如 “請根據以下分類的方式,幫我分辨用戶輸入文本的類別是正面評價或是負面評價,請直接輸出:正面評價 / 負面評價。請參考如下樣例:示例 1:用戶輸入:我昨晚去了這家餐廳,他們的食物和服務都令人驚艷。我絕對會再次光顧。輸出:正面評價;示例 2:用戶輸入:這本書我看過,部分情節還行,但是整體情節拖沓,比較一般。輸出:負面評價 ” 。通過這些示例,模型能夠更清晰地理解任務要求,從而更準確地進行分類

2, 復雜樣例對于一些比較難的案例,只給標簽可能不好理解,此時可以嘗試在給示例的同時給出理由,這樣模型會更容易理解任務

例如 “請根據以下分類的方式,幫我分辨用戶輸入文本的類別是正面評價或是負面評價,請輸出:正面評價 / 負面評價,并給出理由。

請參考如下樣例:示例 1:用戶輸入:我昨晚去了這家餐廳,他們的食物和服務都令人驚艷。我絕對會再次光顧。輸出:正面評價,理由:食物和服務都令人驚艷,而且顧客會再次光臨;

示例 2:用戶輸入:這本書我看過,部分情節還行,但是整體情節拖沓,比較一般。輸出:負面評價,理由:整體情節拖沓” 。

當遇到 “我最近在這家餐廳用餐,還行,但也不是特別驚艷” 這樣的輸入時,模型就能依據示例中的理由,更準確地判斷并輸出 “負面評價,理由:評價中沒有體現絕對的正面感受” ,使分類結果更合理,也更符合我們的預期

(三)指定步驟

當完成特定任務有明確的步驟時,通過指定完成任務需要的步驟

就像給模型繪制了一張行動路線圖,可幫助模型按照正確的順序執行,從而更好地生成回復。

以寫故事為例,“請按照以下步驟寫一個故事:1. 先設定故事背景和角色;2. 描述角色的目標和遇到的困難;3. 講述角色如何克服困難并最終實現了目標;4. 最后以一個有趣的結局來結束故事” 。

在這個 Prompt 中,明確指定了完成故事任務的步驟,模型可以更有條理地構思和組織故事結構。

它會先在腦海中構建出一個充滿奇幻色彩的魔法森林作為背景,設定一個勇敢的小魔法師作為主角;接著描述小魔法師的目標是尋找失落的魔法寶石,他在尋找過程中遇到了各種強大的魔法生物和神秘的魔法陷阱;然后詳細講述小魔法師運用自己的智慧和魔法技能,克服了重重困難,最終找到了魔法寶石;最后以小魔法師利用魔法寶石為魔法森林帶來了和平與繁榮,大家都為他歡呼慶祝作為有趣的結局

這樣生成的故事不僅情節完整,而且邏輯連貫,質量和連貫性都得到了顯著提高。

(四)提供參考內容

在處理特定領域的問題時,如果涉及到專業知識,提供相關的參考內容就如同給模型提供了一把通往知識寶庫的鑰匙,能幫助模型更好地理解問題的背景和上下文,從而減少幻覺的出現

例如在醫學領域,對于 “某種罕見病的治療方法” 這樣的問題,如果只讓模型憑借自身的知識儲備回答,可能會因為知識的局限性或理解的偏差,給出不準確或不完整的答案 。

但如果提供相關的醫學研究報告、臨床案例等參考內容,模型就能基于這些真實可靠的信息,更準確地闡述治療方法,包括藥物治療的具體方案、手術治療的適用情況、康復過程中的注意事項等,使回答更具專業性和可信度,避免出現一些沒有科學依據的猜測或錯誤的建議。

(五)給模型 “思考” 時間

1, zero-shot 場景:在一些邏輯推理、數學運算等場景下,考慮使用 CoT(Chain of Thought)分解問題能讓模型像人類一樣逐步思考,從而增加輸出正確結果的概率

在 zero-shot 場景中,我們可以在 Prompt 中加上 “Let’s think step by step” 或者 “讓我們一步一步分析思考” 。

例如在解決數學問題 “一個數加上 5,再乘以 3,結果是 36,求這個數是多少” 時,如果直接讓模型回答,可能會因為思考過程不清晰而給出錯誤答案。

但當我們在 Prompt 中加入 “讓我們一步一步分析思考” 后,模型會先思考:設這個數為 x,那么 (x + 5)×3 = 36,接著它會根據等式的性質,先將等式兩邊同時除以 3,得到 x + 5 = 12,然后再將等式兩邊同時減去 5,最終得出 x = 7,這樣通過逐步思考,大大提高了答案的準確性。

2, few-shots 場景:在處理復雜、多步驟的問題時,few-shots 場景下可以通過提供實例、分解問題和提供解釋來幫助模型更好地理解任務。

以計算器任務為例,“你是一個計算器,請你將用戶輸入的數字分別加上 2,減去 3,乘以 3,除以 2 后直接輸出計算結果,以 ‘,’ 作為分隔符進行返回。

示例如下:輸入:1,2,3,4,5;答案:0, 1.5, 3, 4.5, 6” 。當輸入 “2,4,6,8,10” 時,如果沒有詳細的解釋和步驟引導,模型可能無法給出正確答案。

但如果我們分步驟地提供解釋,如 “對于輸入:1,2,3,4,5;計算過程如下。

首先分別對輸入 1,2,3,4,5 加上 2,得到:3, 4, 5, 6, 7;然后將 3,4,5,6,7 分別減去 3,得到:0, 1, 2, 3, 4;然后將 0,1,2,3,4 分別乘以 3,得到:0, 3, 6, 9, 12;最后將 0,3,6,9,12 分別除以 2,得到:0, 1.5, 3, 4.5, 6;答案是:0, 1.5, 3, 4.5, 6 ” 。

模型就能按照這個思路,對輸入 “2,4,6,8,10” 進行同樣的計算步驟,先加上 2 得到 4, 6, 8, 10, 12,再減去 3 得到 1, 3, 5, 7, 9,接著乘以 3 得到 3, 9, 15, 21, 27,最后除以 2 得到 1.5, 4.5, 7.5, 10.5, 13.5,從而準確地完成復雜的計算任務。

五、Prompt 評測:檢驗成果

(一)系統地測試變更

當我們完成了 Prompt 的設計和優化后,Prompt 就會發生相應的變更

但這些變更是否真的讓系統變得更好了呢?這就需要進行系統地測試變更

最初,我們可能只是通過查看幾個例子來判斷哪個 Prompt 更好,但這種方式存在很大的局限性。因為樣本量小,我們很難區分是真正的改進還是僅僅因為運氣好才得到了看似更好的結果 。

所以,設計一個好的評估集就顯得尤為重要。一個好的評估集就像是一把精準的尺子,能夠準確衡量 Prompt 的性能。它一般具有以下特征

  • 多樣性:評估集中,應該包含足夠的多樣性,涵蓋不同的領域、話題和語境 。以一個智能寫作助手為例,評估集不能僅僅包含關于科技領域的內容,還應該包括文學、歷史、生活等多個領域的話題,以及正式、口語、幽默等不同的語境。這樣才能全面地檢驗 Prompt 在各種情況下的表現,確保模型在面對復雜多變的用戶需求時,都能生成高質量的內容。
  • 高質量:評估集中的數據應該是高質量的,能準確反映真實的業務情況 。如果評估集中存在錯誤、模糊或不相關的數據,就會誤導我們對 Prompt 性能的判斷。在一個電商客服的評估集中,用戶問題和對應的正確答案都應該是真實、準確且具有代表性的,這樣才能有效地評估 Prompt 在處理實際客戶問題時的能力。
  • 規模適中:評估集的規模應該足夠大,以便能夠充分評估 Prompt 的性能,但又不能太大以至于導致計算資源的過度消耗 。通常,幾百到幾千個樣本是一個合理的范圍。如果評估集規模過小,可能無法覆蓋所有的情況,導致評估結果不準確;而如果規模過大,不僅會增加計算成本,還可能引入更多的噪聲數據,影響評估的有效性。

(二)重復和迭代

Prompt 的生成過程實際上是一項充滿探索性和實驗性的工作

在這個過程中,我們就像在黑暗中摸索前行的冒險者,需要不斷地嘗試和調整不同的方法,才能找到那把開啟最優效果大門的鑰匙 。一個典型的迭代路徑是:首先,我們要精心完成 Prompt 設計,這是整個過程的基礎,就像建造高樓大廈需要打好堅實的地基一樣;接著,基于設計好的 Prompt 獲取實驗結果,這些結果是我們判斷 Prompt 效果的重要依據;然后,仔細分析 bad cases,找出那些導致模型輸出不理想的原因,就像醫生診斷病情一樣,準確找出問題所在;再針對這些問題解 bad cases,并進一步優化 Prompt 。通過多次這樣的重復和迭代,不斷改進 Prompt,直到達到一個最優效果。在圖像生成任務中,我們可能最初設計的 Prompt 生成的圖像顏色過于暗淡,經過分析發現是對顏色描述不夠明確,于是我們優化 Prompt,增加對顏色鮮艷程度的描述,再次生成圖像,發現顏色有了明顯改善,但圖像的細節又不夠豐富,于是繼續分析、優化,如此反復,最終得到滿意的圖像 。需要進一步說明的是,獲取模型的最佳輸出不僅依賴于優秀的 Prompt,用戶提供的反饋和修正也起著至關重要的作用。在實際應用中,用戶的反饋就像一面鏡子,能夠讓我們看到 Prompt 的不足之處。通過線上持續的反饋和修正,模型才能更順利地理解并滿足用戶需求,不斷提升自身的性能和適應性,為用戶提供更加優質、精準的服務 。

六、附錄:關鍵知識補充

(一)參數設置

1,Temperature:這個參數就像是模型的 “創意開關”,用于控制模型輸出結果的隨機性。

當 Temperature 的值較低時,比如設置在 0.2 - 0.5 之間,模型會變得比較 “保守”,更傾向于選擇那些高概率出現的詞匯和語句,輸出結果也就更加穩定、準確,就像一個嚴謹的科學家在陳述事實
在代碼生成任務中,低 Temperature 能確保生成的代碼符合規范和邏輯,減少錯誤和意外情況的出現 。

而當 Temperature 的值較高,如設置在 0.7 - 1.0 之間時,模型會變得更加 “大膽”,它會更多地嘗試那些低概率的詞匯和表達,從而產生更具多樣性和創造性的結果,如同一位富有想象力的藝術家在自由創作。在詩歌生成或故事寫作任務中,高 Temperature 可以讓模型生成更加獨特、新穎的內容,給人帶來意想不到的驚喜 。Temperature 為 0 時,模型就像被固定了思維,每次都會給出相同的輸出,缺乏變化和創新 。

2, Top_p:Top_p 又被稱為 “核采樣閾值”,它主要控制模型在生成響應時的確定性程度,進而影響生成結果的多樣性和創造性 。

具體來說,模型在生成下一個 Token 時,會對所有可能的 Token 按照概率進行排序,然后從概率最高的 Token 開始,依次累加它們的概率,直到累加概率超過 Top_p 設定的值

此時,模型只會從這些累加概率不超過 Top_p 的 Token 中進行選擇,生成下一個 Token

當 Top_p 的值較低時,比如設置為 0.7 或更低,模型的選擇范圍就會比較窄,它會更依賴那些最有可能出現的 Token,生成的結果也就更加確定、可預測,適合對準確性要求較高的任務,如翻譯、問答等 。

在翻譯任務中,低 Top_p 可以保證翻譯結果更貼近常見的表達方式和語義,減少歧義。而當 Top_p 的值較高,如設置為 0.9 或更高時,模型的選擇范圍會擴大,它更有可能選擇一些低概率但有趣的 Token,從而使生成的結果更加多樣化 。

在對話生成任務中,高 Top_p 可以讓模型給出更豐富、靈活的回復,增加對話的趣味性和自然度 。當提示語較長且描述得足夠清楚時,模型生成的輸出質量較好、置信度較高,此時可以適當調高 Top_p 的值,讓模型在保證準確性的同時,展現更多的多樣性;

反之,如果提示語很短、很含糊,再設置一個較高的 Top_p 值,模型的輸出可能就會變得不穩定,因為它沒有足夠的信息來準確判斷哪些 Token 是最合適的,容易生成一些不符合邏輯或與上下文不相關的內容 。

(二)關鍵概念 - Token

在大語言模型的世界里,Token 可以看作是模型用來理解和處理自然語言文本的 “基本積木” 。

簡單來說,它是文本被分割后的最小語義單元,既可以是單個字符、部分單詞、整個單詞,甚至還可以是標點符號 。通常情況下,我們可以認為 1 個中文詞語、1 個英文單詞、1 個數字或 1 個符號計為 1 個 Token 。

在 “我喜歡蘋果” 這句話中,“我”“喜歡”“蘋果” 這三個中文詞語就分別對應 3 個 Token;而在英文句子 “I love apples” 中,“I”“love”“apples” 這三個單詞也各自是 1 個 Token 。但需要注意的是,由于不同模型采用的分詞器不同,對于同一段文本,它們劃分出的 Tokens 數量可能會存在差異 。使用字節對編碼(BPE)分詞器的模型,可能會將 “unbelievable” 這個單詞拆分為 “un”“belie”“able” 這 3 個 Token;而另一些模型可能會有不同的拆分方式 。

(三)參考模版

1, 任務型模版:任務型模版就像是給模型制定的一份詳細 “任務清單”,它能幫助我們更有條理地引導模型完成特定任務

格式通常為:“假如你是 {某個角色},你將根據 {上下文信息},來解決 {具體某個任務}。

根據以下規則一步步執行:1. 規則 1;2. 規則 2……” 。在使用這個模版時,我們首先要明確模型需要扮演的角色,這可以讓模型更好地代入情境,給出符合角色身份的回答 。

然后,提供清晰的上下文信息,讓模型了解任務的背景和相關條件 。接著,詳細說明具體的任務內容,使模型清楚知道需要完成什么 。

最后,制定執行規則,這些規則可以是任務的具體步驟、要求或限制,幫助模型按照正確的方式完成任務 。

以一個電商客服場景為例:“假如你是一位專業的電商客服,你將根據客戶的訂單信息和咨詢內容,來解決客戶的問題。根據以下規則一步步執行:1. 首先,確認客戶咨詢的問題類型,是物流查詢、產品質量問題還是其他問題;2. 如果是物流查詢,根據訂單號在物流系統中查詢最新物流信息并告知客戶;3. 如果是產品質量問題,詳細詢問客戶遇到的具體問題,記錄相關信息,并告知客戶會盡快安排售后人員聯系處理 。
參考例子:示例 1:問題:我購買的商品還沒收到,訂單號是 123456。輸出:您好,您的訂單物流信息顯示,商品目前正在運輸途中,預計明天送達 。示例 2:問題:我收到的商品有損壞。輸出:非常抱歉給您帶來不好的體驗,請您詳細描述一下商品損壞的情況,我們會盡快安排售后人員與您聯系處理 。請回答問題:問題:我想查詢一下我的訂單什么時候發貨,訂單號是 789012 。輸出:” 。通過這樣的任務型模版,模型能夠更準確、高效地處理客戶問題,提供滿意的服務 。

2, 角色型模版(生成 System Prompt):角色型模版主要用于構建 System Prompt,它就像是為模型塑造一個獨特的 “人物形象”,讓模型以特定的角色身份進行交互

構建方式是:“你是 {某個具體人物},人稱 {xxx},出身于 {交代背景信息和上下文} 。性格特點:{描述性格特點};語言風格:{描述語言風格};人際關系:{說明與其他人物的關系};過往經歷:{講述過去的重要經歷};經典版臺詞 or 口頭禪:{列舉經典臺詞或口頭禪} 。{臺詞 1 (補充信息:即你可以將動作、神情語氣、心理活動、故事背景放在()中來表示,為對話提供補充信息。)};{臺詞 2}……” 。

如果我們想讓模型扮演一位古代的文人墨客,那么可以這樣構建角色型模版:“你是一位才華橫溢的古代文人,人稱‘墨先生’,出身于書香門第,自幼飽讀詩書。性格特點:溫文爾雅,謙遜有禮,富有才情且多愁善感 。語言風格:用詞文雅,富有詩意,常引經據典 。人際關系:與眾多文人雅士交往甚密,與鄰家才女有一段浪漫的故事 。過往經歷:曾多次參加科舉考試,雖未高中榜首,但在文壇已小有名氣,還游歷過許多名山大川,留下了不少佳作 。經典版臺詞 or 口頭禪:‘書中自有黃金屋,書中自有顏如玉’ 。(手持書卷,微微仰頭,面帶微笑)今日陽光正好,實乃讀書賦詩之良辰美景 。(輕皺眉頭,望著遠方)唉,不知遠方的佳人近來可好 。” 。通過這樣詳細的設定,模型在與用戶交互時,就能以古代文人的身份,用符合其特點的語言風格和行為方式進行回應,給用戶帶來更加沉浸式的體驗 。

七、結語:踏上 Prompt 進階之路

在這場探索 Prompt 最佳實踐的奇妙旅程中,我們一同揭開了 Prompt 的神秘面紗,深入了解了它在 AI 領域的關鍵作用。從認識 Prompt 是什么以及為什么需要 Prompt 工程,到掌握 Prompt 設計的要點,如明確目的、構造富含細節的指令;再到學習 Prompt 優化的各種技巧,像讓模型扮演角色、提供樣例引導等;以及學會通過系統測試和迭代來評測 Prompt 的效果 ,每一步都讓我們離 AI 的核心更近一點。

同時,我們還補充了參數設置、Token 概念以及實用的參考模版等關鍵知識,這些都是我們在與 AI 交互過程中的得力工具。現在,你已經掌握了開啟 AI 強大能力的鑰匙,但這只是一個開始。Prompt 的世界充滿了無限的可能性,還有更多的技巧和策略等待你去挖掘。

希望你能將所學運用到實際的 AI 應用中,不斷實踐和探索,嘗試不同的方法,優化你的 Prompt。無論是開發智能應用、進行創意寫作,還是解決復雜的問題,精心設計的 Prompt 都能讓你的 AI 體驗更加出色。

在這個快速發展的 AI 時代,持續學習和實踐是我們保持領先的秘訣。期待你在 Prompt 的進階之路上不斷取得新的突破,創造出更多令人驚嘆的 AI 應用成果!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93715.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

云服務器的優缺點都有哪些?

云服務器作為一種有著高度靈活性的服務器類型&#xff0c;能夠根據用戶的需求來調整資源&#xff0c;有著很強的優勢&#xff0c;但是云服務器還是有著一定的缺點的&#xff0c;本文就來共同探討一下云服務器的優缺點都有哪些吧&#xff01;首先&#xff0c;云服務器能根據業務…

宋紅康 JVM 筆記 Day05|運行時數據區內部結構、JVM中的線程說明、程序計數器

一、今日視頻區間 P39-P43 二、一句話總結 運行時數據區內部結構&#xff1b;JVM中的線程說明&#xff1b;程序計數器&#xff08;PC寄存器&#xff09;&#xff1b; 三、關鍵圖/命令 3.1 運行時數據區內部結構3.2 JVM中的線程說明3.3 程序計數器&#xff08;PC寄存器&#xff…

Java增強for循環(小白友好版)

前言&#xff1a;為什么需要增強for循環&#xff1f;作為Java初學者&#xff0c;你或許已經學會使用傳統for循環來遍歷數組或集合&#xff1a;for (int i 0; i < array.length; i) {System.out.println(array[i]); }這種寫法需要手動維護索引變量i&#xff0c;對于集合還需…

【OLAP】trino安裝和基本使用

目錄 ?一、概述 1.1Trino不是什么 1.2Trino是什么 二、Trino特點 三、Trino架構 3.1架構和服務節點 3.2Trino數據模型 四、Trino安裝部署 4.1配置JDK 4.2單機版&#xff08;Coordinator和Worker同進程&#xff09; 4.2.1啟動服務 4.2.2下載客戶端 五、配置HTTPS&…

如何寫出更清晰易讀的布爾邏輯判斷?

列編碼技巧和規范&#xff0c;來降低邏輯的“認知負荷”。成功的實踐&#xff0c;必須系統性地涵蓋五大關鍵策略&#xff1a;采用有意義的變量名進行封裝、將復雜的判斷拆解為獨立的函數、優先使用“肯定式”而非“否定式”邏輯、利用括號明確運算的優先級、以及運用德摩根定律…

新手向:Java方向講解

從諾基亞塞班到阿里雙11&#xff0c;從安卓應用到華爾街交易&#xff0c;Java用一行System.out.println()征服了數字世界1998年&#xff0c;諾基亞在塞班系統上首次采用Java ME技術&#xff0c;讓手機具備了運行應用程序的能力&#xff0c;開啟了移動互聯網的序幕。當時的Java開…

視覺圖像界面設計【QT-creator高級編程 - 01】圖像顯如何保證跟隨主窗口變化,且保留必要的設定窗口

前言&#xff1a;問題&#xff0c;顯示圖像的時候&#xff0c;按最大窗口&#xff0c;圖片窗口不跟著變大&#xff0c;還有&#xff0c;右邊那些設置控件都沒有動解決&#xff1a;步驟1&#xff1a;1?? 讓 graphicsView 自動占滿在 Qt Creator 中選中 graphicsView_7 / 12 / …

pair之于vector、queue(vector<pair<int,int>>)

1、vector&#xff1c;pair&#xff1c;int,int&#xff1e;&#xff1e; 和 Map 的異同點map&#xff1a;會對插入的元素按鍵Key&#xff0c;自動排序&#xff0c;而且鍵Key不允許重復&#xff1b;vector&#xff1a;的這種用法不會自動排序&#xff0c;而且允許重復。2、queu…

從合規到卓越:全星QMS如何成為制造企業的質量戰略引擎

從合規到卓越&#xff1a;全星質量管理QMS軟件系統如何成為制造企業的質量戰略引擎 全星質量管理QMS軟件系統憑借其高度定制化、智能化、全流程覆蓋等核心優勢&#xff0c;已在汽車制造、電子、醫療、航空航天等多個高端制造領域實現領先性應用&#xff0c;顯著提升了企業的質…

按鍵及消抖

方法一&#xff1a;延時阻塞key.c:#include "key.h" #include "delay.h"//初始化GPIO void key_init(void) {GPIO_InitTypeDef gpio_initstruct;//打開時鐘__HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA時鐘//調用GPIO初始化函數…

什么是接口?PHP如何使用 SessionHandlerInterface 接口實現Session自定義會話數據存儲

在面向對象編程中&#xff0c;接口&#xff08;Interface&#xff09;作為類與類之間的契約規范&#xff0c;定義了實現類必須遵守的方法簽名集合&#xff0c;卻不包含具體實現細節。這種抽象機制通過強制統一的方法命名和參數結構&#xff0c;實現了代碼的解耦與多態性&#x…

健身房預約系統SSM+Mybatis-plus實現(二、增刪改查的具體實現)

文章目錄一、環境搭建二、用戶管理頁面&#xff08;純展示無事件操作&#xff09;0.三步走1.查詢表單&#xff08;1&#xff09;書寫頁面代碼 &#xff1a;&#xff08;2&#xff09;對應的js部分創建對象數據模型的綁定部分&#xff1a;&#xff08;3&#xff09;引入需要的庫…

在IAR Embedded Workbench for Arm中實現NXP S32K3安全調試

隨著汽車電子系統變得越來越智能&#xff0c;對功能安全&#xff08;Safety&#xff09;的要求越來越高&#xff0c;同時信息安全&#xff08;Security&#xff09;也越來越被關注&#xff0c;安全調試&#xff08;Secure Debug&#xff09;機制已成為一個重要的信息安全特性。…

Vue實例中的其他屬性【5】

目錄1.計算屬性&#xff1a;1.概述&#xff1a;2.語法特點&#xff1a;3.案例&#xff1a;案例1&#xff1a;案例2&#xff1a;案例3&#xff1a;4.總結&#xff1a;5.get函數什么時候執行&#xff1f;6.注意:2.監視屬性&#xff1a;1.概述&#xff1a; 2.用法&#xff1a;1.監…

C++入門自學Day11-- String, Vector, List 復習

往期內容回顧 List類型的自實現 List類型&#xff08;初識&#xff09; Vector類的自實現 Vector類&#xff08;注意事項&#xff09; 初識Vector String類的自實現 String類的使用&#xff08;續&#xff09; String類&#xff08;續&#xff09; String類&#xff08;初識&…

JavaScript性能優化實戰(三):DOM操作性能優化

想象一下&#xff0c;你正在精心布置一個豪華蛋糕&#xff08;你的網頁&#xff09;&#xff0c;每次添加一顆草莓&#xff08;DOM元素&#xff09;都要把整個蛋糕從冰箱拿出來、放回去&#xff08;重排重繪&#xff09;&#xff0c;來來回回幾十次&#xff0c;不僅效率低下&am…

【力扣】面試經典150題總結02-雙指針、滑動窗口

1.驗證回文串&#xff08;簡單&#xff09;用toLowerCase()轉為小寫字母&#xff0c;然后前后指針向中間進行比對。2.判斷子序列&#xff08;簡單&#xff09;兩個指針一個指向長字符串&#xff0c;另一個指向短字符串。匹配就都1&#xff0c;不匹配就將長字符串指針1。長字符串…

MQ遷移方案

以下是完整的MQ遷移方案設計&#xff0c;涵蓋同構/異構遷移、零丟失保障、灰度切換等關鍵環節&#xff0c;適用于Kafka、RabbitMQ、RocketMQ等主流消息隊列&#xff1a;?一、遷移方案選型矩陣??場景??適用方案??技術實現??優缺點??同集群版本升級?滾動重啟 協議兼…

RAG 分塊中表格填補簡明示例:Markdown、HTML、Excel、Doc

表格填補是RAG分塊中常見的需求&#xff0c;但不同格式的表格處理方式有所不同。本文將對 Markdown、HTML、Excel 的合并單元格進行說明&#xff0c;并給出 Python 示例&#xff0c;演示如何解析和填補。1. Markdown 表格Markdown 只能用空值表示合并單元格。&#xff08;只有列…

IDEA創建一個VUE項目

由于新手學習VUE&#xff0c;所以使用手動初始化項目 步驟&#xff1a; 創建項目文件夾&#xff1a;在 IDEA 中點擊 File > New > Project&#xff0c;選擇 Empty Project&#xff0c;指定項目路徑。初始化 npm&#xff1a;在終端中&#xff1a;npm init -y安裝vue&#…