目錄
資料集
指令微調語言模型
實驗
首頁 科技週邊 人工智慧 首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

Apr 10, 2023 pm 02:21 PM
ai 模型

我們知道,從Google T5 模型到 OpenAI GPT 系列大模型,大語言模型(LLMs)已經展現了令人印象深刻的泛化能力,例如上下文學習和思維鏈推理。同時為了使得 LLMs 遵循自然語言指令和完成真實世界任務,研究人員一直在探索 LLMs 的指令微調方法。實作方式有兩種:一是使用人類標註的 prompt 和回饋在廣泛任務上微調模型,二是使用透過手動或自動產生指令增強的公共基準和資料集來監督微調。

在這些方法中,Self-Instruct 微調是一種簡單有效的方法,它從SOTA 指令微調的教師LLMs 產生的指令遵循資料中學習,使得LLMs 與人類意圖對齊。事實證明,指令微調已成為提升 LLMs 零樣本和小樣本泛化能力的有效手段。

最近,ChatGPT 和 GPT-4 的成功為使用指令微調來改進開源 LLMs 提供了巨大的機會。 Meta LLaMA 是一系列開源 LLMs,其性能與 GPT-3 等專有 LLMs 相媲美。為了教導 LLaMA 遵循指令,Self-Instruct 因其卓越性能和低成本而被快速採用。例如史丹佛的 Alpaca 模型使用 GPT-3.5 產生的 52k 指令遵循樣本,Vicuna 模型使用約 70k 來自 ShareGPT 的指令遵循樣本。

為了推進LLMs 指令微調的SOTA 水平,微軟研究院在其論文《Instruction Tuning with GPT-4》中首次使用GPT-4 作為教師模型進行self-intruct 微調。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

  • 論文網址:https://arxiv.org/pdf/2304.03277.pdf
  • #專案位址:https://instruction-tuning-with-gpt-4.github.io/
  • GitHub 網址:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM

研究者一方面發布了GPT-4 產生的數據,包括中英文的52k 指令遵循數據集、GPT-4 產生的對三種指令微調模型的輸出進行評級的回饋數據。 

另一方面基於 GPT-4 產生的資料開發了指令微調的 LLaMA 模型和獎勵模型。為了評估指令微調LLMs 的質量,研究者使用三個指標對測試樣本進行評估:對三個對齊標準的人工評估、基於GPT-4 反饋的自動評估以及非自然指令的ROUGE-L(自動文摘評測方法之一)。

實驗結果驗證了使用 GPT-4 產生的資料進行 LLMs 指令微調的有效性。 GPT-4 產生的 52k 中英指令遵循資料在新任務上實現了較以往 SOTA 模型更好的零樣本效能。目前,研究者已經公開了使用 GPT-4 產生的數據以及相關代碼。

資料集

該研究使用 GPT-4 產生以下四個資料集:

#
  • 英文指令遵循資料集(English Instruction-Following Data):對於從 Alpaca 收集到的 52K 指令,每個指令都提供了一個英文 GPT-4 答案。此資料集主要用來探索和比較 GPT-4 答案和 GPT-3 答案的資料統計。
  • 中文指令遵循資料集(Chinese Instruction-Following Data):研究使用 ChatGPT 將 52K 指令翻譯成中文,並要求 GPT-4 用中文回答。
  • 比較數據(Comparison Data):讓 GPT-4 給自己的反應評分,分數範圍從 1 到 10。此外,研究還要求 GPT-4 對 GPT-4、GPT-3.5 和 OPT-IML 三種模型的反應進行比較和評分。這資料集主要用來訓練獎勵模型。
  • 非自然指令的回答(Answers on Unnatural Instructions):GPT-4 的答案在 68K 指令 - 輸入 - 輸出三組核心資料集上解碼。此子集用於量化 GPT-4 與指令微調模型之間的差距。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

圖 1 比較了 GPT-4 和 GPT-3.5 的英文輸出回應集。圖1 (a) 和(b) 顯示了兩個輸出集合頻率高於10 的動- 名詞對(verb-noun pairs),圖1 (c) 比較了兩個集合中出現頻率最高的25 對單詞,圖1 (d) 比較了序列長度的頻率分佈,結果顯示,GPT-4 傾向於產生比GPT-3.5 更長的序列。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

指令微調語言模型

#該研究基於LLaMA 7B checkpoint、並使用監督微調訓練了兩個模型:( i) LLaMA-GPT4 ,在GPT-4 產生的52K 英語指令遵循資料上訓練。 (ii) LLaMA-GPT4-CN,在來自 GPT-4 產生的 52K 中文指令遵循資料上訓練完成。

獎勵模型

#人類回饋強化學習(RLHF) 旨在使LLM 行為與人類偏好保持一致,獎勵建模是其關鍵部分之一,這個問題被往往公式化為回歸任務,以預測給定提示和反應之間的獎勵。但這種方法通常需要大規模的比較數據,現有開源模型如 Alpaca、Vicuna 和 Dolly 由於標註比較數據成本很高,因此不涉及 RLHF。同時,最近的研究表明,GPT-4 能夠識別和修復自己的錯誤,並準確判斷反應的品質。因此,為了促進 RLHF 的研究,該研究使用 GPT-4 創建了比較數據,如上所述。

為了評估資料質量,該研究還訓練了一個基於 OPT 1.3B 的獎勵模型進行該資料集的評估。比較數據的分佈如圖 2 所示。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

實驗

該研究利用以下三種類型進行評估:人類評估、GPT-4 以及非自然指令評估。結果證實,與其他機器產生的數據相比,使用 GPT-4 產生的數據是進行 LLM 指令微調的一種高效且有效的方法。接下來我們來看看具體實驗過程。

人類評估

#圖3 (a) 為LLaMA-GPT4 vs Alpaca 比較結果,實驗顯示在Helpfulness 這項指標下,GPT-4 以54.12% 的得分勝出。圖 3 (b) 為 LLaMA-GPT4 vs GPT-4 比較結果,顯示 GPT-4 指令微調的 LLaMA 的表現與原始的 GPT-4 類似。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

與使用自動求值的 SOTA 進行比較

研究使用 GPT-4 對不同模型在 80 個未見問題上的回答進行自動評估。首先從LLaMA-GPT-4 (7B) 和GPT-4 兩個聊天機器人中收集答案,並使用其他聊天機器人發布答案,包括LLaMA (13B),Alpaca (13B),Vicuna (13B),Bard (谷歌, 2023) 和ChatGPT。對於每次評估,研究要求 GPT-4 對兩個模型之間的反應品質進行評分,評分範圍從 1 到 10。結果如圖 4 所示。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

圖 4 (c,d) 比較了所有聊天機器人。 LLaMA_GPT4 性能更高:7B LLaMA GPT4 的性能優於 13B Alpaca 和 LLaMA。然而,LLaMA_GPT4 與 GPT-4 等大型商業聊天機器人相比,仍有差距。

研究者在下圖 5 中進一步研究了所有聊天機器人的表現。首先使用 GPT-4 將聊天機器人的英文回應翻譯成中文,接著使用 GPT-4 將英文問題翻譯成中文以獲得答案。與 GPT-4 翻譯和產生的中文回應的比較如 5 (a) 和 5 (b) 所示,5 (c) 中顯示了所有被要求用中文回答的模型結果。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

在下圖 6 中,研究者將 LLaMA-GPT4 與 GPT-4、Alpaca 非自然指令進行比較。結果顯示,LLaMA-GPT4 和 GPT-4 隨 ground truth 反應長度的增加表現較好。這意味著當場景更具創意時,它們可以更好地遵循指令。當序列長度較短時,LLaMA-GPT4 和 GPT-4 都能產生包含簡單 ground truth 答案的回應,並且添加額外單字可以讓回應更像聊天。

首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升

更多技術和實驗細節請參閱原始論文。

以上是首次:微軟用GPT-4做大模型指令微調,新任務零樣本效能再提升的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1320
25
PHP教程
1269
29
C# 教程
1249
24
C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。

See all articles