大語言模型的推理能力

2025年,各種會推理的AI模型如雨后春筍般涌現,比如ChatGPT o1/o3/o4、DeepSeek r1、Gemini 2 Flash Thinking、Claude 3.7 Sonnet (Extended Thinking)

對于工程上一些問題比如復雜的自然語言轉sql,我們可能忍受模型的得到正確答案需要更多時間,但是準確度一定要高。那么我們就可以考慮用文中的方法(模型推理能力)得到更高精確度。

什么是推理能力

簡單說,就是模型在回答問題時會先輸出一大段推理過程,然后才給出最終答案。

下圖我們分別在deepseek的官網使用不帶深度思考的與帶深度思考(DeepSeek-R1)的模型對北京是中國的首都嗎?
可以看到當我們使用深度思考模型AI不會直接回答,而是會先來一段內心獨白再去回答,這中間的內心獨白就叫做推理。
在這里插入圖片描述
推理能力類似早先年間計算機視覺領域的可視化模型輸出的過程。推理能力是某些大模型本身就存在的能力,我們能達到的推理效果是因為我們通過訓練或提示詞解碼了這一過程。

在這里插入圖片描述

讓LLM實現推理能力的四個方法

Chain-of-Thought 提示詞并不是對所有LLM都通用,比如LLama3不適用。

我們在平臺上使用的DeepSeek-R1就是結合了本文提到的四種方法實現的

1. Chain-of-Thought

CoT方法是一種提示詞引導,分為Short CoT和Long CoT代表性的Supervised CoT,Short CoT又可分為few-shot CoT和 zero-shot CoT。

類別方法名稱實現方式示例
Short CoTFew-shot CoT提供示例引導給出2-3個完整的問題-思考-答案示例,然后提問
Short CoTZero-shot CoT簡單提示引導在問題后加上"讓我們一步步思考"
Long CoTSupervised CoT詳細流程指導編寫復雜提示詞,明確指定思考流程、驗證步驟、輸出格式等

few-shot CoT是給一些范例引導模型思考,下圖展示了few-shot CoT的過程。zero-shot CoT是在問題后面加上一步步來思考在這里插入圖片描述
zero-shot CoT是在問題后面加上讓我們一步步思考,下圖展示了zero-shot CoT的過程。
在這里插入圖片描述
Supervised CoT通過編寫詳細的提示詞來指導模型的思考流程,下圖展示了Supervised CoT的過程:
在這里插入圖片描述
在這里插入圖片描述

2. 多次采樣

該方法核心是既然一次做不對,那就多試幾次。由此引出了兩類工程問題:

  • 如何讓模型嘗試多次?(通常嘗試16+次)
  • 如何在多次生成的答案篩選正確答案
產生多個答案
  1. 問題難度決定策略
    • 簡單問題:純串行效果最好
    • 困難問題:需要并行+串行的平衡
    • 中等問題:理想比例介于兩者之間
  2. 計算預算影響
    • 小預算:串行采樣更高效
    • 大預算:需要平衡分配避免過度優化
  3. 互補性
    • 并行采樣提供全局搜索能力
    • 串行采樣提供局部優化能力
    • 兩者結合能夠充分利用測試時計算資源
1. 并行采樣(Parallel Sampling)

核心思想:同時生成多個完全獨立的解答

具體做法

  • 給定同一個問題,讓模型獨立生成N個不同的回答
  • 每次生成都是從頭開始,互不依賴
  • 通過設置temperature > 0來引入隨機性,確保每次生成的答案都不完全相同
2. 串行采樣(Sequential Sampling)/ 迭代修正

核心思想:基于前一次的嘗試來改進下一次的回答

具體做法

  • 先生成一個初始答案
  • 將這個答案作為上下文,讓模型基于此生成改進版本
  • 重復這個過程,每次都在前面答案的基礎上進行優化
3. 混合策略:并行+串行

最佳策略往往是兩種方法的結合
具體做法

  • 將計算預算分配給并行和串行兩種采樣
  • 比如用一部分預算生成幾個獨立的起始點
  • 然后從每個起始點進行串行改進

適應性分配

  • 簡單問題:更多串行采樣(因為初始答案通常在正確軌道上)
  • 困難問題:更多并行采樣(需要探索不同的解題策略)
  • 中等難度:平衡分配
篩選正確答案
1. Majority Vote:群眾的智慧

最直觀的方法是投票機制:看哪個答案出現次數最多就選哪個。

實驗數據顯示了一個很有趣的現象:Majority Vote的效果提升并不是線性的。

  • 前期快速上升:從1次嘗試到16次,準確率提升很明顯
  • 中期平緩增長:從16次到64次,提升變得溫和
  • 后期趨于飽和:超過128次后,基本不再提升

這個曲線形狀很符合直覺。想象一下,如果正確答案出現的概率是30%,那么:

  • 試1次:30%概率對
  • 試5次:如果正確答案出現2次以上就贏,概率大大提升
  • 試50次:如果正確答案真的占30%,那肯定會勝出

但如果模型本身對某類問題就是"系統性地理解錯誤",那試再多次也沒用——每次都會用錯誤的方法,只是錯得稍有不同而已。

實際操作中,你需要在提示詞里告訴模型把最終答案放在特定標簽中(比如<answer></answer>),這樣才能方便地統計各個答案的出現頻率。

2. Best of N:專業裁判來評分

你可以直接再加一個模型,用提示詞讓模型判斷它做得對不對。
更高級的做法是訓練一個專門的驗證器來給答案打分,然后從N個候選中選出得分最高的。這類似于建立一個機器學習模型,我們需要準備數據集,然后得到這樣的模型

訓練驗證器的方法很巧妙:

  1. 準備一批有標準答案的題目
  2. 讓語言模型生成大量不同的解答
  3. 根據最終答案的對錯來標注:正確答案標記為1,錯誤答案標記為0
  4. 用這些數據訓練驗證器

這樣就得到了一個"專業裁判",能夠識別哪些答案更可能正確。

3. Beam Search:智能路徑探索

如果說Best of N是"海選后評判",那么Beam Search就是"邊走邊篩選"的智能策略。它不等到最后才評判,而是在解題的每一步都進行篩選,只保留最有希望的路徑繼續探索。

核心思想:把解題過程看作一棵樹,每一步都是樹的一個分支,我們只保留最promising的幾條路徑繼續往下走。

具體流程

  1. 生成多個起始步驟:比如生成8個不同的第一步解法
  2. 過程驗證器評分:用訓練好的驗證器給每個步驟打分
  3. 保留最優路徑:只保留得分最高的4個步驟(這個4就是beam width)
  4. 繼續擴展:從這4個步驟分別生成下一步,又得到新的候選
  5. 重復篩選:再次用驗證器評分,保留最好的4個
  6. 直到完成:重復這個過程直到得到最終答案

關鍵組件 - 過程驗證器
與普通驗證器不同,過程驗證器不需要看到完整答案就能判斷當前步驟的質量。它就像一個經驗豐富的老師,看到學生解題的前幾步就能判斷這個思路靠不靠譜。

訓練過程驗證器的巧妙方法

  1. 從某個中間步驟開始,讓原模型繼續解題多次(比如20次)
  2. 統計從這個步驟開始最終得到正確答案的比例
  3. 這個比例就是該步驟的"質量分數"
  4. 訓練驗證器學會預測這個分數

比如從某個step1開始,20次嘗試中有14次得到正確答案,那這個step1的質量分數就是0.7。

實際操作技巧

請逐步解決這個數學問題
每個步驟用<step>和</step>標簽包圍
示例:
<step>分析:這是一個幾何問題...</step>
<step>計算:根據勾股定理...</step>

讓模型生成到</step>就停止,這樣可以精確控制每次只生成一步,然后用驗證器評估這一步的質量。

3. 模仿學習(Imitation Learning)

傳統的訓練數據只包含問題和答案,但在這種方法中,我們的訓練數據還包含了完整的推理步驟。
比如說,原來的訓練數據是:

  • 問題:小明有3個蘋果,小紅給了他2個,他現在有幾個蘋果?
  • 答案:5個

現在的訓練數據變成:

  • 問題:小明有3個蘋果,小紅給了他2個,他現在有幾個蘋果?
  • 推理過程:小明原本有3個蘋果,小紅又給了他2個蘋果,所以總共是3+2=5個蘋果
  • 答案:5個

這里遇到的最大問題是:推理過程的數據從哪里來?讓人工去標注這些推理步驟實在太耗時耗力了。

聰明的解決方案是:讓語言模型自己生成推理過程。市面上已經有很多強大的推理模型,比如GPT-o1、Claude等。最簡單的方法就是知識蒸餾:

  1. 用一個強大的"老師"模型生成推理過程和答案
  2. 讓你的"學生"模型直接學習這些數據
  3. 完成訓練

4. 強化學習

DeepSeek團隊首先創造了一個叫R1-0的模型,這是一個完全用強化學習訓練出來的版本。他們以DeepSeek-V3-Base作為基礎模型,用兩個主要的獎勵信號進行訓練:

  • 正確率獎勵:答對問題得到正向反饋
  • 格式獎勵:要求模型生成特定的思考標記(think token)
    實驗結果表明,這種純粹的強化學習方法確實有效。

真正的DeepSeek-R1:復雜的混合訓練流程

R1-0效果單次嘗試的正確率可以接近GPT-o1,但是它有一個致命問題:生成的推理過程幾乎無法閱讀

官方發布的DeepSeek-R1對R0有了更進一步提升,從而使得其推理過程能正確被閱讀,且效果超過o1。

R1使用的方法其實就是融合了前面提到的四種方法。

第一步:推理數據人工標注

首先,研究團隊用R1-0來生成帶有推理過程的訓練數據。但由于R1-0的輸出質量堪憂,他們投入了大量人力去修改和改寫這些推理過程。

人工標注員需要將模型生成的那些難以理解的推理過程,改寫成人類可以閱讀的版本。

除了改寫R1-0的輸出,他們還使用了CoT:

  • 用少樣本提示(Few-shot CoT)讓其他模型生成推理數據
  • 使用提示工程讓模型生成更詳細、包含反思和驗證的答案

這一步做完后,就可以訓練一個模型了。我們把這個訓練好的模型稱為模型A

第二步:改進的強化學習

接下來,他們對模型A進行強化學習,但這次的強化學習有所改進。除了要求高正確率,還增加了一個重要約束:語言一致性獎勵

如果模型在推理過程中始終使用同一種語言(比如全程英文或全程中文),就會獲得額外獎勵。這樣可以避免模型在推理中頻繁切換語言,提高可讀性。

雖然這個約束會輕微降低模型的正確率,但研究團隊認為這是值得的權衡。

第三步:擴展任務范圍

有了模型B之后,訓練的重點從數學和編程擴展到各種不同類型的任務。他們讓模型B對各種問題生成推理過程和答案。

由于很多任務沒有標準答案,他們使用DeepSeek-V3作為驗證器來判斷答案質量。同時,他們還設置了一些過濾規則,去除那些質量較差的推理過程,比如:

  • 使用多種語言混雜的過程
  • 過于冗長的推理
  • 包含不必要代碼的過程

第四步:大規模模仿學習(模型C)

這一步是自動化的,因此可以生成更多數據。他們收集了60萬條推理數據,同時為了防止模型遺忘之前學到的知識,還加入了20萬條自我輸出數據(讓模型學習自己之前的優質輸出)。

用這80萬條數據對DeepSeek-V3-Base進行模仿學習,得到模型C。

第五步:最終的強化學習

最后,對模型C進行一輪強化學習,重點提升模型的安全性和有用性,最終得到我們使用的DeepSeek-R1。

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

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

相關文章

黑馬程序員C++核心編程筆記--3 函數高級

3.1 函數默認參數 本節內容之前已經整理過&#xff0c;詳見22.函數的默認值 3.2 函數占位參數 C中函數的形參列表里可以有占位參數&#xff0c;用來做占位&#xff0c;調用函數時必須補填該位置 語法&#xff1a; 返回值類型 函數名 (數據類型) {} 在現階段函數的占位參數…

數據倉庫分層 4 層模型是什么?

企業每天都在產生和收集海量數據。然而&#xff0c;面對這些數據&#xff0c;許多企業卻陷入了困境&#xff1a;如何高效管理、處理和分析這些數據&#xff1f;如何從數據中提取有價值的信息來支持業務決策&#xff1f;這些問題困擾著眾多數據分析師和 IT 管理者。 在眾多架構…

Java正則表達式完全指南

Java正則表達式完全指南 一、正則表達式基礎概念1.1 什么是正則表達式1.2 Java中的正則表達式支持 二、正則表達式基本語法2.1 普通字符2.2 元字符2.3 預定義字符類 三、Java中正則表達式的基本用法3.1 編譯正則表達式3.2 創建Matcher對象并執行匹配3.3 常用的Matcher方法 四、…

緩存擊穿、緩存雪崩、緩存穿透以及數據庫緩存雙寫不一致問題

在項目中&#xff0c;我們所需要的數據通常存儲在數據庫中&#xff0c;但是數據庫的數據保存在硬盤上&#xff0c;硬盤的讀寫操作很慢&#xff0c;為了避免直接訪問數據庫&#xff0c;我們可以使用 Redis 作為緩存層&#xff0c;緩存通常存儲在內存中&#xff0c;內存的讀寫速度…

可靈2.1 vs Veo 3:AI視頻生成誰更勝一籌?

在Google發布Veo 3幾天后,可靈顯然感受到了壓力,發布了即將推出的視頻模型系列可靈 2.1的早期體驗版。 據我了解,有三種不同的模式: 可靈 2.1 標準模式: 720p分辨率 僅支持圖像轉視頻(生成更快,一致性更好) 5秒視頻仍需20積分 可靈 2.1 專業模式: 1080p分辨率 僅在圖…

解決Docker存儲空間不足問題

虛擬機磁盤擴展實戰&#xff1a;解決Docker存儲空間不足問題 問題背景 在虛擬機中運行的Linux系統上&#xff0c;Docker服務因根分區空間不足而無法正常運行。初始狀態如下&#xff1a; [rootlocalhost ~]# df -h / 文件系統 容量 已用 可用 已用% 掛載點…

Redis 中如何保證緩存與數據庫的數據一致性?

在 Redis 中保證緩存與數據庫的數據一致性&#xff0c;需結合業務場景選擇以下策略&#xff1a; 核心策略總結 Cache Aside&#xff08;旁路緩存&#xff09;模式 讀操作&#xff1a;先查緩存&#xff0c;未命中則查數據庫并寫入緩存。寫操作&#xff1a;先更新數據庫&#xf…

晶振頻率穩定性:5G 基站與航天設備的核心競爭力

在當今科技飛速發展的時代&#xff0c;電子設備的性能和可靠性至關重要。晶振作為電子設備中的核心部件&#xff0c;為系統提供精確的時間和頻率基準。晶振的頻率穩定性直接影響著設備的整體性能&#xff0c;從日常生活中廣泛使用的智能手機、智能穿戴設備&#xff0c;到對精度…

PDFGear——完全免費且功能強大的PDF處理軟件

關鍵詞 &#xff1a;PDFGear、免費、跨平臺、多功能、OCR 概要 &#xff1a;PDFGear是一款完全免費且功能強大的PDF處理軟件&#xff0c;支持Windows、macOS、iOS和Android等多平臺使用。它集PDF閱讀、編輯、格式轉換、OCR識別及AI智能助手于一體&#xff0c;滿足用戶多樣化文檔…

【筆記】在 MSYS2(MINGW64)中正確安裝 Rust

#工作記錄 1. 環境信息 Windows系統: MSYS2 MINGW64當前時間: 2025年6月1日Rust 版本: rustc 1.87.0 (17067e9ac 2025-05-09) (Rev2, Built by MSYS2 project) 2. 安裝步驟 步驟 1: 更新系統包數據庫并升級已安裝的包 首先&#xff0c;確保我們的 MSYS2 系統是最新狀態。打…

WIN11+VSCODE搭建的c/c++環境調試報錯解決

解決調試報錯 前面win11vscode搭建的c/c環境&#xff0c;ctrlshiftB生成正常&#xff0c;cttlF5運行正常。今天打斷點逐步調試時報錯&#xff0c;提示找不到庫文件。解決方案如下&#xff1a; 下載mingw-w64源碼庫&#xff1a;&#xff08;兩種途徑&#xff09; 通過MSYS2 UC…

React項目在ios和安卓端要做一個漸變色背景,用css不支持,可使用react-native-linear-gradient

以上有個模塊是灰色逐漸到白的背景色過渡 如果是css&#xff0c;以下代碼就直接搞定 background: linear-gradient(180deg, #F6F6F6 0%, #FFF 100%);但是在RN中不支持這種寫法&#xff0c;那應該寫呢&#xff1f; 1.引入react-native-linear-gradient插件&#xff0c;我使用的是…

android-studio-2024.3.2.14如何用WIFI連接到手機(給數據線說 拜拜!)

原文&#xff1a;Android不用數據線就能調試真機的方法—給數據線說 拜拜&#xff01;&#xff08;adb遠程調試&#xff09; android-studio-2024.3.2.14是最新的版本&#xff0c;如何連接到手機&#xff0c;可用WIFI&#xff0c;可不用數據線&#xff0c;拜拜 第一步&#xf…

【前端】JS引擎 v.s. 正則表達式引擎

JS引擎 v.s. 正則表達式引擎 它們的轉義符都是\ 經過JS引擎會進行一次轉義 經過正則表達式會進行一次轉義在一次轉義中\\\\\的轉義過程&#xff1a; 第一個 \ (轉義符) 會“吃掉”第二個 \&#xff0c;結果是得到一個字面量的 \。 第三個 \ (轉義符) 會“吃掉”第四個 \&#x…

ReactHook有哪些

React 中常用的 Hooks 列表及用法 React Hooks 是 React 16.8 版本引入的一項重要特性&#xff0c;它極大地簡化和優化了函數組件的開發過程。以下是 React 中常用的 Hooks 列表及其詳細用法&#xff1a; 1. useState useState 是用于在函數組件中添加狀態的 Hook。通過調用…

【PyQt5】PyQt5初探 - 一個簡單的例程

PyQt5初探 - 一個簡單的例程 引言一、安裝配置二、使用2.1 PyQt5簡單例程2.2 與c Qt深入對比 三、相關教程 引言 PyQt5是一個比較流行的Python圖形用戶界面(GUI)庫&#xff0c;它基于Qt庫&#xff08;一個跨平臺的C庫&#xff0c;用于開發應用程序的圖形界面&#xff09;為Pyt…

圖文詳解Java并發面試題

文章目錄 1、并發與并行2、線程安全3、線程、進程、協程4、線程間通信5、線程創建方式6、8G內存創建的線程數7、普通Java程序含有的線程8、start()、run()9、線程調度、6種狀態、強制停止線程、上下文切換10、守護線程、用戶線程11、 volatile 、synchronized12、sleep() 、 wa…

飛牛fnNAS存儲空間模式詳解

目錄 一、NAS的存儲空間 二、多硬盤對NAS速度的提升原理 三、多硬盤對數據安全的提升原理 四、多硬盤對容量的提升原理 五、磁盤陣列模式 六、飛牛NAS支持的存儲模式 七、具體如何選擇存儲空間模式 在數字化時代,數據是個人和企業發展的核心資產,但面臨硬盤損壞、病毒…

OpenCv高階(二十)——dlib臉部輪廓繪制

文章目錄 一、人臉面部輪廓繪制代碼實現1、定義繪制直線段的函數2、定義繪制凸包輪廓的函數3、讀取輸入圖像4、初始化dlib的人臉檢測器5、使用檢測器在圖像中檢測人臉&#xff08;參數0表示不進行圖像縮放&#xff09;6、加載dlib的68點人臉關鍵點預測模型7、遍歷檢測到的每個人…

WEBSTORM前端 —— 第3章:移動 Web —— 第3節:移動適配

目錄 一、移動Web基礎 1.谷歌模擬器 2.屏幕分辨率 3.視口 4.二倍圖 二、適配方案 三、rem 適配方案 四、less 1.less – 簡介 2.less – 注釋 3.less – 運算 4.less – 嵌套 5.less – 變量 6.less – 導入 7.less – 導出 8.less – 禁止導出 五…