【文獻筆記】Automatic Chain of Thought Prompting in Large Language Models

Automatic Chain of Thought Prompting in Large Language Models
原文代碼:https://github.com/amazon-research/auto-cot

標題翻譯:大規模語言模型中的自動思維鏈提示

1. 內容介紹

在提示詞中提供思考步驟被稱為思維鏈(CoT),這一過程與情境學習(In-Context Learning)密切相關。

思維鏈提示有兩大范式:

  • 一種是利用“讓我們逐步思考”這樣的簡單提示,促進LLM逐步思考
  • 另一種是使用一些人工演示的例子,每個演示都由一個問題和一個通向答案的推理鏈組成,這一種一般效果好一點

作者想用第一種方式自動的生成推理鏈的演示,省去人工操作,提出了AutoCoT,它通過對具有多樣性的問題進行采樣并生成推理鏈來構建示例

2. 研究目的

在這里插入圖片描述

左邊是第一種簡單提示,右邊是人工添加示例的。右邊的效果更好,但人工編寫在示例的問題及其推理鏈的設計上都需要花費不少精力。

所以,為了摒棄這種人工設計,作者提出自動思維鏈(Auto - CoT)范式,讓LLM自動構建包含問題和推理鏈的示例(問題與推理鏈對)

在生成這個示例的過程中,作者又發現:

  1. 如果這個示例太簡單,那對CoT的學習是沒有什么幫助的,比如2+3=5這種;
  2. 單純依賴簡單的相似性檢索生成示例也有問題:要么原本的推理鏈可能本來就是錯的,導致錯誤出現傳遞;要不就是語義太相似學不到東西

=>為了緩解這種問題,Auto-CoT強調示例問題的多樣性(示例是否覆蓋廣泛的語義空間)

3. 前序研究

論文提出了兩種基于問題采樣的自動化CoT示例構建方法,用于探討如何有效生成高質量的 CoT 示例

  1. Retrieval-Q-CoT:基于語義相似性檢索問題作為示例
  • 語義表示:使用Sentence-BERT將問題轉化為固定大小的語義向量表示,

  • 相似性檢索:對于測試問題Qtest基于余弦相似度從數據集中檢索出k個與其語義最相似的問題

  • 生成推理鏈:對每個檢索到的問題,利用Zero-Shot-CoT方法生成推理鏈

  • 組合輸入:將這k對問題+推理鏈作為示例,與測試問題Qtest一起輸入給LLM,讓LLM完成推理

    優點:檢索問題時能聚焦于與測試問題相關的問題,提高了示例的針對性
    缺點

    • 如果檢索到的問題用Zero-Shot-CoT生成的推理鏈存在錯誤,錯誤容易復制到測試問題上(相似性誤導);
    • 示例過于相似時,可能無法涵蓋足夠廣泛的語義特征
  1. Random-Q-CoT:隨機采樣問題作為示例
  • 隨機選擇問題:從數據集中隨機選k個問題
  • 生成推理鏈:對每個問題,利用 Zero-Shot-CoT 方法生成推理鏈
  • 組合輸入:將這些隨機問題和推理鏈與測試問題組合輸入給LLM
    優點:隨機采樣的問題多樣性更高,能避免Retrieval-Q-CoT中由于語義相似性導致的錯誤傳播
    缺點:隨機選擇的問題可能與測試問題無關,從而降低推理鏈的針對性

在這里插入圖片描述

Retrieval-Q-CoT在算術上沒有Random-Q-CoT好,就是因為缺點1,Zero-Shot-CoT不保證是對的

然后就在另外兩個數據集上試了一下不用Zero-Shot-CoT生成推理鏈,而用有標注的訓練,發現Retrieval-Q-CoT就變強了


更細節的研究:

在這里插入圖片描述

600個算術問題中,普通的使用Zero-Shot-CoT后答案出錯的有128個

然后對這128個用上面兩個方法,還出錯的占比

Retrieval-Q-CoT出錯率很高,就是因為推理鏈的相似性誤導


繼續拆分,把原始的600個問題計算語義,然后用K-Means搞了8個聚類,看看到底是哪個類別的問題錯誤率最高

在這里插入圖片描述

類別2就是錯誤頻發集群,說明Zero-Shot-CoT可能缺乏解決目標任務中一些常見問題的能力

多樣性理論支持:假設一個錯誤推理鏈會對同語義類別的問題產生重大影響。如果示例來自多個類別(增加多樣性),即使某些類別的推理鏈有誤,也不會對所有測試問題產生一致性誤導


看上去好像和Auto-CoT沒關系,實際上是在說Auto-CoT設計中面臨的挑戰,Auto-CoT的最終目標是減少對人工的依賴

  • Retrieval-Q-CoT提供了一個警示:單純依賴相似性檢索生成示例可能會因錯誤推理鏈的累積而導致性能下降。因此,Auto-CoT不僅需要考慮相似性,還必須加入多樣性

  • Random-Q-CoT 提供了一個啟發: 多樣性可以有效緩解錯誤傳播的問題,但其完全隨機的方式可能導致示例與測試問題缺乏相關性

=>質量與多樣性的平衡,基于這些前序研究,終于可以設計Auto-CoT

4. Auto-CoT

4.1. 總覽

在這里插入圖片描述

包含兩個主要階段:

  1. 問題聚類:將給定數據集的問題劃分為幾個聚類;
  2. 示例采樣:從每個聚類中選擇一個有代表性的問題,然后使用Zero - Shot - CoT生成其推理鏈
4.1.1. 問題聚類算法

在這里插入圖片描述

每個問題用Sentence-BERT轉化為固定大小的語義向量

然后用K-Means生成k個聚類

在每個聚類里排序每個問題

4.1.2. 示例采樣構造算法

在這里插入圖片描述

從每個聚類中選一個代表性的問題

靠聚類中心最近的那個問題會被優先考慮,然后用Zero-Shot-CoT生成推理鏈,當作備選的示例

選擇的準則是:問題不超過60tokens,推理鏈不超過5步

5. 實驗:

5.1. 實驗設置

  • LLM:使用GPT-3,text-davinci-002 version with 175B parameters
  • 用了10個數據集,三項任務:(1)算術推理;(2)常識推理;(3)符號推理
  • 示例數量(聚類)k默認為8個,除了AQuA和Letter(4個)、CSQA(7個)以及StrategyQA(6個)這幾個數據集

5.2. 基線:

  • Zero-shot:直接讓LLM生成答案,“the answer is…”
  • Zero-shot-cot:“let’s think step by step”
  • Few-shot:一些問題和答案對,但沒有中間的推理過程
  • Manual-cot:人工的問題-推理鏈-答案

5.3. 結果

在這里插入圖片描述

Auto-cot總是比人工的好(本質上還是想拋棄人工編寫)

5.4. 消融

在這里插入圖片描述

然后研究了換一下LLM,還是能和人工編寫的不相上下


前面也說了,整個過程中答案全是由Zero-shot-cot生成的,所以可能有錯誤的示例。所以研究了一下,直接從同一聚類中隨機采樣問題來構建示例

在這里插入圖片描述

發現Auto-CoT(使用不同聚類采樣)受錯誤示例的影響更小:即使存在50%的錯誤示例,其性能仍然沒有顯著下降

5.5. 考慮一個更復雜的流數據場景

傳統CoT的假設是測試問題的完整數據集可以提前獲得,從中采樣問題生成示例用于推理。

然而,在流數據場景中:測試問題以小批次(batch)逐步到達(初始沒有足夠多的問題用于聚類或采樣),每次只能處理當前批次的問題,并且需要動態生成示例以適應后續批次的推理需求

這種拓展的叫Auto-CoT*,有Bootstrapping的特性

初始:空集合M0

  • 第一批問題到達時,直接使用 Zero-Shot-CoT 生成推理鏈,存入M
  • 對于每一新的批次使用Mb-1次(上一批存儲的問題及推理鏈)的生成當前批次的示例,
  • 用示例推理解決當前批次的問題后,連帶這次生成的示例一起加入Mb

在這里插入圖片描述

300個問題,分10批

第一批和zero-shot-cot一樣,但隨著問題批次的積累,生成的示例會越來越豐富,推理質量也隨之提高

展示了實用性

6. 總結

大型語言模型(LLMs)已通過思維鏈(CoT)提示展現出推理能力。Manual-CoT的卓越性能依賴于人工設計的演示示例。為消除此類人工設計,論文提出Auto-CoT來自動構建演示樣本。該方法通過多樣性問題采樣并生成推理鏈來構建演示集。在十個公開基準推理數據集上的實驗表明:基于GPT-3的Auto-CoT始終達到或超越需要人工設計演示的CoT范式的性能表現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/87976.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87976.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87976.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Behavior Tree】-- 行為樹AI邏輯實現- Unity 游戲引擎實現

行為樹簡易敵人AI 前言: 有些天沒更新新文章了,主要是最近科一有些頭疼,而且最近琢磨這個行為樹代碼有些難受,但是終于熬出頭了,MonoGame的系列會繼續更新的,今天不說別的就說困擾我兩三天的行為樹 有限狀態…

百度大模型開源,倆條命令、本地啟動

百度大模型開源 本地啟動手冊 安裝依賴: python -m pip install paddlepaddle-gpu3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/python -m pip install fastdeploy-gpu -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-80_…

rabbitMQ讀取不到ThreadLocal消息的bug

rabbitMQ讀取不到ThreadLocal消息的bug 當使用消息隊列時,監聽隊列不會運行到主線程上,線程消息之間是不會共享的,故屬于主線程的ThreadLocal就讀取不到數據的值 主線程名字:main使用消息隊列的線程名字:ntContainer#2…

IDEA Maven報錯 無法解析 com.taobao:parent:pom:1.0.1【100%解決 此類型問題】

IDEA Maven報錯 無法解析com.taobao:parent:pom:1.0.1【100%解決 此類型問題】 報錯日志 PS D:\Learn_Materials\IDEA_WorkSpace\Demo\spring_test_demo> mvn clean install -U [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered whi…

函數-1-字符串函數

函數-1-字符串函數字符串函數函數語法字符串函數的使用字符串函數語法案例演示實戰練習字符串函數 函數 函數是一段可以直接被另一端程序調用的程序或代碼 語法 SELECT 函數名(參數名)大家可能會有那么一點點疑惑, 為什么執行函數還需要加上SELECT語句? 總結一下, 因為SEL…

打破AI落地困局:易路iBuilder的“垂直深耕+開箱即用”破壁之道

中國企業的數字化轉型已步入深水區,人力資源管理作為企業核心競爭力的關鍵引擎,正經歷從“信息化”向“智能化”的范式躍遷。在這場以AI為驅動的組織效能革命中,??易路人力資源科技??憑借前瞻性的“軟件AI服務”戰略,推出國內…

Higress離線部署

1.前提條件檢查docker和docker compose是否已經具備 [roothost151 ~]# docker -v Docker version 26.1.4, build 5650f9b [roothost151 ~]# docker composeUsage: docker compose [OPTIONS] COMMANDDefine and run multi-container applications with DockerOptions:--all-res…

利用AI技術快速提升圖片編輯效率的方法

通過更換背景或進行其他創意編輯,可以為圖片賦予新的生命力和視覺效果,使得創意表達更加自由靈活。這款AI摳圖工具堪稱強大,依托先進的阿爾法通道技術,能夠精準、自然地實現圖像摳取與背景更換。操作也非常簡單,只需將…

Wend看源碼-RAGFlow(上)

前言 最近在github上搜羅Rag相關項目的時候,我根據star 搜索到了目前star 最高的一些RAG 項目 ,其中穩居榜首的就是RAGFlow。 RAG stars:>1000 language:Python pushed:>2025-01-01 github RAG 相關項目搜索結果 為了系統性的學習RAG 技術棧&#…

LangChain實現RAG檢索增強

1:啟動vllm的openai兼容server: export VLLM_USE_MODELSCOPETrue python -m vllm.entrypoints.openai.api_server --model qwen/Qwen-7B-Chat-Int4 --trust-remote-code -q gptq --dtype float16 --gpu-memory-utilization 0.6 2:構建向量數據庫 from langchain_…

Redis基礎(6):SpringDataRedis

SpringDataRedis簡介 SpringData是Spring中專門進行數據操作的模塊,包含了對于各種數據庫的集成。其中對Redis的集成模塊叫做SpringDataRedis(官網地址:Spring Data Redis)。其最核心的特點就是提供了不同Redis客戶端的整合&…

B. Shrinking Array/縮小數組

B. Shrinking Array讓我們稱一個數組 b 為 i 美麗 ,如果它至少包含兩個元素,并且存在一個位置 |bi?bi1|≤1 使得 |x| (其中 x 是 #10# #11# 的絕對值)。給定一個數組 a ,只要它至少包含兩個元素,你就可以執行以下操作&#xff1a…

【學習筆記】Linux系統中SSH服務安全配置

一、背景知識 以ubuntu為例,查看ssh服務是否安全并配置,執行 ssh -V ssh的配置文件路徑:/etc/ssh/sshd_config 二、SSH服務配置文件 1.端口和監聽設置 Port 22 含義:指定SSH服務監聽的端口號(默認是22&#xff09…

FastAPI + Tortoise-ORM + Aerich 實現數據庫遷移管理(MySQL 實踐)

在 FastAPI 項目中,Tortoise-ORM 是一個輕量的異步 ORM 框架,適用于 async/await 場景。結合數據庫遷移工具 Aerich,可以優雅地管理數據庫表結構演進,本文將通過完整流程演示如何在 MySQL 環境下使用。📦 一、環境準備…

7.7日 實驗03-Spark批處理開發(2)

使用Spark處理數據文件檢查數據檢查$DATA_EXERCISE/activations里的數據&#xff0c;每個XML文件包含了客戶在指定月份活躍的設備數據。拷貝數據到HDFS的/dw目錄樣本數據示例&#xff1a;<activations><activation timestamp"1225499258" type"phone&q…

C語言可變參數感悟

#include <stdio.h> #include <stdarg.h> #if 1 /* *在C語言中&#xff0c;可變參函數是指參數數量不固定的函數&#xff0c;比如printf\scanf *可變參函數的語法&#xff1a; *返回類型 函數名&#xff08;固定函數&#xff0c;.....) { //函數體 } *1、包含頭文件…

LeetCode 1248.統計優美子數組

給你一個整數數組 nums 和一個整數 k。如果某個連續子數組中恰好有 k 個奇數數字&#xff0c;我們就認為這個子數組是「優美子數組」。 請返回這個數組中 「優美子數組」 的數目。 示例 1&#xff1a; 輸入&#xff1a;nums [1,1,2,1,1], k 3 輸出&#xff1a;2 解釋&#xf…

FastAPI Docker環境管理腳本使用指南

作者: 源滾滾AI編程 創建時間: 2025年07月08日 版本: v1.0.0 文檔狀態: 完成 版權聲明 本文檔由源滾滾AI編程創作,版權所有。未經作者書面許可,不得復制、分發或用于商業用途。 免責聲明 本文檔僅用于技術交流和學習目的。作者不對使用本文檔內容導致的任何問題承擔責任。…

前端常見 HTTP 狀態碼

作為前端開發者&#xff0c;與后端 API 交互時&#xff0c;HTTP 狀態碼是判斷請求成敗的關鍵信號。理解常見狀態碼的含義、責任歸屬及應對策略&#xff0c;能極大提升調試效率和團隊協作。以下是關鍵狀態碼的詳細解析&#xff1a; 首先說一下如何查看狀態碼&#xff1a; 如上圖…

深度解析C語言內存函數(小米面試題)

目錄 一、memcpy1.1 代碼演示1.2 memcpy的模擬實現 二、memmove2.1 代碼演示2.2 模擬實現&#xff08;小米面試題&#xff09; 三、memset3.1 代碼演示3.2 總結 四、memcmp4.1 代碼演示4.2 總結 總結 一、memcpy &#xff08;memory copy 內存復制&#xff09; 之前文章中寫的…