# LLM COLLABORATIVE INTELLIGENCE: THE PATH TO ARTIFICIAL GENERAL INTELLIGENCE ## EDWARD Y.CHANG [第1章 人工智慧的簡史:從圖靈到變形模型](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/Hk_XGgt81e) [第2章 大型語言模型(Large Language Models, LLMs)的能力與機遇](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/H14XrxYUyl) [第3章 提示工程:Few-Shot、Chain of Thought 與 Retrieval-Augmented Generation](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/HymkilKL1l) [第4章 CRIT: 使用蘇格拉底式提問促進 LLM 的批判性思考](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/HkuqTgFUJx) [第5章 SocraSynth:對抗式多-LLM推理](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/BkKY7WKLyg) [第6章 EVINCE:透過條件式統計與資訊理論](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/SJx2qrrDyg) [第7章 揭示反思性大型語言模型中的錯誤與偏見](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/Sy7NuOjDJe) [第8章 多模態大型語言模型中的情感建模 ](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/BkgXfFoPJl)[第9章 一個三分支制衡框架,用於大型語言模型的情境感知倫理對齊](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/S1tp7toPyg) [第10章 超越計算: 意識建模](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/BJVUUFjDye) [第11章 回顧性與適應性框架 以改善大型語言模型](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/B1j46Zt8Jx) [ 第12章 發現洞見 超越已知 ](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/B1lVzY2wkl)[附錄 X1 蘇格拉底的箴言](https://hackmd.io/@4S8mEx0XRga0zuLJleLbMQ/Hym0J53vJe) # 第4章 CRIT: 使用蘇格拉底式提問促進 LLM 的批判性思考 ### 摘要 本章提出了一種系統化的方法,使用蘇格拉底式提問來開發與大型語言模型(如 GPT-3)有效交互的提示模板。本章探討了多種方法,並確定了能夠產生準確答案與合理解釋,同時促進創造力與想像力以增強創意寫作的有效技術。具體技術包括**定義(definition)**、**詰問(elenchus)**、**辯證(dialectic)**、**產婆術(maieutics)**、**泛化(generalization)**以及**反事實推理(counterfactual reasoning)**,並分析它們在提示模板設計中的應用及其與**歸納(inductive)**、**演繹(deductive)**和**溯因(abductive)推理**的聯繫。 通過示例展示了這些對話與推理方法的有效性。一個有趣的觀察是,在對話開始之前,若通過 ChatGPT 向 GPT-3 傳達任務目標與使用者意圖,該模型似乎能夠連接到意圖中表達的外部上下文,並執行得更為有效。 ### 4.1 簡介 Prompting 是一種技術,用於引導預訓練語言模型(例如 GPT-3 [2])生成輸出。這是通過提供問題或模板作為輸入來實現的,有助於生成特定的回應,如問答 (Q&A)、文件摘要和翻譯。隨著 ChatGPT [12, 23, 41] 的出現,這項技術在 NLP 領域取得了重大突破,展現了利用大型預訓練語言模型進行 Prompting 的潛力。儘管如此,當前的 Prompting 策略和技術仍有改進的空間,特別是在針對特定應用目標時。本研究探討了 Socratic Method(蘇格拉底方法)[42, 40],以辨識和評估潛在的 Prompting 策略,並利用研究成果設計有效的 Prompt 模板。 傳統的 NLP 任務包括多種子任務,例如命名實體識別 (Named Entity Recognition)、依存解析 (Dependency Parsing)、共指解析 (Coreference Resolution) [8] 和語義解析 (Semantic Parsing) [25, 9] 等,用於理解句子的含義。通過在大型語言模型(LLMs)中使用 Prompt 模板,可以將這些子任務委派給 LLM,從而使模板專注於對話設計。在這方面,Socratic Method [31] 具有重要意義,因其以提問 (Prompting) 作為促進批判性思考並深入探討複雜概念的手段而聞名 [11]。 Socratic Method 長期以來被認為是批判性思考的基石,但最近的研究對其實際應用的有效性提出了質疑。在其論文《Socratic Irony and Argumentation》中,Airaksinen [1] 批評該方法過於依賴教師和學生的固定角色,可能導致學生害怕未能達到教師的期望,從而不願參與。同樣地,Stoddard 在《The Use of Socratic Questioning in Clinical Teaching》[35] 中指出,該方法可能被不當使用,從而削弱學生的心理安全感。然而,當將 Socratic Method 應用於與 LLM 的對話中時,由於情感和諷刺的缺失以及能夠隨時停用模型,能有效減輕人際互動中的許多問題。 本研究首先概述了與 Socratic Method 相關的策略和技術。我們列出了十種常被引用的方法 [3],並通過假設排除法選擇了對開發 Prompt 模板最相關的幾種方法,包括 **Definition(定義)**、**Hypothesis Elimination(假設排除)**、**Elenchus(駁論法)**、**Dialectic(辯證法)**、**Maieutics(產婆法)**、**Generalization(概括)** 和 **Induction(歸納法)**。此外,我們還納入了 **Counterfactual Reasoning(反事實推理)**,這是一種邏輯概念,涉及考慮特定事件以不同方式發生時可能的結果。我們通過使用 GPT-3 的實驗來評估這些方法,並為將其納入 Prompt 模板提供建議。 在其著作《Critical Thinking: The Art of Socratic Questioning》中,Paul 和 Elder 將 Socratic Questioning 分為三種類型:**Spontaneous(自發性)**、**Exploratory(探索性)** 和 **Focused(專注性)** [27]。由於自發性提問類似於隨意對話,我們在此不進行討論。而專注性提問旨在獲取知識和真相,因此 **Definition(定義)**、**Elenchus(駁論法)**、**Hypothesis Elimination(假設排除)**、**Dialectic(辯證法)** 和 **Generalization(概括)** 方法非常適合開發有效的 Prompting 策略,並提升 LLM 的回應準確性。 值得注意的是,當使用者意圖在對話開始前於任務定義階段傳達給 GPT-3 時,LLM 似乎能連結到意圖中表達的外部語境,並表現得更有效(Table 4.6 提供了一個對話前熱身的例子,更多例子記錄於 [5])。此外,通過 **Maieutics(產婆法)**、**Induction(歸納法)** 和 **Counterfactual Reasoning(反事實推理)** 支持的探索性思維,可以引導 GPT-3 生成富有想像力和創意的文本。雖然 GPT-3 在探索中生成的許多建議可能並不實用,但一些獨特的「假設」式建議可以激發作者的想像力,產生出色的結果。 ### 本章主要貢獻: 1. 提供 Socratic Method 策略的概述,評估和選擇對開發有效 Prompt 模板最相關的方法。 2. 探討 **Definition(定義)**、**Elenchus(駁論法)**、**Hypothesis Elimination(假設排除)**、**Dialectic(辯證法)** 和 **Generalization(概括)** 如何通過澄清和驗證來提高輸出的準確性和簡潔性。 3. 說明 **Maieutics(產婆法)**、**Induction(歸納法)** 和 **Counterfactual Reasoning(反事實推理)** 如何促進生產性的概括和創意。 ### 4.2 相關研究 使用 **Transformer Architecture** [37] 和遮罩數據(Masked Data)進行大型語言模型(LLMs)的無監督預訓練,已成為自然語言處理(NLP)中的主要方法 [7, 20]。該方法通過在大規模文本語料庫上對 LLM 進行預訓練,然後再針對特定任務進行微調。 Prompting 作為一項創新技術,隨著 OpenAI 推出的 GPT-3(2020 年)而廣為人知。相比於針對特定任務進行微調,Prompting 是通過提供一個特定輸入(即「Prompt」)來引導 LLM 的輸出生成,從而以更高的靈活性和效率生成多樣化的回應。 然而,設計有效的 Prompt 模板仍然是一項挑戰 [22],這需要深入了解 LLM 與 Prompt 之間的交互作用。根據調查論文 [43],影響 Prompt 模板設計的因素包括 LLM 的類型、手動設計與自動化設計、以及靜態 Prompt 和連續 Prompt。 #### 主要因素: 1. **Left-to-right vs Masked LLMs** - **Left-to-right 模型**:對於生成相關任務,或使用標準的從左到右語言模型解決的任務 [2],前綴 Prompt 更具效果,因為其符合模型從左到右的特性。 - **Masked Language Models**:對於使用遮罩語言模型解決的任務 [7],填空型 Prompt(Cloze Prompts)更為適合,因其與預訓練任務的形式更為匹配。 2. **Manual vs Automatic Design** - **手動設計**:適合於初期流程設計階段,針對輸入與預期輸出之間的依賴關係進行設計。 - **自動化設計**:應用於挖掘依賴模式,並進行種子 Prompt 的改寫以支援多樣化模式 [16],儘管這可能導致錯誤 [13]。 3. **Discrete vs Continuous Prompts** - **離散型 Prompt**:為 LLM 提供一組固定的預先設定輸入選項。 - **連續型 Prompt**:涉及模型與用戶之間的對話,允許更具互動性和動態的體驗。 #### 高級模板設計 通過結合基本模板和技術(例如集成方法 [34]),可以構建更高級的模板。這些方法形成了一個基本模板組合委員會,通過不同表述方式提出相同問題 [14]。目前,大多數 Prompt 模板生成的輸出較短,例如類別標籤,或根據任務和輸入預測輸出的長度(如翻譯)。然而,對於可能生成較長或開放性輸出的任務,模板設計過程中需要額外考量。 一種生成較長輸出的方法是基於解釋的 Prompting,這在 Chain-of-Thought 方法中有所應用 [39]。此方法在推斷答案之前生成一系列解釋,但在處理簡單數學問題時,錯誤率高達 47%。為了解決基於解釋的 Prompting 的不一致問題,[17] 將該問題表述為一個可滿足性問題,推遲推斷,直到以反駁(Abduction)方式擴展並遞歸解釋的樹。然而,僅依賴於反駁推理通常被認為是薄弱、不連貫,甚至不存在的 [15, 32]。為了改善一致性,近期研究 [38] 通過增加多樣化的推理路徑並在其中執行多數投票來擴展 Chain-of-Thought 方法。儘管這種方法可被視為一種集成方法,但它並未改變反駁推理的本質。 相較之下,Socratic Method 通過運用 **Deductive(演繹推理)**、**Inductive(歸納推理)** 和 **Abductive Reasoning(反駁推理)** 來確保推斷的一致性與準確性。Socratic Method 涵蓋了批判性思考的各個方面,包括定義澄清和交叉檢驗。這種全面的方法有助於模板設計,從而提高輸出質量和一致性。 #### 本研究目標 本研究的主要目的是設計連續 Prompt,以提升回應質量並在生成任務中促進引導創意,例如驗證資訊、評估來源可信度、提出替代方案、推薦創作寫作中的情節構想,以及生成特定任務驚喜。我們將探討 Socratic Method 中的策略與方法,並選擇最相關的策略進行深入研究。 正如第 4.1 節所述,Socratic Questioning 可分為三種類型:**Spontaneous(自發性)**、**Exploratory(探索性)** 和 **Focused(專注性)** [27]。在設計 Prompt 時,考慮所屬類型並採用最適合的策略和技術,有助於達成最佳結果。 ### 4.3 蘇格拉底方法 蘇格拉底方法是一種以提問為核心的技術,常用於教學和哲學領域,用以促進批判性思考與自我發現 [40]。這種方法通過一系列問題探索複雜的想法,幫助個體形成對概念的深入理解。其理念基於知識並非由他人傳授,而是透過提問和對話的過程自行發現。 #### 蘇格拉底方法的核心原則和指導方針 - **開放性提問**:由教師或引導者以提問激發思考並引導想法。 - **澄清關鍵術語**:教師協助學生澄清和定義相關術語和概念,確保所有人理解一致。 - **提供範例與證據**:鼓勵學生通過範例和證據支持自己的主張。 - **挑戰推論與結論**:教師或引導者挑戰學生的推論,鼓勵其質疑自身信念並考慮替代觀點。 - **總結與結論**:協助學生從討論中總結並得出結論。 - **反思過程**:教師與學生共同反思方法的有效性以及透過對話學到的內容。 這些原則體現於多種策略與技術之中(此處的「方法」可同時指蘇格拉底教學的抽象層面以及其具體的提問技術)。一些著名的例子包括柏拉圖的《對話錄》和《理想國》 [42],其中蘇格拉底運用提問來探討複雜的思想並激發對話者的批判性思維。 #### 蘇格拉底方法的十種策略 1. **Definition**:透過定義澄清並解釋關鍵術語和概念的意義。 2. **Generalization**:從觀察和理論中總結出一般性原則,用於形成更具普遍性和確定性的結論。 3. **Induction**:基於經驗證據進行推論,雖然結論具有高度不確定性,但可用於生成假設。 4. **Elenchus**:進行交叉檢驗,通過一系列問題測試假設和信念的一致性與連貫性,旨在驗證或改進推論的有效性。 5. **Hypothesis Elimination**:通過反例和邏輯推理排除錯誤假設,與 Elenchus 不同,這一方法側重於將假設與證據和邏輯對照。 6. **Maieutics**:幫助個體挖掘自身已有的知識與理解,透過提問促進自我反思和創造性思考。 7. **Dialectic**:透過對話或辯論探索相對立的觀點,達成對主題的更深理解。 8. **Recollection**:基於知識是先天具備的假設,透過提問幫助個體回想其已知內容。 9. **Irony**:通過揭露無知與虛偽,指出主張與真實理解之間的差距。 10. **Analogy**:通過類比比較不同的概念,以幫助理解複雜的想法。 #### 策略之間的比較與應用 乍看之下,某些推理方法可能看似相似。例如,**Induction** 和 **Generalization** 都使用歸納推理,而 **Elenchus** 和 **Hypothesis Elimination** 都使用演繹推理。然而,這些方法各自的應用背景和目標有所不同,本章稍後將詳細討論。 在批判性思維的應用中,**Definition**、**Elenchus**、**Dialectic**、**Hypothesis Elimination** 和 **Generalization** 發揮了積極作用。而在頭腦風暴或創造性思維的場景中,**Maieutics**、**Induction** 和 **Counterfactual Thinking** 更為相關。 **Irony** 和 **Analogy** 對語言模型的工作不具必要性,因為這些模型可能無法正確理解比喻性語言。而 **Recollection** 的應用則受限於 GPT-3 和 ChatGPT 的上下文窗口記憶容量(分別為 4k 和 8k tokens),因此提問者必須在有限的上下文中引導語言模型回憶相關信息。 ### 4.3.1 範例:批判性閱讀 為了展示這些方法的實際應用,我們以批判性閱讀作為例子。批判性閱讀是批判性思維的重要組成部分,涉及對書面材料的質量和可信度進行評估,從研究論文到部落格文章皆包含在內 [19, 26]。這需要一種系統性和分析性的方式,通過提出相關問題以及使用有效的提示來加深對文本的理解 [11]。 #### CRIT 模板 為協助批判性閱讀,我們引入一個名為 **CRIT (Critical Reading Inquisitive Template)** 的模板 [5]。給定一份文檔 \(d\),CRIT 通過評估它生成一個驗證分數 \(Γ\)。讓我們定義 \(Ω\) 為文檔的結論或主張,並設 \(R\) 為支持該主張的一組理由。我們進一步定義 \( (\gamma_r, \theta_r) = V(r ⇒ Ω) \),其中 \( \gamma_r \) 表示驗證分數,\( \theta_r \) 表示來源可信度分數,用於評估每個從理由到結論的因果關係 \(r ⇒ Ω\)。 表 4.1 中展示了伪代码,描述了如何運行 \(Γ = CRIT(d)\) 來為文檔 \(d\) 生成最終驗證分數 \(Γ\)。 以下各小節將討論 CRIT 如何使用以下五種方法來進行分析: 1. **Definition**(定義) 2. **Elenchus**(交叉檢驗) 3. **Dialectic**(辯證法) 4. **Maieutics**(助產術) 5. **Counterfactual Thinking**(反事實思考) --- ### 4.3.2 定義法 ![image](https://hackmd.io/_uploads/rkUBl-KIke.png) 根據表 4.1 的伪代码,CRIT 在第一步中啟動,請 GPT-3 確定文檔的結論。為了避免誤解,我們可以為研究文章、觀點文章或新聞文章設計明確的提示,但這些提示不適用於分析小說、散文或詩歌等文學類型。 #### 提示範例 - **提示 p1.1**:「文檔 [in: \(d\)] 的結論是什麼?[out: \(Ω\)] 結論可能出現在最後一段,並包含如‘總之’、‘因此’等關鍵詞。」 我們可以使用定義方法來改進對文檔的理解。一種方法是將提示改寫為多個提示,並將它們分組為一個集成體,例如形成一個論文委員會,讓不同的成員用不同方式表述同一個問題或從不同角度提問。例如: - **提示 p1.2**:「[in: \(d\)] 中討論的主要問題是什麼?[out: \(Ω\)]」 - **提示 p1.3**:「文本 [in: \(d\)] 中呈現的最重要結果是什麼?[out: \(Ω\)]」 在表 4.1 的第二步中,CRIT 還提示 GPT-3 找出支持結論的一組理由 \(R\)。為了進一步提高結果的準確性和全面性,提示可以要求不僅僅查找「理由」,還包括「理論」、「證據」或「觀點」: - **提示 p2**:「文檔 [in: \(d\)] 的結論 [in: \(Ω\)] 的支持理由有哪些?這些理由可以是理論、證據或觀點。」 --- ### 4.3.3 交叉檢驗法 (Elenchus) 交叉檢驗法源於希臘語「elenchein」,意為檢驗。該方法通過交叉檢驗 GPT-3 生成的結果,評估其論點的一致性與連貫性。目標是深入理解理由與結論的有效性,並識別論點中的潛在弱點或缺陷。 #### 提示範例 在表 4.1 的第三步中,CRIT 提示 GPT-3 評估每個理由 \(r \in R\) 支持結論 \(Ω\) 的有效性,並使用以下提示: 1. **提示 p3.1**:「文檔 [in: \(d\)] 中,理由 [in: \(r\)] 支持結論 [in: \(Ω\)] 的證據是什麼?[out: evidence]」 2. **提示 p3.2**:「證據類型是什麼?A) 理論,B) 見解,C) 統計數據,或 D) 來自其他來源的主張?」 3. **提示 p3.3**:「如果證據類型是 D),請遞迴調用 CRIT。」 4. **提示 p3.4**:「在 1 到 10 分中(10 為最強),評估理由 [in: \(r\)] 支持 [in: \(Ω\)] 的邏輯有效性 [out: \(γ_r\)] 與來源可信度 [out: \(θ_r\)]。」 為了進一步平衡評估,還可以結合反駁方法以發掘更多未被考慮的觀點,這在下一小節中進一步討論。 --- ### 4.3.4 辯證法 (Dialectic) 最容易誤導讀者的方法是省略關鍵反駁意見。CRIT 依賴 GPT-3 生成並評估反駁意見,與提示 GPT-3 提取與評估支持理由的方式類似。 在表 4.1 的第四步,CRIT 提示 GPT-3 提供反駁理由 \(R′\),並將反駁理由與結論配對進行驗證。以下是相關提示: - **提示 p4**:「是否存在針對 [in: \(r ⇒ Ω\)] 的反駁意見?如果有,提供反駁理由 [output \(R′\)]。」 - **提示 p5**:與 p3 類似,但用反駁理由 \(r′\) 替代理由 \(r\)。 最後,CRIT 在第六步通過加權總和計算最終驗證分數 \(Γ\),公式如下: - **提示 p6**:「最終分數 [out: \(Γ\)],公式為 \(Γ = \sum_{r \in R ∪ R′} (\gamma_r × θ_r) / |R ∪ R′|\。」 這樣的設計確保了綜合評估結果更加全面與平衡。 ### 4.3.5 助產術方法 (Method of Maieutics) 助產術 (Maieutics) 一詞源自希臘語「maieutikos」,意為「助產士」。此方法基於以下信念:教師的角色是協助學生引導出他們對某一主題的理解,而非直接傳遞知識。不同於交叉檢驗法 (Elenchus),其目的是檢測並消除錯誤假設,助產術側重於幫助學生揭示自身對主題的理解。在這種對話方法中,教師透過提問引導學生自行探索和發現,而非直接提供資訊或答案。 在 **CRIT** 的框架中,當文本在第 6 步完成評分後,可以藉由總結和分析 GPT-3 提供的理由,提升讀者或學生的分析與寫作能力。在第 7 步,CRIT 可以提示 GPT-3 生成一份報告,供讀者和學生與自己的筆記進行比較。 #### 提示範例 - **提示 p7**:「對於每個 \(r ∈ R ∪ R′\),為理由 \(r ⇒ Ω\) 的有效性分數 \(γ_r\) 和來源可信度分數 \(θ_r\) 提供論證。」 --- ### 4.3.6 反事實推理 (Counterfactual Reasoning) 反事實推理 (Counterfactual Reasoning) [30, 33] 可視為蘇格拉底方法的自然延伸,兩者都涉及對假設進行質疑以及探索替代性觀點。反事實思考需要想像與實際情況不同的替代場景,通常使用「如果...會怎樣」或「要是...」等短語。通過在提示工程中融入反事實推理,可以促進對替代可能性的探索,並加深對特定主題的複雜理解。 在 **CRIT** 的最後一步,反事實推理方法被用來鼓勵學生根據新的上下文信息重新考慮文本中提出的論點和反駁意見。CRIT 可以提示學生回答問題,例如:「如果文本中的辯論發生在現在,而不是 1950 年代,會如何?」或「如果文本中的主要事件發生在亞洲,而不是歐洲,會如何?」學生可以基於進一步的閱讀和統計數據表達自己的觀點,並對文本中的結論提出挑戰。 #### 提示範例 - **提示 p8**:「對於每個 \(r ∈ R ∪ R′\),在 [in context] 中評估 \(r ⇒ Ω\)。」 --- ### 4.3.7 關於 CRIT 的補充說明 如前所述,在批判性閱讀中,**CRIT** 使用了三種方法:**Definition** (定義)、**Elenchus** (交叉檢驗) 和 **Dialectic** (辯證法)。在批判性思維中,CRIT 使用了 **Maieutics** (助產術) 和 **Counterfactual Reasoning** (反事實推理)。而在更具探索性的思考中,例如非正式頭腦風暴,可以使用 **Induction** (歸納法) 來形成假設,使用 **Hypothesis Elimination** (假設消除) 來排除弱假設,並使用 **Generalization** (概化法) 從例子中推導出一般原則。 需要注意的是,提示可以一次性提交給 GPT-3,也可以逐一提交。我們對閱讀理解樣本的實證研究 [10] 表明,逐一提交提示可以生成更細緻的輸出,因為 GPT-3 能夠多次針對略有不同的目的分析文本。對於教導 K-12 學生進行批判性閱讀,逐一提示更為理想,因為這使學生能夠逐步與 CRIT 的步驟互動。然而,在回答選擇題時,無論是一次性提示還是逐一提示,得分結果相似。 我們計劃進行大規模研究,包括消融測試,以探討增刪提示以及使用不同提交方法是否會對結果產生顯著影響。 ### 4.4 提示模板工程 (Prompt Template Engineering) 提示模板工程是為語言模型 (LLM) 設計模板,用以生成輸入 (prompt),進而引導其生成目標輸出。本節將討論提示模板工程的基本構建方法,並整合 **Definition** (定義法)、**Elenchus** (交叉檢驗法)、**Dialectic** (辯證法)、**Maieutics** (助產術) 和 **Counterfactual Reasoning** (反事實推理) 方法,來構建更複雜的模板。我們通過對不同類型文件的實驗結果展示了如何使用蘇格拉底方法改進輸出的準確性和簡潔性,並透過論證與驗證促進指導性的概化和創造力。 --- #### 4.4.1 基本單輪模板 (Basic, One-Shot Template) 首先討論一個簡單的單輪提示模板。在 [43] 的研究中,使用簡單的公式化函數來生成提示 \( x' \),該函數通過應用公式 \( f_{\text{prompt}}(x) \) 到輸入 \( x \) 來完成。 在機器翻譯的情境中,提示模板可以採用以下格式: ``` Translate from [Lanfrom]: [X] to [Lanto]: [Y] ``` 其中,**Lanfrom** 可以由提示模板自動檢測或由 LLM 確定。輸入 \( x \) 提供的信息填充槽位 [X] 和 [Lanto]。例如,如果輸入是: ``` translate good morning to French ``` 則提示模板 \( x' \) 將會變成: ``` Translate from English: 'good morning' to French: [Y]. ``` 其中空白槽位 [Y] 由 LLM 的輸出填充,例如 “bonjour”。如果 LLM 生成多個響應,模板還可以為每個響應提供一個分數,並用於選擇得分最高的響應或請求 LLM 提供摘要。 --- #### 設計基本提示時的三個主要考量 1. **輸入樣式 (Input Style)** 必須考慮如何設計模板以處理針對相同任務的不同用戶輸入樣式。例如,對於翻譯任務,用戶可能會以以下方式表達需求: - 「Translate x to French」 - 「What is the French translation of x?」 2. **LLM 能力 (LLM Capability)** 如 [21] 所討論,設計模板時應考量目標 LLM 的模式與能力,例如 LLM 是 **左到右生成模型** [2] 還是 **掩碼模型** [7]。 3. **成本 (Cost)** 某些任務 (如語言檢測與摘要) 可以由模板本身完成,也可以交由 LLM 執行。應根據成本等因素決定任務是在模板內處理還是由 LLM 完成。 --- #### 應對技術挑戰的策略 - 為了解決輸入樣式和 LLM 能力的技術挑戰,可以先手動設計幾個初始的種子模板,然後將其改寫為一個 **模板集合 (Ensemble)** [14]。 - 我們認為,基礎的單輪公式化模板可以始終被模板集合公式替代 [29, 34],並針對每個查詢實例學習其成員的權重以生成最終輸出。 - 此外,通過檢查哪些基本提示具有高權重,擁有多樣化改寫提示的模板集合還可以幫助推斷 LLM 的優勢,而無需對其進行繁瑣的能力挖掘。 這種方法為模板工程提供了靈活性和效率,能更好地適應多樣化的輸入需求,同時發揮 LLM 的最大潛能。 ### 4.4.2 使用 **Definition** 方法進行澄清 現代電腦算法已經可以用來遞歸地澄清問題、其定義及子術語的定義。事實上,自然語言處理 (NLP) 社群多年間已開發了大量有用的技術與算法 [18]。例如,可以使用 **Dependency Parsing** 與 **Named-Entity Recognition (NER)** [6] 來分析問題的結構與含義,並識別關鍵術語與概念。NER 可以提取用戶輸入中的實體,例如人名、地點與組織,而 **Co-reference Resolution** 則能理解代詞所指涉的實體。 在將模板提交給 LLM 之前,應用程式 (如聊天機器人) 應檢查所有輸入槽位是否已填充,並執行健全性檢查。例如,在翻譯案例中,若 [Lanto] 未提供或指定語言不被 LLM 支援,則應用程式應詢問用戶以獲得澄清。 針對將自然語言輸入映射到提示模板,現有的 **Knowledge Representation** 與 **Reasoning** 技術非常有幫助。具體而言,**Ontology Alignment** 與 **Semantic Parsing** [4, 45] 可協助將自然語言輸入映射到知識的結構化表示,並推斷隱含的概念與關係。這些算法可用於生成更精確的提示,並提升蘇格拉底方法在對話構建中的效用 [44]。 一些可用工具包括: - **NLTK (Natural Language Toolkit)** 與 **spaCy** 用於 NLP。 - **TensorFlow** 用於機器學習 (ML)。 --- ### 4.4.3 使用 **Elenchus** 方法進行驗證 在模板中進行交叉檢驗的主要目的是: 1. 驗證信息來源的可信度。 2. 識別過程中的不一致性。 交叉檢驗通常通過多輪對話實現 [44]。在模板工程的背景下,目標是設計一個有成效的對話,以評估 LLM 輸出的可靠性。 #### 驗證 LLM 輸出可靠性的幾種方法: 1. **重述問題** 以不同方式改寫問題,觀察不同回答是否存在不一致。 2. **要求進一步的證據** 如查詢前 k 個信息來源,並要求 LLM 對每個來源的可信度進行評級,從而計算輸出的可靠性。 3. **詢問相反觀點** 設計模板查詢 LLM 輸出的相反觀點,包括來源與可信度,並評估相反觀點是否具有說服力。 #### 實施方法: - **重述與進一步證據** 可使用 4.4.2 節中提到的技術來實現。 - **相反觀點詢問** 簡單方法是檢測原問題的情感 (sentiment),並以相反的情感重寫問題。例如,若原問題以正面語調表述,則模板可以以負面語調重新表述以引出對立觀點。 進一步的高階方法是: - 識別 LLM 回答中的人物與來源,並將問題重新提交給具有不同觀點的來源。例如,若原回答來自一個右派民主觀點,模板可將問題提交給左派共和觀點的來源。 #### 模板示例:檢查語義關係 對於兩個句子 \( S_1 \) 和 \( S_2 \) 的語義關係檢查,模板可設計為: ``` <S1>, [R], [S2] ``` 其中 \( R \) 是以下三種主要語義關係之一: 1. **Paraphrase (同義改寫)** 2. **Entailment (蘊涵)** 3. **Contradiction (矛盾)** 這樣的模板可以用於識別兩個句子的意義一致程度或不一致程度。 --- #### 實例分析 (Table 4.2) ![image](https://hackmd.io/_uploads/SyzGW-KI1x.png) **例一:DNA 雙螺旋結構的發現** - 問題:James Watson 和 Francis Crick 是否是唯一的貢獻者? - GPT-3 的回答:提到還有兩位貢獻者。 **例二:信息來源的可信度評級** - 問題:要求 GPT-3 提供答案的同時,列出信息來源,並按指定標準對來源的可信度進行評分。 儘管 GPT-3 的可信度評級仍有待驗證,但此機制可以用作提醒,當某些來源被認為不可靠時,促使用戶進一步檢查。 ### 4.4.4 使用 **Maieutics** 方法進行泛化 ![image](https://hackmd.io/_uploads/BJtPZZFL1e.png) 表 4.3 中的例子「種葫蘆得黃瓜」需要 GPT-3 首先學會選擇兩個農產品(蔬菜或水果)作為輸入,模板為: ``` "The farmer was so sad because he [verb] [X] but yields [Y], where price(X) » price(Y)." ``` #### 第一階段的學習: - 在最初的嘗試中,GPT-3 對條件 **price(X) » price(Y)** 的處理不夠精確。 - 經過幾次訓練迭代後,GPT-3 開始「認識」價格限制,並在爭論茶葉價格高於菠菜時能提供合理的理由(雖然該案例未在表中展示)。 #### 泛化的過程: 有趣的是,當 GPT-3 學習到價格限制後,它開始建議除了農產品之外的食品,例如魚子醬、魚卵、龍蝦和螃蟹。這雖然滿足了價格限制條件,但動詞 **"plant"** 的語境卻被違反了。 為了修正這一問題,我們將模板中的硬編碼動詞 **"plant"** 設為輸出槽位: ``` "The farmer was sad because he [verb] [X] but yields [Y], where price(X) » price(Y)." ``` GPT-3 對此模板的填充示例如下: - 「**Harvesting (planting)** truffle yields mushroom.」 - 「**Fishing (harvesting)** for caviar yields roe.」 - 「**Trapping (catching)** lobster yields crab.」 #### 評估與發現: 這些示例表明,GPT-3 能基於模板生成新穎的示例。當其建議的食品超出「種植」的範疇時,這可能被視為錯誤,但同時也展現了 GPT-3 的創新能力,將模板暗示的限制進一步延伸。值得注意的是,即使超出最初的範圍,新例子仍保留了原意——表達生產者的情感困境。 #### 泛化步驟: 如何準確且自動地進行模板的泛化?**蘇格拉底的泛化方法**從具體實例開始,逐步總結出一般性規則。泛化的程序包括: 1. **識別模式與主題**:分析一組例子中的共通模式或主題。 2. **制定一般規則**:總結出反映這些模式的通用規則。 #### 應用於該案例: 1. **初始條件**:要求滿足 **price(X) » price(Y)**,且 **X** 和 **Y** 必須是種植於土壤中的農產品。 2. **發現問題**:分析 GPT-3 的輸出後發現某些 **X** 和 **Y** 不是農產品(例如龍蝦和魚子醬)。 3. **修改模板**:將硬編碼的動詞 **"plant"** 替換為開放槽位 **[verb]**,使模板更具通用性。 #### 結論: GPT-3 的「錯誤」為模板優化提供了寶貴的訓練數據,通過泛化使原模板表達得更加生動且具有彈性。這一過程表明,結合 **Maieutics** 方法的泛化不僅能改進模板,還能激發模型的創造性表現。 ### 4.4.5 反事實推理 (Counterfactual Reasoning) **想像力和創造新情節**對於作家而言至關重要,因為它賦予創作中的「創意自由」和「藝術表現」。創造力是一種以嶄新且富有想像力的方式思考與解決問題的能力。 然而,若缺乏明確的主題、範疇或故事線,無限制的想像可能導致生產力下降。為了吸引觀眾,作家需要將**人類經驗與情感作為限制條件**。因此,「創意自由」並不意味著完全的自由,而是能在特定的背景下調節未來的敘述,並創作出令人意想不到的情節轉折。 #### **反事實技術的應用** 反事實推理 (**Counterfactual Reasoning**) 技術是一種有助於引導想像力的方法。此技術的核心是考慮**假設性場景**,從而探索不同的可能性並生成新穎而獨特的想法。例如,作家可以透過提出「如果……會怎樣?」的問題來改變事件敘述,例如: - 「如果主角沒有墜入愛河,故事會如何發展?」 - 「如果在期待已久的約會途中發生意外,結局會如何改變?」 透過考慮這些反事實場景,作家與 LLM 可以共同創作出更引人入勝的故事。用戶可以請求 LLM 生成多個場景,然後從中選擇最適合繼續創作的情節。 #### **應用案例** 我們嘗試使用反事實技術重寫中國經典小說《水滸傳》和《紅樓夢》的章節。我們還請 GPT-3 重寫《創世記》第 3 章第 6 節之後的內容,並提示: > 「假如亞當和夏娃拒絕了蛇的誘惑,沒有吃禁果會如何?」 GPT-3 的生成結果令人驚艷,因為它能在保持故事核心主題和概念的同時,創造出新穎且有趣的場景。 #### **創意應用** 此技術可廣泛用於從虛構到非虛構的寫作與敘事中,用以生成新穎而吸引人的創意。透過 LLM 提供的替代性敘述,作家可以發掘更多有潛力的靈感,進一步完善故事。 附錄中展示了經 GPT-3 重寫的《創世記》第 3 章第 6 節內容。此技術不僅是一種創作工具,也能成為挖掘故事新維度的橋樑。 ### 4.5 初步研究 我們的初步研究採用了 **CRIT** 方法,目的是回答以下兩個問題: 1. **所有的提示 (prompts) 應該依序發送至 GPT-3 還是可以一次全部發送?** 2. **有哪些限制需要改進?** 此研究使用第八版教科書《Ask the Right Questions》中帶有標準答案的練習題作為測試資料 [3]。需要注意的是,這項研究評估的是 **CRIT 提示模板的有效性**,而非發送提示所使用的語言模型(如 GPT-3)。 ![image](https://hackmd.io/_uploads/S1mXG-YUkx.png) #### **研究結果** 1. **短篇文件** - 在短文件中,無論是將所有提示一次性發送,還是按順序逐一發送,只要指令一致,結果的質量差異不大。 2. **長篇文章** - 在評估長篇文章時 [10],CRIT 逐步發送提示的結果在**組織性**與**清晰度**方面均顯著優於一次性發送的方式。(由於篇幅限制,長文的詳細結果記錄於補充文件 [5] 中。) - 在**教學模式**下,逐步發送提示更為推薦,因為這種方式更具彈性。例如,當理由本身是一個聲明且需要 CRIT 驗證其支持來源時,逐步方法允許 CRIT 查詢來源並遞歸執行過程。 --- #### **CRIT 操作示例** 以下提供一個文檔示例,展示 CRIT 從提示問題到接收驗證結果的過程。 ![image](https://hackmd.io/_uploads/SkXNzWt81l.png) - 表格 4.5 的第一部分顯示 GPT-3 從文本中提取的主張與支持理由。 - 接著,CRIT 發送一系列提示以驗證每個「理由—主張」的推導(包含反駁理由及來源可信度)。 --- #### **驗證對話與評分** - 表格 4.5 的第二部分展示了 CRIT 與 GPT-3 之間的驗證對話: - **對每個論點**,GPT-3 提供了驗證分數與來源可信度評分,以及詳細的支持理由。 - CRIT 還會針對反駁論點進行驗證。例如,對於第一個理由,GPT-3 提出了「信息規範難以實行」的反駁理由,然而該反駁的有效性評分僅為 0.6 × 0.6,因此被駁回。 - 表格 4.5 的最後部分顯示了 CRIT 的最終加權評分: - 總得分為 **Λ = 75%**,屬於高分範圍。 --- #### **反事實推理的示例** ![image](https://hackmd.io/_uploads/B1ErM-YU1g.png) 表格 4.6 展示了反事實推理的應用,例如: > 「如果夏娃拒絕吃禁果會怎樣?」 這種問題不僅促進創意敘事,還有助於探索新穎且具有挑戰性的假設情境。 ### 4.6 總結 蘇格拉底式方法在人與人互動中未必總是有效,特別是在其中一方擁有權威、情緒化或濫用行為的情況下。然而,當專家夥伴是一個**語言模型 (Language Model)** 時,該模型不具情緒或權威,蘇格拉底式方法就能有效應用,避免了人際互動中的潛在問題,從而發揮其在引導、改進和提升語言模型輸出的最大潛力。 --- ### **本章要點** 本章探討了如何應用蘇格拉底式方法於語言模型提示模板 (Prompt Template) 的設計,並重點討論以下幾種關鍵技術的作用: 1. **定義 (Definition)** 2. **詰問 (Elenchus)** 3. **辯證 (Dialectic)** 4. **助產術 (Maieutics)** 5. **反事實推理 (Counterfactual Reasoning)** --- #### **輸出精確性與相關性** 前三種方法(定義、詰問、辯證)旨在引導語言模型生成**準確且相關**的信息。我們通過實例展示這些方法如何: - 澄清用戶查詢。 - 評估模型生成文本的質量。 - 提升輸出的精確性與一致性。 #### **激發創意** - 使用 **助產術** 和 **反事實推理** 技術,能幫助作家激發想像力。 - 例如,藉由「What if」假設,生成替代劇情,探索不同的敘事可能性。 - 雖然多數生成的內容可能無用,但即使只有少數靈感有價值,這些技術仍非常實用。 --- #### **未來發展方向** 1. **篩選與適配性改進** - 隨著語言模型與提示工程技術的發展,未來或可實現更精準的劣質情節篩選。 - 同時,還能更好地根據作者的寫作風格量身定制生成內容。 2. **跨領域應用** - 未來研究可以基於此章的思路,探索如何將蘇格拉底式方法應用於語言模型的開發與部署,例如醫學、教育和創意產業等領域。 --- ### **結論** 本章強調了應用蘇格拉底式方法於語言模型提示模板設計的潛力。通過**歸納 (Inductive)**、**演繹 (Deductive)** 與**溯因推理 (Abductive Reasoning)**,蘇格拉底式方法為與大型語言模型 (LLMs) 的交互提供了一套嚴謹的框架,有助於提升輸出的質量與一致性。 **展望未來**,結合語言模型的廣博知識和提示工程的邏輯推理,能設計出更高效的提示模板,進一步改善語言模型的應用效果。 --- ### 附錄:反事實實驗示例 表格 4.6 中的實驗向 GPT-3 提出改寫《創世紀》的故事內容。在伊芙受到蛇的引誘後,插入了一個「如果」情境: > **「如果夏娃拒絕吃禁果會怎麼樣?」** GPT-3 依據這一假設接續發展故事,生成了既獨特又富有趣味的情節,既脫離了原始故事,又保留了核心主題與概念。這一技術展示了反事實推理在生成新穎敘事內容中的強大應用潛力。