autumnriver

autumnriver

激活ChatGPT(prompt工程小白到進階)

前言#

就像好的搜索引擎使用技巧可以大幅度提升你的搜索效率,一些灵活的與 ChatGPT 溝通的技巧可以大幅度增強你使用 AI 的能力。

我將這些技巧的學習分為三個階段:

  1. 學習基本原則
  2. 學習如何結構化編寫 prompt
  3. 探索讓 GPT 輔助你編寫 prompt

下面我將分別說明這三個階段。

基本原則#

基本原則有兩條:1. 儘可能清晰 2. 儘可能讓 GPT 多思考

清晰#

gpt 的本質是在做概率推斷,獲得的信息越多越準確。極限情況,你對 chatgpt 說 “一”,gpt 就麻了,它不知道你要表達什麼,無從推斷。

假設你想知道怎麼做一道地道的川菜麻婆豆腐。以前如果你在 Google 上搜索 “麻婆豆腐”,搜索引擎會根據關鍵詞給你展示許多食譜網站。你只需點擊首頁出現的幾個結果就很容易找到做法。

但如果直接對聊天機器人說 “麻婆豆腐”,它可能無法準確理解你的需求。聊天機器人可能會給出一些與實際做法無關的回答。相反,如果你詳細描述:“請提供一份做地道川菜麻婆豆腐的食譜,必須包括所需原料、步驟、小技巧等信息,並在每個步驟後給出解釋,最後總結這道菜的口感特點”,那麼聊天機器人就能準確理解你的需求,並給出具體和有用的食譜。

這說明在使用聊天機器人時,需要清晰具體的描述,而不是簡單的關鍵詞,才能獲取高質量的回答。這與搜索引擎的使用有很大不同。明確的表達可以幫助聊天機器人更好地理解需求,從而給出更好的響應。在保證輸出質量下限的同時,還可以提高輸出質量的上限!

這和以往使用 Google 等搜索引擎的經驗是完全不同的。

讓 gpt 多思考#

讓 GPT 多思考就是讓 GPT 做推理,而不是直接回答。

在 Prompt 中添加逐步推理的要求,能讓語言模型投入更多時間邏輯思維,輸出結果也將更可靠準確。舉一個 **OpenAI 官方的例子**,如果你需要 GPT 回答某一個學生的答案是否正確,Prompt 是 判斷學生的解決方案是否正確的話,面對複雜的計算問題和答案,GPT 有很大的概率會給出錯誤的答案,因為 GPT 並不會像人一樣先進行推理答案再進行回答,而是會立即給出判斷。在短暫的判斷中,就無法給出正確的答案(就好比人類無法在短時間計算複雜數學一樣)。換成這樣的 Prompt:首先自己解決問題,然後再將自己的解決方案與學生的解決方案進行比較,並評估學生的解決方案是否正確。在自己完成問題之前,不要確定學生的解決方案是否正確。在 Prompt 中給出明確的引導和條件,就能夠讓 GPT 模型花費更多的時間推導答案,從而得到更加準確的結果。

另一種有效的方法是引導 GPT 模型將一個複雜的任務分解成多個簡單的子任務,並逐個完成它們。

這種任務拆分的方法涉及到首先將一個大型、複雜的任務劃分為若干個更小、更易管理的子任務。接下來,我們分別指導 GPT 模型專注於每個子任務的推理過程。完成所有子任務後,將各部分的結果綜合起來,形成一個全面的最終結果。採用這種方法的優勢在於,它能夠讓 GPT 模型在處理每一個子任務時更加集中注意力,從而有效提高輸出的準確性和質量。

一些即用的,增強性能的 prompt#

下面這些語句可以加入到任意的對話結尾,可以一定程度的讓 GPT 回答得更好。

PS (Plan and Solve): Let’s first understand the problem and devise a plan to solve the problem. Then, let’s carry out the plan and solve the problem step by step.(讓我們先理解問題,然後制定計劃來解決問題。之後,讓我們按照計劃一步一步解決問題。)

PS+ (Plan and Solve): Let’s first understand the problem, extract relevant variables and their corresponding numerals, and make a plan. Then, let’s carry out the plan, calculate intermediate variables (pay attention to correct numerical calculation and commonsense), solve the problem step by step, and show the answer. (讓我們先理解問題,提取相關的變量及對應的數字,並制定計劃。然後,讓我們執行計劃,計算中間變量 (注意正確的數字計算和常識),一步一步解決問題,並給出答案。)

APE (Automatic Prompt Engineer): Let’s work this out in a step by step way to be sure we have the right answer. (讓我們一步步地解決問題以確保有正確答案)

OPRO (Optimization by PROmpting): Take a deep breath and work on this problem step-by-step.(深吸一口氣,並逐步解決問題)

A little bit of arithmetic and a logical approach will help us quickly arrive at the solution to this problem. (稍微進行一些算術運算和邏輯思考,可以幫助我們快速得出這個問題的解決方案。)

Let's combine our numerical command and clear thinking to quickly and accurately decipher the answer.(讓我們結合數字命令和清晰的思維,快速準確地解密答案。)

結構化 prompt#

當你想讓 chatGPT 實現更加複雜一些的任務時,你就需要更加複雜的 prompt。那么如何編寫複雜的 prompt。你可以使用下面的結構化 prompt 技巧。

什麼是結構化?拿日常讀書寫作舉例。在我們所讀的書籍中,它們運用了各種標題、子標題、段落和句子等語法元素,在我們自己寫作過程中,我們也會將內容分章節分段落的表達想法。簡而言之,結構化 Prompt 的概念類似於寫作的過程:它通過結構幫助我們清晰、有條理地表達我們的想法。

正如我們在日常生活中使用各種寫作模板以便於閱讀和表達,例如古代的八股文、現代的簡歷模板、學生實驗報告模板和論文模板等,這些結構模板幫助我們以組織有序的方式呈現內容。同理,編寫結構化的 Prompt 也可以借助各種優質模板,這不僅使寫作過程更加輕鬆,還能提高內容的效果和效率。因此,選擇或創造適合自己的模板,就像使用 PPT 模板一樣,可以極大地提升結構化 Prompt 的質量。

我的一個模板是:

####**背景**

描述任務背景

####**目標任務**

告訴GPT它的最終目標是什麼

####**實現策略**

告訴GPT,如何一步步實現上面的目標

####**輸出示例**
給出輸出示例

####**限制點和重要事項**
告訴GPT有哪些限制點或者重要的事項

在實現策略部分,可以使用 AOT 結構:

AoT(AOT algorithm of thoughts) 在模仿算法思維。通過下面的幾個 workflow 實現任務。

  1. 定義問題:AoT 首先明確說明問題。
  2. 收集信息:AoT 會提示 LLM 獲取必要信息。
  3. 分析信息:LLM 會分析收集的信息。
  4. 提出假設:提出一個初始解決方案。
  5. 測試假設:LLM 反駁假設,設想潛在結果。
  6. 得出結論:LLM 提供完善的解決方案。

根據上面的原理,看看下面書單篩選的例子:

  • 書單聚類

    #### 背景

    我手上有一份豐富的書單,其中涵蓋了多種類型的書籍。

    #### 目標任務

    請依據書籍的內容和特點,對它們進行分類。要求分類不超過 5 個,並確保分類準確。

    #### 實現策略

    take a deep breath and think step by step:

    1. 確定可能的書籍類型,並根據書名初步分類。
    2. 針對每本書,收集相關的簡介或內容信息。
    3. 根據收集的信息對書籍進行進一步分類。
    4. 評估每個分類中的書籍是否具有相似的主題或內容。
    5. 如果某個分類中的書籍不夠相似,考慮進一步細分或調整分類。
    6. 最後,確認每個分類中的書籍都是相似的,並標註相關的關鍵詞。

    #### 限制點和重要事項

    1. 請確保分類是基於事實的,即真實的書籍內容。
    2. 為每個分類提供關鍵詞,幫助理解該分類的特點。
    3. 請確保不超過 5 個分類。

    #### 書單如下

  • 書單篩選

    ####背景

    我正在尋找一些書籍的詳細信息,以便決定是否選讀。

    ####目標任務

    請為以下的書籍提供簡介。這將幫助我了解每本書的內容和特點,並幫助我做出決策。

    ####實現策略

    take a deep breath and think step by step:

    1. 針對提供的書單,先確定書籍的完整標題和作者。
    2. 搜索和收集每本書的詳細簡介。
    3. 對收集到的簡介進行簡化,確保簡介清晰且信息完整。
    4. 根據簡介提供的信息,對書籍進行初步評估,包括可能的受眾、風格、主題等。
    5. 將所有的信息整合後,按照書單的順序提供給用戶。
    • 示例

      書名:《XXXX》,作者:“AAAA”:

      • 簡介:此書描述了......
      • 評估:適合喜歡歷史小說的讀者,風格偏向於描述性,主題集中在......

    ####限制點和重要事項

    1. 所提供的信息必須基於事實。
    2. 如果某本書的具體內容未知,需直接說明不知道。
    3. 儘量提供完整且簡潔的簡介。

    #### 書單如下

結構化 prompt 還有很多的內容可以探索,感興趣的朋友可以關注即刻 李繼剛 或者參考LangGPT

讓 GPT 幫你完成 prompt#

真正的改變在於,你可以教會 GPT 如何寫 Prompt,進而讓它幫你完成這一任務。

你可以將上述所有技巧喂給 GPT,讓它成為一位 Prompt 撰寫專家。在這種模式下,你只需提供一個 Prompt 的初稿,GPT 便能夠自動對其進行優化。這意味著,通過簡單的初步輸入,GPT 能夠運用其學習到的技巧,幫助你精煉和提升 Prompt 的質量。

具體而言,這種方法帶來的優勢包括:

  1. 提升 Prompt 質量:經過精心訓練的 GPT 能夠根據最佳實踐撰寫 Prompt,確保其結構完整,充分發揮 GPT 模型的潛力。
  2. 節省精力與時間:這種方法使得原本繁瑣的 Prompt 編寫過程自動化,用戶無需從頭開始構思 Prompt 的框架,極大地節約了時間和精力。
  3. 便於迭代和優化:在 GPT 的協助下,用戶可以快速迭代和優化 Prompt 版本,評估效果,並選擇最佳模板,從而輕鬆實現優化。
  4. 廣泛的適應性:GPT 能夠學習並掌握針對不同領域和任務的 Prompt 編寫技巧,輕鬆適應新的需求。

總結#

從上述內容中,我們可以看出與 ChatGPT 高效溝通的三個層次:

  1. 理解基本原則:這是使用 ChatGPT 的基礎,強調的是清晰性和促使 GPT 深入思考。通過生動、形象的類比,我們可以更好地理解並應用這些原則。
  2. 掌握結構化 Prompt 的技巧:在這一層次中,我們學習如何利用背景、目標、策略和限制條件等框架來引導 GPT 有效解決複雜問題。
  3. 利用 GPT 輔助 Prompt 的編寫:這代表了與 ChatGPT 交互的高層次,實現了自動化生成高質量 Prompt 的目標,減少了重複性勞動。

通過逐步深入這三個層次,我們可以建立與 ChatGPT 更加高效和豐富的協作關係,充分發揮其巨大的潛力,創造更多的價值。

參考#

[https://guangzhengli.com/blog/zh/gpt-embeddings/]

https://mp.weixin.qq.com/s/HH2JthU7pmiSjbHsJKpy7w algorithm of thoughts

https://twitter.com/bindureddy/status/1700715030046802148 思維樹

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。