# 提示工程技巧統整:從Thinking Claude看如何優化模型思維與回答 約兩個月前,一個名叫 Thinking Claude 的 System Prompt竄紅,目前在Github上的星星數高達了13.4k(對比一下,llama3的Github為27.9k),原因為其對於可以輸出Claude的思考流程,類似於GPT-o1的行為,並且能達成許多原先無法做到的任務。儘管對於其是否能讓claude 3.5接近o1的性能有待驗證。但其中也依然有許多我們可以學習的地方,包含了多個提示工程技術(Prompt Engineering)的結合與運用,以及Prompt設計的小技巧,以下將整理它所展示的關鍵概念、優點與可學習之處。 <figure style="text-align: center;"> <img src="https://hackmd.io/_uploads/rkiDq97vkg.png" alt="描述文字"> <figcaption style="font-size: small; font-style: italic;">Thinking-Claude的github庫</figcaption> </figure> 關於完整的Prompt大家可以點進這個Github連結進去看: [連結(進去後點選model_instructions資料夾內即可看到各個版本的prompt)](https://github.com/richards199999/Thinking-Claude.git) --- ## 1. 多步驟思考與分階段推理 ### 1.1 拆解式思維框架 整個 prompt 將「思考過程」切分成多個階段(如 initial_engagement、problem_analysis、multiple_hypotheses_generation… 等),讓模型在回答之前循序漸進地完成不同任務: - **先理解問題** - **再分析可能解決路徑** - **最後驗證與輸出** **優點**: 1. 能幫助模型更有條理地產生想法,降低「一段文字一氣呵成」的混亂度。 2. 讓模型在思考過程中更容易發現不一致或漏洞,並主動修正。 ### 1.2 Chain-of-Thought (CoT) 思維鏈 雖然沒有直接標示「CoT」,但從 prompt 的結構可看出連續、循序推理的痕跡。它引導模型「逐步解題、逐段推敲」,這本質上就是 **CoT** 的概念: - 在回答前先理出思路,再產出最終結論。 - 提升複雜問答的準確度。 <figure style="text-align: center;"> <img src="https://hackmd.io/_uploads/BJtvr27PJe.png" alt="描述文字"> <figcaption style="font-size: small; font-style: italic;">思維鏈與少樣本提示詞的比對範例</figcaption> </figure> >注意: 在應用思維鏈時,需要先行了解對於該問題的邏輯推理流程,以及如何將該問題拆分成小問題,如果流程編寫錯誤的話,反而會對模型造成誤導。 --- ## 2. 自我檢查 (Self-Consistency) Self-Consistency 方法從語言模型中提取多條不同的推理路徑,從而生成多種可能的思維鏈。然後,通過綜合這些思維鏈來尋找最可能的答案。此策略建立在一個觀點之上:**那些需要深度分析的困難問題通常具有更多的推理方式,從而增加找到正確答案的可能性。** <figure style="text-align: center;"> <img src="https://hackmd.io/_uploads/Bye8GnmwJx.png" alt="描述文字"> <figcaption style="font-size: small; font-style: italic;">Self-Consistency方法包含三個步驟:(1) 使用思維鏈 (Chain-of-Thought, CoT) 提示來提示語言模型;(2) 將 CoT 提示中的「貪婪解碼」替換為從語言模型的解碼器中採樣,以生成多樣化的推理路徑;(3) 對推理路徑進行邊緣化處理,並通過選擇最一致的答案來聚合最終的答案集。</figcaption> </figure> 將這段敘述用簡單點解釋就是,加入一些推理範例和多次的輸出採取出現次數最高的解答。那在這個 Thinking Claude 的 Prompt 設計中,也加入了許多的思考流程輸出範例,引導模型在產生結果的同時,進行「邏輯一致性」的檢查。例如: - 反覆檢驗自己的假設(testing_and_verification) - 發現矛盾後調整思維(error_recognition_correction) 幫助減少模型的幻覺(hallucination)以及產生錯誤答案的可能性。這與 **Self-Consistency** 的技術類似。多次嘗試推理路徑,選取最合理的解答。 --- ## 3. 思考流程(Thinking)與最終回答(Response)分離 Prompt 特別指示模型要將思考內容與最終回覆分開,將Inner Monologue(自我溝通)做隱藏。 - **思考過程**:僅供模型在「腦內」推敲,不直接顯示給使用者。 - **最終答案**:條理清晰地呈現給用戶。 **好處**: 1. 讓模型能自由試錯、調整思路,最後再將反覆思考後**思維方式**輸出給使用者。 2. 用戶能得到更精煉、條理的回答。 > **注意:** 雖然提示詞中要求模型「對思路做調整和發現矛盾後調整思維」,但實際上模型在生成時並不會對**已經生成的內容**做任何的調整。他不會因為覺得前面的內容是錯的,於是就把整個生成的內容全部打掉重練(當然,在系統的設計上是可以簡單的達成這件事情,但這邊就不是我們主要探討的內容了)。不過這句話還是有它的價值在的。因為他能引導模型仔細地進行思考,並且在多次的對話當中,能對先前的思考內容做出調整。 --- ## 4. 對話式與人性化引導 在 `<natural_discovery_flow>` 與 `<authentic_thought_flow>` 等段落,看得出它要求模型用自然口吻自我對話,如「Hmm... let me think...」,並逐步記錄想法遞進。 - **這種對話式思考** 能讓回答更貼近日常交流,若在產品中,需要較「擬人化」的模型互動,頗具參考價值。 --- ## 5. Prompt 設計理念與學習重點 1. **多階段提示** - 在提示中建立一整套「從理解到驗證」的流程化框架,而非一次性給出所有指令。 - 模型收到指令後就能依照分階段流程思考,減少答非所問、跳步等情況。 2. **強調驗證、誤差修正** - 給模型空間多次檢查自己的推論,並嘗試「修正」先前的錯誤假設。 - 大型模型容易受先入為主或上下文偏誤影響,這種多次驗證能大幅降低失誤。 3. **清晰區隔「思考」與「最終輸出」** - 能避免模型把雜亂的過程直接呈現給用戶,也避免外界對模型中間結論的誤解。 - 如果需要提供「解題過程」的可解釋性,可以在部分情境下有選擇地展示,但依賴同樣的基礎架構。 4. **人性化與偵探式的語氣** - 使用更貼近人類思維的語助詞,能讓答案更生動,但要注意場景是否合適。 - 在商業應用中,有些領域可能需要更正式的語氣,就可依需求調整對話風格。 --- ## 6. 如何透過這個 Prompt 概念,提升自己的 Prompt Writing 1. **導入多階段思路** - 給模型下指令時,先明確列出「理解問題 → 拆解需求 → 建立假設 → 驗證 → 輸出」等階段。 - 避免讓模型只進行單次直接回答,提高它思考深度。 補充: 在寫Prompt時要思考,並且建議可以使用html或是markdown語法做分級分層。 ``` # 任務內容 # 情境 # 角色 # 流程 # 預期成果 # 目的 # 輸入與輸出範例 ``` 2. **插入驗證步驟** - 在提示中鼓勵模型檢查矛盾、檢視多種路徑,如「請確定答案是否自洽,如果發現錯誤請修正」。 - 有助於在應用中減少簡單出錯。 3. **思考/回答分離** - 適用在需要「簡潔回答」給用戶的場景,但背後仍要做嚴謹推理。 - 若要展示中間推理,可考慮只展示精華版,而非全部流程。 4. **善用語氣與風格** - 若產品定位是「聊天機器人」或「教學助理」,可加強對話式思維引導; - 若是商務、法務等嚴肅場合,則可調整提示內容更正式或高度結構化。 --- ## 7. 結論 這份 Prompt 展現了**引導大型語言模型進行多階段、深度思考**的典範; 其核心要點包含: - **Chain-of-Thought 思路** - **自我一致性檢查** - **隱藏的思考區與公開的最終答案** - **口語化與偵探式引導** 若想加強自己在提示工程上的能力,可以參考該 Prompt 的分段架構與思維模式,並根據自身需求做裁減或調整。通過將「先思考,後輸出」的理念有效落實在 Prompt 中,可顯著提升大型語言模型在複雜任務上的表現與邏輯嚴謹度,也同時為使用者帶來更高的可用性與信賴感。 ## 參考文獻與資料: Jason Wei et al. (2023). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. Xuezhi Wang et al. (2023). Self-Consistency Improves Chain of Thought Reasoning in Language Models. Richards Tu (2024). Thinking-Claude [GitHub連結](https://github.com/richards199999/Thinking-Claude)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up