微軟發布Orca2,“調教式”教會小規模大語言模型如何推理!

我們都知道在大多數情況下,語言模型的體量和其推理能力之間存在著正相關的關系:模型越大,其處理復雜任務的能力往往越強。

然而,這并不意味著小型模型就永遠無法展現出色的推理性能。最近,奶茶發現了微軟的Orca2公開了論文,它詳細探討了如何提升小型大語言模型的推理能力,這樣的研究無疑是在資源有限或對模型大小有特定要求的場景的重大進步。接下來,讓我們一起來了解這篇論文的詳細工作吧!

論文題目:
Orca 2: Teaching Small Language Models How to Reason
論文鏈接:
https://arxiv.org/pdf/2311.11045.pdf

在研究團隊之前發布的Orca1中,通過使用解釋跟蹤這類更豐富的信號訓練模型,已經超過了傳統指令調優模型在BigBench Hard和AGIEval基準測試中的表現。

大模型研究測試傳送門

GPT-4傳送門(免墻,可直接測試,遇瀏覽器警告點高級/繼續訪問即可):
http://hujiaoai.cn

在Orca2中,研究團隊繼續探索了改進訓練信號來增強小型的大語言模型的推理能力。實驗結果證明過度依賴模仿學習(即復制更強大模型的輸出)可能會限制小模型的潛力。

Orca 2的目標是教會小模型如逐步處理、回憶-生成、回憶-推理-生成、提取-生成和直接回答這些推理技巧,并幫助這些模型決定何時使用最有效的推理策略,研究團隊稱這種方法為“謹慎推理”(Cautious Reasoning),旨在根據任務選擇最佳解決策略。Orca 2模型在15個不同的基準測試(包括約100個任務和超過36000個獨特提示)上進行了評估,表現顯著超過同等大小的模型,并達到或超過了體量為其5-10倍的模型的性能水平。

調優方法

研究團隊采用了 “指令調優”(instruction tuning)和“解釋調優”(explanation tuning) 的方法。

指令調優

指令調優(Instruction Tuning)是訓練的關鍵步驟,涉及從自然語言任務描述和期望行為示范的輸入-輸出對中學習。輸入的是任務的描述,輸出是期望的行為的演示,通過過自然語言任務描述(輸入)和所需行為的演示(輸出)來學習。這種方法在模仿“教師”模型的風格方面非常有效,然而,研究也表明,在對知識密集或推理密集型任務進行評估時,這種方法容易僅復制“風格”,忽視答案的正確性。

解釋調優

針對指令調優的問題,研究團隊引入了解釋調優(Explanation Tuning),使它們能夠從教師模型那里獲取更豐富、更有表現力的推理信號。這些信號是基于系統指令提取的,旨在從強大的LLM(如GPT-4)中提取“慢思考”(Slow Thinking)的豐富示范。通過系統指令獲得詳細解釋來訓練學生模型,目的是提取豐富的、更具表現力的推理信號。

解釋調優開始于編制N個通用系統指令,使模型進行更謹慎的推理,例如“逐步思考”和“生成詳細答案”。接下來,這些指令與廣泛且多樣化的用戶提示結合,形成一個包含(系統指令,用戶提示,LLM答案)的三元組數據集。

學生模型被訓練以根據系統指令和用戶提示來預測LLM的答案。如果用戶提示可以被分為M個不同的類別,這些類別代表了不同類型的問題,解釋調優就會生成M×N個不同的答案組合,從而增加訓練數據的數量和多樣性。

實驗設計

數據集構建

Orca 2數據集有四個主要來源,包括FLAN-v2集合的各個子集合。這些子集合包含多個任務,總共1913個任務。從這些任務中選擇了約包含23個類別的602K個零樣本的用戶查詢,用來構建Cautious-Reasoning-FLAN數據集。

訓練目標

Orca 2模型的訓練起始于LLaMA-2-7B或LLaMA-2-13B的檢查點,首先對FLAN-v2數據集進行了精細的微調處理。隨后,模型在Orca 1提供的500萬條ChatGPT數據上進行了為期3個周期的訓練,繼而在Orca 1和Orca 2共計110萬條GPT-4數據和817千條數據上進行了4個周期的深入訓練。在這一過程中采用了LLaMA的字節對編碼(BPE)分詞器來處理輸入樣本,并運用了打包技術,不僅提高了訓練過程的效率,也確保了計算資源的高效利用。

基線模型

在基準測試中,Orca 2與多個最新的模型進行比較,包括LLaMA-2模型系列和WizardLM。

實驗

在實驗中,Orca 2與多個最新的模型進行了基準測試,包括LLaMA-2模型、WizardLM和GPT模型。這些測試涉及到各種任務,以評估Orca 2在開放式生成、摘要、安全性、偏見、推理和理解能力方面的性能。其中,實驗室提到了Orca-2-13B和Orca-2-7B兩個模型,是Orca 2項目中公開的語言模型,區別是模型的參數量。

被選中的基準測試包括:

  • AGIEval:包括一系列標準化考試,如GRE、GMAT、SAT、LSAT、律師資格考試、數學競賽和國家公務員考試等。

  • DROP:一個需要模型執行諸如加法或排序等離散操作的閱讀理解基準測試。

  • CRASS:評估LLM的反事實推理能力的數據集。

  • RACE:從中國學生英語考試中提取的閱讀理解問題集合。

  • BBH (Big-Bench Hard):BIG-Bench的23個最難任務的子集。

  • GSM8K:測試多步驟數學推理能力的單詞問題集合。

  • MMLU:衡量模型語言理解、知識和推理能力的基準測試,包含57個任務。

  • ARC:AI2推理挑戰,是一個測試文本模型回答科學考試多項選擇題的基準測試,分為“簡單”和“挑戰”兩個子集。

除了上述基準測試外,還進行了針對文本完成、多輪開放式對話、歸納和抽象性摘要、安全性和真實性的評估。

推理能力

Orca 2在多種推理基準上的平均表現顯示了其顯著的推理能力。特別是在AGI Eval、BigBench-Hard (BBH)、DROP、RACE、GSM8K和CRASS測試中,Orca 2的表現超過了同等大小的其他模型。在更大的模型間的比較中,Orca 2-13B的表現與更大的LLaMA-2-Chat-70B相當,并與WizardLM-70B相比較為接近。

知識與語言理解

在MMLU、ARC-Easy和ARC-Challenge任務中,Orca 2-13B的表現超過了同等大小的LLaMA-2-Chat-13B和WizardLM-13B。在MMLU基準上,Orca 2-13B與更大的LLaMA-2-Chat-70B和WizardLM-70B的表現相似。

文本完整度

在HellaSwag和LAMBADA測試中,Orca 2-7B和Orca 2-13B均展現出較強的文本完成能力,特別是在HellaSwag測試中表現超過了13B和70B的基準模型。

多輪開放式對話

在MT-Bench數據集上,Orca 2-13B與其他13B模型的表現相當。這表明Orca 2具有參與多輪對話的能力,盡管其訓練數據中缺少對話內容。

基于對話的概括和抽象概括

在三個不同的任務中,Orca 2-13B展現了最低的虛構信息生成率,相較于其他Orca 2變體以及其他13B和70B的LLM模型。

安全性和真實性

在ToxiGen、HHH和TruthfulQA等數據集上的安全性評估顯示,Orca 2在識別有毒聲明和中性聲明方面的表現與其他大小相當的模型相比具有一定的優勢。

Orca 2模型在所進行的基準測試中整體表現卓越,明顯超越了同等規模的其他模型,并能與其體量為5至10倍的模型相抗衡。特別是在零樣本推理任務上,Orca-2-13B的成績顯著高于同類模型,相較于LLaMA-2-Chat-13B和WizardLM-13B,分別取得了47.54%和28.15%的相對提升。這一成績凸顯了Orca 2訓練流程的高效性。這些成果展示了即使在較小規模的大語言模型中,通過精細的訓練方法也能達到優異的推理能力。Orca 2在推理任務上的表現不僅在同等規模模型中脫穎而出,而且在某些場合甚至可與大型的模型匹敵,這對小型模型的進步和發展具有重要的啟示意義。

模型的限制

在論文的第7部分,作者們討論了Orca 2模型的一些限制。這些限制不僅包括基于LLaMA 2模型家族的Orca 2所繼承的限制,還包括大型語言模型和Orca 2特定訓練過程中的通用限制:

1.數據偏見:基于大量數據訓練的大語言模型可能無意中承載了源數據中的偏見。導致偏見或不公平的輸出。

2.缺乏透明度:由于復雜性和規模,大語言模型表現得像“黑盒子”,難以理解特定輸出或決策背后的邏輯。

3.內容傷害:大語言模型可能造成各種類型的內容傷害,建議利用不同公司和機構提供的各種內容審查服務。

4.幻覺現象:作者建議要意識到并謹慎地避免完全依賴于語言模型進行關鍵決策或信息,因為目前還不清楚如何防止這些模型編造內容。

5.濫用潛力:如果沒有適當的保護措施,這些模型可能被惡意用于生成虛假信息或有害內容。

6.數據分布:Orca 2的性能可能與調優數據的分布密切相關。這種相關性可能會限制模型在訓練數據集中代表性不足的領域(如數學和編碼)的準確性。

7.系統信息:Orca 2根據系統指令的不同表現出性能的變化。此外,模型大小引入的隨機性可能導致對不同系統指令產生非確定性響應。

8.零樣本設置:Orca 2主要在模擬零樣本設置的數據上進行訓練。雖然模型在零樣本設置中表現非常強勁,但與其他更大模型相比,它并沒有展現出使用少樣本學習的同等增益。

10.合成數據:由于Orca 2是在合成數據上訓練的,它可能繼承了用于數據生成的模型和方法的優勢和缺點。作者認為Orca 2受益于訓練過程中納入的安全措施和Azure OpenAI API中的安全護欄(如內容過濾器)。然而,需要更詳細的研究來更好地量化這些風險。

11.小型模型容量:訓練后的小型模型,雖然在教會模型解決任務方面大有裨益,但并不一定會教會模型新知識。因此,訓練后的模型主要受限于預訓練期間學到的知識。

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

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

相關文章

自動化操作腳本

文章目錄 vbsopenCV pyautogui vbs SSH連接并執行指令操作 Dim WshShell Set WshShellWScript.CreateObject("WScript.Shell") WshShell.Run "cmd.exe" WScript.Sleep 1000 WshShell.SendKeys "ssh xcmg10.27.40.103" WshShell.SendKeys &qu…

xxl-job詳解

目錄 1、xxl-job介紹1.1 xxl-job的原理1.1.1 執行器的注冊和發現1.1.2 調度中心調用執行器 1.2 quartz和xxl-job對比 2、快速入門2.1 下載并啟動2.2 在調度中心新增定時任務2.3 任務運行模式(BEAN、GLUE)2.4 xxl-job的總結 3、后端專屬技術群 1、xxl-job介紹 ? xxl-job是一個…

Python源碼30:海龜畫圖turtle畫紫色的小熊

turtle模塊是一個Python的標準庫之一,它提供了一個基于Turtle graphics的繪圖庫。Turtle graphics是一種流行的繪圖方式,它通過控制一個小海龜在屏幕上移動來繪制圖形。 turtle模塊可以讓您輕松地創建和控制海龜圖形,從而幫助您學習Python編…

Qt12.8

使用手動連接,將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中,在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中,在槽函數中判斷ui界面上輸入的賬號是否為"admin",密碼是否為…

lv11 嵌入式開發 中斷控制器14

目錄 1 中斷控制器 ?編輯 2 Exynos4412下的中斷控制器 2.1 概述 2.2 特征 ?編輯 2.3 中斷狀態 2.4 中斷類型 2.5 中斷控制器GIC中斷表 3 中斷控制器寄存器詳解 3.1 ICDDCR(Interrupt Controller Distributor Control Register) 3.2 ICDISER…

當你還在糾結用什么技術時,這位獨立開發者用PHP和JavaScript實現財務自由了

大家好,我是風箏,微信搜「古時的風箏」,更多干貨 一個個人產品賣了5400萬,這大概就是最成功的獨立開發者了吧 這位獨立開發者是 levelsio,他的真名是 Pieter Levels,是一位荷蘭的獨立開發者。看看人家的工…

WPF DataGrid 動態增加列

方式一:通過DataGrid 數據源即DataTable,在DataTable里面動態增加了列之后,重新構造每一行數據,設置DataGrid.ItemsSource null; 然后再重新設置ItemsSource到DataTable public partial class MainWindow : Window{public MainWi…

【Java基礎系列】Cron表達式入門

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

優秀案例 | 元宇宙雙語財經科技主播“舒望”主持首屆粵港澳大灣區元宇宙國際傳播論壇

12月6日,由南方財經全媒體集團指導、大灣區元宇宙國際傳播實驗室(GBA MIC Lab)主辦、南財國際傳播中心和21世紀經濟報道共同承辦,以“多元共創開放共享”為主題的首屆粵港澳大灣區元宇宙國際傳播論壇在廣州隆重開幕。 “立足灣區,…

Kubernetes - 為什么 K8S 在容器里不能調用自己?

問題描述 最近遇到一個神奇的現象,在 K8S 的 POD 容器中,比如 pod name:mini-appnamespace:devport:5050 那么,是無法在 mini-app 容器里執行以下命令,如果執行,會一直卡在這條命…

一文詳解Java單元測試Junit

文章目錄 概述、Junit框架快速入門單元測試概述main方法測試的問題junit單元測試框架優點:使用步驟: 使用案例包結構 Junit框架的常見注解測試 概述、Junit框架快速入門 單元測試概述 就是針對最小的功能單元(方法),…

ROS rosbag

在ROS中的rosbag是一個命令行工具,主要用于記錄、回放和分析rostopic中的數據。它可以將指定rostopic中的數據記錄到.bag后綴的數據包中,以便于進行離線分析和處理。 在ROS系統中,rosbag可以通過命令行工具或ROS節點來使用。 通過rosbag命令…

數字圖像處理(實踐篇)十九 漫水填充

目錄 一 漫水填充算法--FloodFill 二 涉及的函數 三 實踐 一 漫水填充算法--FloodFill FloodFill漫水填充算法就是選中與種子點相連接的區域,利用指定顏色進行區域顏色填充。可以通過設置連通方式或像素的范圍控制填充的效果。通常是用來標記或者分離圖像的一部…

進程地址空間

引入地址空間 靜態變量和棧空間變量 靜態變量默認是被初始化的 存放在初始化和為初始化空間中 static已經變成了全局變量 命令行參數和環境變量的增長方向 這里觀察的是命令行參數和環境變量的地址 觀察命令行和環境變量表的地址 進程地址空間 如果他們是同一塊兒空間&am…

Ubuntu22.04 交叉編譯fdk-aac for Rv1106

一、下載fdk-aac git clone https://github.com/mstorsjo/fdk-aac.git 二、編譯 mkdir build cd buildcmake -DCMAKE_CXX_COMPILER/opt/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g -DCMAKE_C_COMPILER/opt/arm-rockchip830-linux-…

軟件測試——集成測試

集成測試是在單元測試之后,將各個獨立單元(通常是已經通過單元測試的模塊或組件)組合在一起,測試它們在一起協同工作的過程。以下是進行集成測試的一般步驟和最佳實踐: 1. 明確定義集成測試的目標 確定集成測試的目標…

麒麟v10 數據盤初始化 gpt分區

麒麟v10 數據盤初始化 gpt分區 1、查看磁盤 lsblk2 、分區 parted2.1、 設置磁盤分區形式2.2、 設置磁盤的計量單位為磁柱2.3、 分區2.4、 查看分區 3、分區格式化4、 掛載磁盤4.1、新建掛載目錄4.2、掛載磁盤4.3、查看掛載結果 5、設置開機自動掛載磁盤分區5.1、 查詢磁盤分區…

ClamAV開源病毒庫使用例子

ClamAV是一個開源的反病毒引擎,用于檢測惡意軟件和病毒。ClamAV提供了一個名為cl_scanfile的函數,用于掃描單個文件是否包含病毒。以下是一個使用cl_scanfile函數的示例代碼: 首先,確保已經安裝了ClamAV庫。在Debian/Ubuntu系統中…

用AI來糾正錯別字和修飾文字

▲ 搜索“大龍談智能內容”關注GongZongHao▲ 在使用谷歌翻譯或百度翻譯將英語翻譯成中文時,有些句子讀起來不太流暢。我嘗試使用AI來幫助我修改翻譯后的中文,希望能讓句子更符合中文習慣。 使用百度文心一言嘗試一下。 文心一言的鏈接是這個&#x…

VUE3給table的head添加popover篩選、時間去除時分秒、字符串替換某字符

1. VUE3給table的head添加popover篩選 <el-tableref"processTableRef"class"process-table"row-key"secuId":data"pagingData"style"width: 100%"highlight-current-row:height"stockListHeight":default-exp…