上一篇文章中,我們討論完一些 Prompt 的通用原則以後,那麼我們接下來要來談談 :
Prompting Techniques
它主要是專門針對一些類型的問題,所產生出的 Techniques,然後這個東西最早我是在下面這個網站看到的,我覺得很棒棒,它裡面有提到 18 種,這裡我們只會抓其中幾個最常用的認識一下。
https://www.promptingguide.ai/techniques
然後我還有發現到這篇論文,它裡面還有說的更多,有興趣的可以自已參考看看。
The Prompt Report: A Systematic Survey of Prompt Engineering Techniques
🤔 基本概念
重點很簡單,就是在 Prompt 中,加入少量 ( 這個少量的定義等等會談 ) 高品質的範例
這個 technique 看起來一直都很有用,尤其適合以下的情境 :
但太不適合
不過因為我們很多的工作,事實上也不太需要推理,所以這個方法也被我上一篇文章中,放入通用版本的 template,因為真的是很多的任務都可以用他來處理。
然後根據下面這篇論文中,它有提到 Few-Shot 的功效事實上很吃 Example,所以文中有幾個範例因素會影響到結果,如下,有興趣的可以自已點進去看看,裡面還有談到如何讓範例品質更好的一些方法,例如 KNN 還啥的,但我還沒看懂,就不談了,只要先知道有這個 keyword 就好。
The Prompt Report: A Systematic Survey of Prompt Engineering Techniques
🤔 Template 與 Example
## Instructions (明確指令)
- 學習以下的範例
- 回答實際的問題: "{問題}"
## Example
- Example 1
- Example 2
- Example 3
## Instructions (明確指令)
- 學習以下的範例
- 然後回答實際的問題: "人工智慧在醫療領域的最新應用這個是屬於那個類別"
## Example
標題:央行宣布調整利率政策
類別:財經
標題:新型疫苗研發取得重大突破
類別:健康
標題:NBA總冠軍賽精彩對決
類別:體育
🤔 基本概念
就是讓 LLM 先列步驟、再給結論,重點有點接近是引導模型思考的概念。
它的使用場境就是推理、規畫。
下面是 CoT 的論文給出來的範例,事實上很像我們上面提到的 Few-Shot,但差別在於它的範例會說出思考流程,如下圖藍色框框的地方。
The Prompt Report: A Systematic Survey of Prompt Engineering Techniques
圖片來源: The Prompt Report: A Systematic Survey of Prompt Engineering Techniques
對了還有一個重點,那就是這句話也可以讓很多 prompt 變成 CoT,就算沒有 example 也是 :
讓我們一步步思考 (Let's think step by step)
🤔 Template 與 使用的 Example
## Instructions (明確指令)
實際問題: "一家餐廳考慮是否要增加外送服務,如何評估這個決策?"
根據以下的流程來回答問題
- 學習以下的範例 Example。
- 然後回答回答實際的問題。
## Example
- Example 1 ( 範例也有引導思考 )
## Addition Requirements
- 讓我們一步步思考 (Let's think step by step)
## Instructions (明確指令)
實際問題: "所有的工程師都會寫程式碼,所以馬克會寫程式,他是工程師嗎 ? "
根據以下的流程來回答問題
- 學習以下的範例 Example。
- 然後回答回答實際的問題。
- 學習以下的範例
## Example
Q: 所有的貓都是哺乳動物。所有的哺乳動物都需要氧氣。小花是一隻貓。小花需要氧氣嗎?
A:
讓我逐步推理:
1. 前提 1:所有的貓都是哺乳動物
2. 前提 2:所有的哺乳動物都需要氧氣
3. 前提 3:小花是一隻貓
4. 從前提 1 和 3:小花是貓 → 小花是哺乳動物
5. 從前提 2 和步驟 4:小花是哺乳動物 → 小花需要氧氣
結論:是的,小花需要氧氣。
## Addition Requirements
- 讓我們一步步思考 (Let's think step by step)
🤔 基本概念
它事實上算是 CoT 的優化,主要就是總結多條 CoT 的結論,然後再生成最後答案。
如從原始論文中的圖片。
圖片來源: SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS
它事實上除了優化推理類型的問題,事實上也很適合需要多角度的決策,不論是商業、產品、法律判決,因為它有從不同角度來思考問題。
我自已挺愛這個方法的,相同問題,用不同的角度來尋找答案,先不論對於錯,但這個方法的確可以讓推理類型的問題有更多的可靠性,而且也會知識世界的運作不是只有一個角度,例如我下面這篇文章寫的『 事情的對與錯取決與你所站的位置、立場與角色 』,有興趣可以看看。
底層邏輯-看清這個世界的底牌 ( 1 ) — 2024-11 月書筆記
🤔 Template 與 使用的 Example
## Instructions (明確指令)
實際問題: "{問題}"
根據以下的流程來回答問題
- 使用不同角度來回答問題
- 最後根據這些回答,來產生最終答案
## Example
- 角度 1: Example 1 ( 範例也有引導思考 )
- 角度 2: Example 1 ( 範例也有引導思考 )
- 角度 3: Example 1 ( 範例也有引導思考 )
- 總結角度 1、2、3 後,我得出以下的結果。
## Addition Requirements
- 讓我們一步步思考 (Let's think step by step)
- 至少要有 3 種角度
## Instructions (明確指令)
實際問題: "一家餐廳考慮是否要增加外送服務,如何評估這個決策?"
根據以下的流程來回答問題
- 使用不同角度來回答問題
- 最後根據這些回答,來產生最終答案
## Example
Ans:
如果所有程式設計師都會數學,小王會數學,那麼小王是程式設計師嗎?
角度一(形式邏輯分析):
前提:所有程式設計師 → 會數學
已知:小王會數學
這是「肯定後件」的謬誤
不能從「A→B」和「B為真」推出「A為真」
結論:無法確定小王是程式設計師
角度二(集合論思考):
設 P = 程式設計師集合,M = 會數學的人集合
前提:P ⊆ M(P是M的子集)
已知:小王 ∈ M
但 M 比 P 大,會數學的人不一定是程式設計師
角度三(反例驗證):
會數學的人包括:數學家、工程師、會計師、學生等
小王會數學,但他可能是數學老師或工程師
不能僅從「會數學」推出「是程式設計師」
結論:無法確定小王是程式設計師
總結三種角度,得出的結論:無法確定小王是程式設計師
## Addition Requirements
- 讓我們一步步思考 (Let's think step by step)
- 至少要有 3 種角度
🤔 基本概念
它的重點在於 :
先請 AI 產生要回答的問題的相關知識後,再請它回答問題。
圖片來源: Generated Knowledge Prompting for Commonsense Reasoning
這個很適用於 :
🤔 Template 與 使用的 Example
## Instructions (明確指令)
實際問題: "{問題}"
根據以下的流程來回答問題
- 第一階段: 先產生相關的知識。
- 第二階段: 基於知識來分析問題。
- 第三階段: 再根據分析結果來回答實際問題。
## Example
- 第一階段: 產生知識 A、B、C。
- 第二階段: 基於知識 A、B、C。來分析問題。
- 第三階段: 再根據分析結果來回答實際問題。
## Addition Requirements
- 產生的知識,不超過 3 個角度,每個不超過 300 字。
- 分析時要說明原因。
## Instructions (明確指令)
實際問題: 為什麼日本戰國時代的關原之戰,最後是由德川家康勝利呢 ?
根據以下的流程來回答問題
- 第一階段: 先產生相關的知識。
- 第二階段: 基於知識來分析問題。
- 第三階段: 再根據分析結果來回答實際問題。
## Example
Q: "為什麼訂閱制商業模式在數位時代如此成功?"
- 第一階段: 產生知識
- 收入模式:預測性、穩定的現金流
- 客戶關係:長期客戶價值(LTV)概念
- 消費行為:從擁有轉向使用的心態變化
- 第二階段: 基於知識 A、B、C。來分析問題。
- 分析收入模式、客戶關係、消費行為對訂閱制的影響
- 第三階段: 根據這 3 者的分析,所以訂閱制在數位時代如此成功。
## Addition Requirements
- 產生的知識,不超過 3 個角度,每個不超過 300 字。
- 分析時要說明原因。
🤔 基本概念
它的核心概念讓 AI 先回答問題,再主動質疑和驗證自己的答案,通過自我糾錯提升準確性,主要是解決 Hallucination。
它適合一些答案會影響到很多成本的問題,例如很重大的商業決策、或是法律專業的部份。
然後整個流程可以參考從下面論文的圖來看。
Chain-of-Verification Reduces Hallucination in Large Language Models
圖片來源: Chain-of-Verification Reduces Hallucination in Large Language Models
🤔 範例
## Instructions (明確指令)
實際問題: "{問題}"
根據以下的流程來回答問題
- 第一階段: 初始嘗試回答。
- 第二階段: 生成驗證問題。
- 第三階段: 獨立驗證。
- 第四階段 - 修正答案。
- 最後再回答實際出實際的答案。
## Example
- 第一階段: 初始嘗試回答。
- 第二階段: 生成驗證問題。
- 第三階段: 獨立驗證。
- 第四階段 - 修正答案。
- 最後再回答實際出實際的答案。
## Addition Requirements
- 驗證問題用多個角度。
- 提到信心等級給最後的答案。
- 判斷是否需要查證更多資料或諮詢專家
## Instructions (明確指令)
實際問題: "判斷這個題目與答案,是否正確。 德川家康幼年時期曾被送往哪個大名家作為人質?
A) 織田家
B) 今川家
C) 武田家
D) 上杉家
參考答案: B) 今川家"
根據以下的流程來回答問題
- 第一階段: 初始嘗試回答。
- 第二階段: 生成驗證問題。
- 第三階段: 獨立驗證。
- 第四階段 - 修正答案。
- 最後再回答實際出實際的答案。
## Example
- 無
## Addition Requirements
- 驗證問題用多個角度。
- 提到信心等級給最後的答案。
- 判斷是否需要查證更多資料或諮詢專家
這個主要是根據這個網站抓取下來,然後簡單的請 AI 分類,可以參考看看,但詳細的東西請至網站內看。
備註: 放在這事實上是為了方便我查詢 ~ 方便 ~
https://www.promptingguide.ai/techniques
Technique | 核心概念 | 適用情境 |
---|---|---|
Zero-shot Prompting | 只用清楚的任務指令,無示例 | 基線效果、格式改寫、快速試探任務可行性 |
Few-shot Prompting | 放少量高品質示例,讓模型比照樣本完成同類任務 | 需要對齊風格/格式/步驟、隱性規則多的任務 |
Chain-of-Thought Prompting | 要求逐步思考,顯式列中間推理 | 數學/邏輯、多步規則判斷、多跳問答 |
Meta Prompting | 在提示中加入「如何寫好提示/評分規則」,用規則驅動輸出 | 長規格任務、需要一致性與可審核流程的產出 |
Self-Consistency | 生成多條獨立推理鏈,投票彙總 | 推理不穩定、答案敏感度高的題型(數理、邏輯) |
Generate Knowledge Prompting | 先生成中間知識/筆記,再根據其作答 | 背景知識稀疏、需要補齊世界知識再推理 |
Prompt Chaining | 任務拆成多步,每步有固定 I/O 契約串接 | 長文摘要、抽取→彙總→驗證、流程型任務 |
Tree of Thoughts | 分支探索多條思路,評估/回溯選最佳 | 複雜規劃、組合最佳化、解謎類問題 |
Retrieval Augmented Generation (RAG) | 先檢索相關文件片段再生成,降低幻覺 | 需要可引用來源的問答/摘要/比對 |
Automatic Reasoning and Tool-use | 讓模型自主規劃推理步驟並選用工具 | 需要查詢、計算、API/DB 操作的任務 |
Automatic Prompt Engineer (APE) | 自動搜尋/進化更佳提示模板 | 大量任務需要批量優化提示品質與穩定度 |
Active-Prompt | 以錯題/不確定案例為導向選示例,動態更新 few-shot | 持續學習場景、資料分佈不穩/長尾問題 |
Directional Stimulus Prompting | 以關鍵詞/標記/範式,定向模型朝某風格或維度輸出 | 控語氣、控制偏好/安全界線、風格遷移 |
Program-Aided Language Models (PAL) | 讓模型輸出程式碼,由執行結果輔助解題 | 精確計算、資料處理、表格/單位換算 |
ReAct | 交替「思考→工具動作→觀察→再思考」 | 多步檢索與工具串接、需要可追溯的行動日誌 |
Reflexion | 先出草稿再自評/批改,迭代改進 | 開放式寫作、規格產出、需要自查降低幻覺 |
Multimodal CoT | 在文字、圖片、表格等跨模態做逐步推理 | 視覺問答、圖表解讀、文件版面理解 |
Graph Prompting | 以節點/邊或圖結構引導推理與檢索 | 章節-概念關聯、時間線/因果/關係網路推理 |
這個章節我們學習了 5 個我自已比較常看到的 Prompt Techniques,然後我自已適用起來效果都算不錯 (主觀),而且我自已發覺在學習這種 Prompt Techniques 也很適合當成咱們人類在解決問題時的一種思考手法,學習到不少啊 ~
尤其是這兩個 :
這兩個真的很有收獲。