從零開始學習思維鏈:讓AI更聰明的技巧

閱讀時間約 8 分鐘

別再只會亂下Prompt了啦!學會思維鏈(Chain Of Thought),不論你的工作是軟體工程師、PM,掌握思維鏈都能大幅增加你的生產力,而且有機會能解構複雜問題,把大問題拆解成小問題再逐一擊破!

我們都知道大型語言模型可能會有幻覺的問題,常常是在一本正經的說幹話,但你知道其實有一種技術,可以在不改變模型參數量的前提下增強模型的推理能力,避免大多數的幻覺問題,一說幹話就有可能被你馬上發現,而且方法非常簡單!今天要來深入解析思維鏈(Chain of Thought)的技術。讓讀者一文搞懂這個神奇又簡單的技術。

等待模型輸出的時候你是不是也既期待也怕受傷害,其實你的prompt寫得好不好,對模型的輸出有巨大影響,欠萬不能小看Prompt的重要性,只要在你的prompt最後面加上"Think step by step"就能讓模型的推理能力瞬間提升喔!

什麼是提示工程(Prompt Engineering)

提示工程是我們在使用生成式人工智慧時,除了直接告訴AI我們的問題與想要的結果以外,另外對AI進行引導。本質上生成式人工智慧是根據你的Prompt,透過機率選出下一個最有可能出現的詞,所以提示工程就是有系統的設計我們的Prompt去引導AI給出我們想要的結果。

思維鏈(Chain Of Thought)的核心概念

思維鏈(CoT)是 Prompt Engineering 的一種技巧,思維鏈是一種專門用來處理需要多步驟推理的複雜問題提示設計方法。讓 AI 在回答問題時,逐步展開自己的推理過程,而不是直接跳到最終答案。

想像一下,你問一個數學問題:「一個籃子裡有3個蘋果,後來又放進去2個,現在有幾個?」如果直接回答,AI 可能會說:「5個。」 但如果用 CoT 方法,AI 會這樣回答: 「籃子裡原本有3個蘋果,後來又放進去2個蘋果。3加2等於5,所以現在有5個蘋果。」

這種方式就像是讓 AI 把腦子裡的計算過程用語言表達出來。

別急著走開,讓我們看看一些實驗數據

光是嘴上說說思維鏈多厲害好像不夠有說服力,讓我們來看看數據吧!

在Chain-of-Thought Prompting Elicits Reasoningin Large Language Models論文中,作者們用GSM8K這個數據集,GSM8K是高品質數學推理數據集,主要用於訓練和評估人工智慧模型在數學問題解決上的能力。該數據集包含多個日常生活相關的數學問題,能夠測試模型的邏輯推理與計算能力。而PaLM是Google開發的大型語言模型,我們可以看到採用思維鏈後,模型的答對機率提升很多。


raw-image


值得注意的是,思維鏈在越大的模型上表現得更好,見下圖

Y軸為模型能力,X軸為模型參數量,參數量越大時模型能力提升更多


raw-image


最新的GPT-4 o1 Performance

最新發表的GPT-4 o1 就是內部採用了思維鏈與其他技術,大幅增強了模型面對複雜問題的推理能力,連OpenAI都在採用Chain Of Thought增強他們的模型,你就知道這個方法有多強大了吧!接下來我們來看看實驗數據。


raw-image

註:同一個問題,分別測試只問一次、64次、1000次,取最優回答作為最終答案。

AIME(美國奧數選拔賽的數學題)

  • 1次:74%(11.1/15分)
  • 64次:83%(12.5/15分)
  • 1000次:93%(13.9/15分)
  • 這個成績足以進入全美前500名


GPQA Diamond(博士生級別的物理、化學和生物問題)

  • 超越了人類博士的表現
  • 1次:77.3%(答題正確率)
  • 64次:78%(答題正確率)
  • 在物理學科表現特別突出,達到92.8%的正確率


程式能力表現

raw-image

在資訊奧林匹亞競賽中,原本的gpt4o排名PR11,經過思維鏈調整過後的o1排名PR89


為什麼 CoT 很重要?提供了什麼價值

  1. 提升準確性: 通過將複雜任務分解為小步驟,確保模型按邏輯順序思考,減少遺漏重要中間步驟的可能性。特別適用於數學問題解決、數據分析等多步驟推理任務。
  2. 減少偏見: 要求模型提供透明的推理步驟,有助於及早發現和糾正偏見假設。這在法律推理、金融預測等領域特別重要,能產生更公平、平衡的結果。
  3. 類人決策過程: 模仿人類的思維方式,按步驟處理問題,使決策過程更容易理解。對商業分析、戰略規劃等需要理解決策原因的領域特別有用。
  4. 減少幻覺: 通過確保每個推理步驟的邏輯一致性,降低模型產生錯誤或不相關信息的可能性。這對醫療保健、法律分析等高風險領域尤為重要。
  5. 領域適應性強: 可以靈活應用於各種領域,從簡單的數學問題到複雜的文本和圖像任務,在 AI 輔導、法律研究、醫療診斷等領域都能發揮作用。


什麼時候應用思維鏈才有用?

應用思維鏈有三個前提,只有這三個假設同時被滿足時,使用思維鏈技巧才會有顯著的效益提升(推理能力的提升)。

  1. 你的問題足夠複雜,需要多步驟推理
  2. 模型的參數夠多(參數在100B以上時,才會有顯著的效果)
  3. 增加模型參數對表現沒有明顯提升時


如果你只是對模型提問很簡單的問題,用思維鏈不會提升表現。這個部分應該蠻直觀的,大型語言模型面對簡單的問題時,實驗表明證明了即使不需要多步驟推理模型的表現就很好了。


思維鏈的特性與優勢

  1. 思維鏈允許模型將複雜問題分解為多個步驟,透過拆解成多步驟,可以視情況為特別複雜的某步驟分配額外的運算資源。
  2. 思維鏈打開了黑盒子,展示模型的推理過程,讓我們可以基於專業知識與常識判斷模型是否產生幻覺。
  3. 思維鏈推理可用於數學應用題、常識推理和符號操作(symbolic manipulation)等任務,理論上可以適用於任何人類可以通過語言解決的任務。
  4. 只要在prompt中加上一些額外的簡單提示,就能夠在現有大型語言模型內引導模型使用思維鏈的推理方式。




總結

希望讀者看完這篇文章,在你下prompt的時候可以多想一下,要應用思維鏈不難,以Zero-Shot Chain of Thought來說,只要在你的prompt最後那邊加上"Think step by step"模型就會自動應用思維鏈的方法輸出答案了。如果你手上已經有一些範例了,你可採用Few-Shot Chain of Thought,給他幾個你自己的範例,模型的輸出會更好。


參考資料:

  1. https://openai.com/index/learning-to-reason-with-llms/
  2. https://yourgpt.ai/blog/general/chain-of-thought-prompting?t
  3. Chain-of-Thought Prompting Elicits Reasoningin Large Language Models
  4. https://aws.amazon.com/what-is/prompt-engineering/
avatar-img
15會員
8內容數
大家好我是Gary,這裡是一個分享投資理財、程式語言、個人成長、心靈健康、讀書心得的地方。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Gary的小小宇宙 的其他內容
2024年10月的某個深夜,我讀到了一篇文Leopold Aschenbrenner寫的文章Situational Awareness,我深感震撼,只花了一個夜晚,我的認知被顛覆了。這篇文章不需要大量的知識儲備,只要認真看完一定能感受到要是我早點看到就好了!秉持著這個想法,我打算寫一系列相關的文章。
一、開場:軟體開發的困境 在當今數位時代,軟體開發已經成為推動科技進步的核心力量。然而,傳統的軟體開發過程卻面臨著諸多挑戰:需要設計師規劃系統、程式師編寫代碼、測試工程師進行測試,這種多方協作不僅耗時,還常常因為溝通不良導致效率低下。更重要的是,每個開發階段都使用不同的技術工具,造成整個開發流程支
2024年10月的某個深夜,我讀到了一篇文Leopold Aschenbrenner寫的文章Situational Awareness,我深感震撼,只花了一個夜晚,我的認知被顛覆了。這篇文章不需要大量的知識儲備,只要認真看完一定能感受到要是我早點看到就好了!秉持著這個想法,我打算寫一系列相關的文章。
一、開場:軟體開發的困境 在當今數位時代,軟體開發已經成為推動科技進步的核心力量。然而,傳統的軟體開發過程卻面臨著諸多挑戰:需要設計師規劃系統、程式師編寫代碼、測試工程師進行測試,這種多方協作不僅耗時,還常常因為溝通不良導致效率低下。更重要的是,每個開發階段都使用不同的技術工具,造成整個開發流程支
你可能也想看
Google News 追蹤
經過了一個週末伙伴們在群組問了剪輯的操作問題。覺得大家雖然不熟悉這個領域,但慢慢的進步很好。這幾天我也在思考跨部門合作的優點,設計層面我們提供基礎概念配合業務的專業知識與應對經驗,由於業務部更接近人群知道客戶的痛點,或許會發現我們看不到的層面。這樣互相分享各自的經驗,互相學習一起進步的氛圍,不管是個
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
許多人都會在遇到需要執行的事情,例如規劃任務、決定行程的時候直接動手進行,直接動手不能說錯,但是會容易失去方向,只知道要做這件事,但是如果不知道為何而做,或如何才能做到面面俱到。而這就有賴於不停地提問,先把問題列出來,用問題導向的方式完成任務,不論是問自己或問屬下,把所提的問題都能回答出來,才能在一
Thumbnail
專案工作型態很需要「溝通」,特別是每次交替時期需要與新的合作對象建立關係的時候,對方可能是你從不認識的同事或主管也可能是廠商。除非你是專職的專案經理,否則這種突然爆增的「初次溝通」聯繫的工作、會大量壓縮到你專案執行時間。在這種情況下要如何達到高效率的溝通,我們可以朝兩個面向來思考看看...
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
大部分企劃和PM的工作,完全可以被正確的溝通工具和扎實的寫作文化所取代。
Thumbnail
跟上第六屆曼陀號計畫主題講座啦!!(激動)這個講座真的超!級!讚! 身為PM總會有許多總會有許多臨時任務,或是各種文件資料需要歸檔,有時候不小心這些碎片就遺失在茫茫筆記海之中,但經過電腦玩物站長Esor老師的分析與步驟拆解,並套用在各種工作生活情境,瞬間解開自己長久以來的盲點跟困擾
這篇文章討論了「看清楚,想明白,做出來」這個簡單卻充滿啟發性的思考方式,並探討了在工作與人生中應用這種思維的重要性。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
經過了一個週末伙伴們在群組問了剪輯的操作問題。覺得大家雖然不熟悉這個領域,但慢慢的進步很好。這幾天我也在思考跨部門合作的優點,設計層面我們提供基礎概念配合業務的專業知識與應對經驗,由於業務部更接近人群知道客戶的痛點,或許會發現我們看不到的層面。這樣互相分享各自的經驗,互相學習一起進步的氛圍,不管是個
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
許多人都會在遇到需要執行的事情,例如規劃任務、決定行程的時候直接動手進行,直接動手不能說錯,但是會容易失去方向,只知道要做這件事,但是如果不知道為何而做,或如何才能做到面面俱到。而這就有賴於不停地提問,先把問題列出來,用問題導向的方式完成任務,不論是問自己或問屬下,把所提的問題都能回答出來,才能在一
Thumbnail
專案工作型態很需要「溝通」,特別是每次交替時期需要與新的合作對象建立關係的時候,對方可能是你從不認識的同事或主管也可能是廠商。除非你是專職的專案經理,否則這種突然爆增的「初次溝通」聯繫的工作、會大量壓縮到你專案執行時間。在這種情況下要如何達到高效率的溝通,我們可以朝兩個面向來思考看看...
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
大部分企劃和PM的工作,完全可以被正確的溝通工具和扎實的寫作文化所取代。
Thumbnail
跟上第六屆曼陀號計畫主題講座啦!!(激動)這個講座真的超!級!讚! 身為PM總會有許多總會有許多臨時任務,或是各種文件資料需要歸檔,有時候不小心這些碎片就遺失在茫茫筆記海之中,但經過電腦玩物站長Esor老師的分析與步驟拆解,並套用在各種工作生活情境,瞬間解開自己長久以來的盲點跟困擾
這篇文章討論了「看清楚,想明白,做出來」這個簡單卻充滿啟發性的思考方式,並探討了在工作與人生中應用這種思維的重要性。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。