chatgpt是怎么誕生的,詳解GPT1到GPT4的演化之路及相關背景知識

人工智能革命正在發生,我們是何其幸運的一代,能親眼見證人類/機器智能的大爆發。

僅僅作為這場革命的看客顯然是有些遺憾的,如何進一步了解它?

本文將討論chatgpt的誕生過程,串聯起OpenAI發表的一系列重要論文,幫助讀者更好的了解這場革命背后的原理。

革命源頭——機器學習和深度學習

chatgpt相關的所有技術都起源于機器學習這門學科,我們首先簡單討論下相關背景。

機器學習是一種通過算法和模型使計算機從數據中自動學習并進行預測或決策的技術(百度百科)。

通常的做法是:

  1. 我們收集一些訓練數據并給與標注(如收集一些圖片,然后根據圖片內容,將圖片標注為不同的類別),然后將這些數據劃分為訓練集(用于訓練模型)和測試集(用于測試模型效果)。
  2. 然后選擇一個合適的機器學習模型,然后將訓練集喂給它,讓它學習從輸入到標注的映射規律,這一學習過程被稱為模型訓練階段,在這一過程中,模型的權重/參數會不斷更新,并最終收斂不再變化。
  3. 隨后我們會拿這個收斂的模型/訓練好的模型去預測測試集中的數據,將測試集數據輸入模型后,模型會計算出相應的預測輸出。通過觀察測試集上的效果,我們得以評估模型的好壞,這一過程被稱為測試階段。

自上世紀90年代起,機器學習一直處于蓬勃發展階段,大量的算法被不斷推出,它們在特定數據集/特定領域上表現良好,然而它們能力有限還無法部署到現實世界解決通用問題。

與此同時,一種特別適合大規模訓練的機器學習算法——神經網絡被發明出來,而利用神經網絡模型進行學習的這一機器學習分支被稱為深度學習。 2012年,在大規模圖像分類數據集imagenet的催動下,深度學習爆發。在這一階段,訓練數據集和模型規模都比以前有了大幅度提高,模型可以部署到現實世界解決特定領域的問題而不僅僅在測試數據上表現良好,比如人臉識別,目標檢測等領域,模型可以在真實世界解決這些問題。與此同時,AI工業界開始繁榮,一些專門的AI公司也開始出現,比如AI四小龍。

革命背景——自然語言處理

根據研究對象的不同,人們將人工智能分成了若干分支,比如自然語言處理,計算機視覺,語音識別等,其中自然語言處理是借助計算機技術研究怎樣處理人類語言的學科。它的研究問題包括語言翻譯、情感分析、文本摘要等任務,它使用的方法主要是機器學習方法。

一如前文所講,自然語言處理也會面臨無法在現實世界應用/只能解決特定問題的困境。

2017年,google的研究人員在研究機器翻譯任務時提出了transformer神經網絡,這是一種特別適合大規模計算的網絡,可以將訓練規模擴大到驚人之境。transformer的誕生催動了訓練語言模型時代的到來。

2018年,借助transformer網絡和預訓練技術,OpenAI和google的研究人員分別提出了GPT和bert,這兩種模型都可以解決大量任務而不是特定任務,這顛覆了以前的自然語言研究方法。訓練語言模型解決通用語言任務的時代到來了。

革命導火索——GPT

OpenAI的研究人員借助transformer模型,提出了GPT,

GPT方法核心是提出了利用transofmer進行無監督預訓練 + 判別式監督微調的訓練范式。

簡單來說,就是先讓模型在大量沒標過標簽的文本(比如很多本書)上進行訓練,學習語言的規律,這一步叫生成式預訓練。之后,再針對具體的任務(比如文本分類、問答等),用有標簽的數據對模型進行微調,讓它適應具體任務,這一步是判別式微調。

這種方法的好處是,不需要為每個具體任務專門設計復雜的模型結構,通過對輸入進行一些針對性的轉換,就能讓同一個基礎模型在多種任務上發揮作用。實驗顯示,這種方法在 12 個任務中的 9 個都刷新了當時的最佳成績,比如在常識推理任務上提升了 8.9%,問答任務上提升了 5.7% 等。

尤其令人驚喜的是,作者通過Zero-shot實驗證明了transformer在預訓練后學到的表示確實有利于零樣本解決各類下游任務,有可能不需要專門針對每個具體任務訓練,一個無監督預訓練任務即可解決一切。

這一實驗現象和想法催促了后續GPT模型的開發。

方法

單向自左向右語言建模架構

gpt1采用了transformer的Decoder部分,只有位置編碼部分和原始實現不同,將固定位置編碼換成可訓練的位置編碼。

預訓練任務

  1. 預訓練目標采用傳統經典的語言模型目標函數,給定前文,最大化后一個詞的概率。
  2. 文本處理方式:僅在原始文本中添加開始和結束標識。

微調階段

1 目標函數是下游任務的目標函數+語言模型目標函數

(作者解釋額外的語言模型目標函數可以提高下游任務性能,但在隨后的實驗中表明,對于小數據集,這個額外目標函數并沒有用,對較大數據集有用。)

2 文本處理方式:任務特定的文本處理方式,添加分割符,根據不同任務類型拼接問題答案,句子對等
在這里插入圖片描述

革命領路人——GPT2

gpt1論文中初步探索了語言模型進行零樣本學習的潛力:只依靠無監督預訓練,不使用監督數據訓練便有望解決各類下游任務,但整體論文架構還是基于預訓練-微調的范式。

后繼者gpt2(Language Models are Unsupervised Multitask Learners)不再基于預訓練-微調,去掉微調階段,完全專注探討純無監督預訓練能否解決各類下游任務。這是一個雄心勃勃的想法。

研究人員觀察到以前的研究包括GPT1往往在單領域/單任務數據集(如GP1是在一個較大圖書數據集上進行訓練)訓練,導致模型缺乏足夠的泛化能力。

如果用領域更豐富,任務更豐富的數據進行訓練會是怎樣?

研究人員隨后構建了一個很大的互聯網網頁構成的數據集—— WebText 語料庫,規模為40GB,這個規模遠超以前的研究,然后利用和GPT1相似的架構在該數據集上進行了訓練。

研究人員利用訓練好的模型做了若干實驗,以評估模型的能力。研究人員主要做了兩大類實驗

  • 一類是語言建模實驗,給定上文評估模型下文的預測能力,在 8 個語言建模數據集里,有 7 個它在零樣本設置下都取得了最先進的結果,這表明GPT2建模文本,預測下文文本,續寫文本的能力非常強大.

  • 在這里插入圖片描述

  • 一類是標準自然語言處理任務,如閱讀理解,翻譯,摘要,問答,研究人員采用了零樣本設定,僅輸入適當提示來讓GPT2完成這些任務,實驗表明GPT2有潛力解決這些任務,但和SOTA相比還有顯著差距,這也促使了GPT-3的誕生。
    在這里插入圖片描述

革命曙光——GPT3

純粹依靠無監督訓練的gpt2(GPT2——通用語言模型的探路者)在閱讀理解翻譯,問答,摘要等任務下的有限表現促使作者進步進一探索如何更好的解決各類任務。他們結合少樣本學習,推出了gpt3(Language Models are Few-Shot Learners).

gpt3對gpt2的主要改進包括:

  • 推理/預測時使用更多的上下文,GPT3推理時的輸入包括任務示例:問它前可以給一些例子,GPT3能根據示例提示進行舉一反三,給出更好的回答。
  • 更大的模型 (gpt3系列 最大175B,gpt2系列 最大1.5B,參數量增大100倍)
  • 更多的訓練數據(10倍以上)

實驗表明GPT3就能在很多自然語言處理任務中表現出色。無需進行微調只需要給適當的任務示例即可很好的解決下游任務,比如翻譯、問答、填空,還有一些需要即時推理或適應新領域的任務,像解字謎、用新單詞造句、做三位數算術等,它都能較好地完成。
在這里插入圖片描述

另外,GPT-3 生成的新聞文章,人類評估者很難區分是機器寫的還是人類寫的,研究人員也討論了這一發現以及 GPT-3 帶來的更廣泛的社會影響。

革命奠基石——InstructGPT

無監督訓練的gpt3(GPT3——少樣本示例推動下的通用語言模型雛形) 雖然具有強大的能力,但是在遵循用戶意圖/指令方面存在不足,如生成虛假、有毒或無用內容,依賴少樣本提示等方法的引導。

這是因為其無監督訓練目標與 “遵循用戶指令并保障安全有益” 的目標不一致。也許無監督訓練更多的是讓語言模型具備了海量知識,但對于怎么遵循用戶指令給出有益回答,語言模型還需要進一步學習。openai隨后推出的 InstructGPT(Training language models to follow instructions with human fdeeedback) ,通過人類反饋微調(fine-tuning with human feedback) gpt3, 讓語言模型做到這點。

方法

作者結合監督學習和人類反饋強化學習微調 GPT-3。
在這里插入圖片描述

  1. 先收集標注員撰寫的提示和 OpenAI API 提交的提示,標注回復,形成示范數據集,用監督學習微調 GPT-3,得到SFT-GPT3;
  2. 接著收集不同模型輸出的比較數據(對于每個輸入,多個模型給出輸出,標注員按照評估標準,標注出這些輸出的排名),訓練獎勵模型RM;
  3. 最后以SFT-GPT3 為起點,用近端策略優化算法(PPO)基于獎勵模型優化策略,得到InstructGPT”

通過監督微調(SFT)和基于人類反饋的強化學習(RLHF),GPT3得以進化為InstructGPT,顯著提升了遵循用戶意圖和指令的能力,同時改善了輸出內容的安全性和實用性。

這一工作開啟了基于人類反饋微調的大模型新范式。

InstructGPT 的成功為 ChatGPT 的誕生奠定了關鍵技術基礎。不到一年后, 2022 年 11 月 30 日ChatGPT 由 OpenAI 正式推出。

InstructGPT 之后OpenAI不再發表核心技術論文。本文后面部分我們會進行一些推斷而不再基于其論文。

革命高潮——chatGPT,GPT4

從 InstructGPT 到 ChatGPT:語言模型開始改變世界

InstructGPT 標志著大語言模型開始以“服務人類意圖”為核心目標,這一技術路線在 InstructGPT 基礎上繼續發展,最終催生了 ChatGPT 的第一個版本 —— GPT-3.5。

2022 年 11 月 30 日,OpenAI 正式推出 ChatGPT。在此之前ai研究者基本還是發論文,提出新算法為主,沒想到這次他們改變世界了。

ChatGPT 不再局限于對單輪輸入做出回答,它支持多輪對話,能持續理解用戶的意圖,并在上下文中保持連貫。其關鍵技術包括:

  • 對話式微調(Chat Fine-tuning):構建大規模人類對話數據集(如用戶與助手的對話記錄),訓練模型習慣于以聊天風格進行響應。
  • 多輪上下文建模機制:保留歷史輸入,使模型能理解上下文中的話題變化和指代關系。
  • 更廣泛的訓練數據 ,包括github代碼,arxiv論文等數據集,可參考llama論文。

GPT4:邁向通用智能的堅實一步

2023 年 3 月,OpenAI 發布了更強大的語言模型 —— GPT4,這一代模型被稱為“多模態大模型的初步實現”,具備更高的理解能力、推理能力與穩健性,比如在美國法律考試中達到前10%,而GPT3.5為后10%。

GPT4 的進步主要體現在以下幾個維度:

1. 多模態能力

GPT-4 不僅能處理文本,還支持圖像輸入(如讀取圖片中的文字、描述圖片內容等),是 OpenAI 在圖文融合上的重大突破。可參考Flamingo論文。

2. 更強的推理與穩健性

GPT-4 在推理任務(如數學、邏輯題)中表現出更高準確率,在 MMLU、Big-Bench Hard、HumanEval 等評測中均優于 GPT-3.5,表明其具備更強的泛化能力與“慢思考”能力,可參考CoT論文和OpenAI過程獎勵強化學習論文。

3. 更長的上下文窗口

GPT-4 支持高達 32k(甚至部分版本支持 128k)上下文窗口,使其能處理更長文檔與更復雜的多輪對話。

4. 更細致的 RLHF 微調

GPT-4 在 RLHF 階段加入更多多樣化的偏好數據,引入多個獎勵模型打分(可參考llama2論文), 進一步提升其回答的安全性、準確性、信息量和人類偏好對齊度。

革命仍在進行——GPT5

盡管GPT5尚未發布,但是我們可以觀察到GPT4o,GPT4.1等模型更多的往全能方向發展(圖片理解,代碼生成,自主執行等),GPT5可能也不例外,未來的語言模型不再是僅有對話能力,而是全能戰士。

最后我們總結和估計GPT-1到GPT-5的進化之路:

模型發布時間參數量關鍵特征核心貢獻智能增長量預估
GPT-12018117MTransformer decoder + 微調范式提出預訓練-微調框架
GPT-220191.5B無監督預訓練+零樣本推理無需微調即可解決各種任務10倍
GPT-32020175B少樣本示例提示 + 超大規模數據訓練通用語言能力大爆發10倍
InstructGPT2022基于GPT3RLHF + SFT開始學會“聽懂人話”10倍
GPT-3.5 / ChatGPT2022.11微調增強版多輪對話、代碼理解更強大模型走入普通人生活,改變世界
GPT-42023未公布多模態、推理強、上下文32K+接近通用人工智能10倍
GPT-52025未發布未發布10倍

本文從 GPT-1 到 GPT-4 回顧了 ChatGPT 技術路線的演化路線。后續還會有更多相關文章。

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

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

相關文章

[筆記] 動態 SQL 查詢技術解析:構建靈活高效的企業級數據訪問層

文章目錄一. 應用場景二. 使用示例示例1示例2示例3三. 實現1. 動態表查詢構建器,模仿MyBatis-Plus2. mapper3. mapper.xml功能概述參數說明四. 動態 SQL 的優化與風險防控在企業級應用開發中,數據查詢場景往往呈現出復雜多變的特點 —— 從簡單的單表篩選…

.net天擎分鐘降水數據統計

1.需求:計算滑動時間下的1小時、3小時、6小時、12小時、24小時降水數據,統計這個時間下的分鐘級降水數據2.分析第一版本:降水分鐘級數據保存時間不長,保存太多意義不大,以更新的形式來保存這些統計數據效果會比較好&am…

圖片合并pdf

文章目錄 背景目標實現下載 背景 整合: 將零散的圖片集合成一個單一文件。有序化: 固定圖片的排列順序。標準化: 轉換為通用、兼容性強的PDF格式。高效管理: 便于存儲、查找、分享和傳輸。正式化/文檔化: 滿足提交、報…

【vue3+js】文件下載方法整理

前端文件下載方式 引言 在前端開發中,文件下載是一個常見的需求。后端可能以不同的方式返回文件數據,前端需要根據不同的返回類型采用相應的處理方式。本文將總結幾種常見的后端返回類型及對應的前端處理方案,主要基于Vue3和JavaScript環境。 一、后端返回文件URL 場景描…

MicrobiomeStatPlots | 森林圖教程Forest plot tutorial

視頻講解https://www.bilibili.com/video/BV1mA3yzEEnc/森林圖簡介什么是森林圖?參考:https://mp.weixin.qq.com/s/vwNf_sFlmhp7DeSYaQ3NxQ森林圖是以統計指標和統計分析方法為基礎,用數值運算結果繪制出的圖形。它在平面直角坐標系中&#x…

vscode 打開項目時候,有部分外部依賴包找不到定義或者聲明,但是能使用cmake正常編譯并且運行

解決:是依賴路徑的問題,先看includePath對不對,但是有時候會依賴外部文件,這時候入股cmake編譯能夠聽過, 說明編譯器能夠找到依賴路徑, 但是vscode的 IntelliSense 找不到依賴路徑 → 導致編輯器提示錯誤、…

nginx:SSL_CTX_use_PrivateKey failed

SSL_CTX_use_PrivateKey("/home/nginx-vue/cret/*.com.key") failed (SSL: error:0B080074:x509 certificate routines:x509_check_private_key:key values mismatch) Nginx 嘗試加載私鑰文件時失敗,原因是:證書與私鑰不匹配 問題本質 SSL 證…

Docker 基于 Cgroups 實現資源限制詳解【實戰+源碼】

本文將帶你深入理解 Docker 如何借助 Linux Cgroups 實現對內存、CPU 等系統資源的精細化控制,并提供完整演示與圖解、Compose 配置模板和資源包下載,適合初學者與工程師深入學習與實戰。 文章目錄 一、什么是 Cgroups?為什么對容器如此關鍵…

Linux中的系統日志(Rsyslog)

一、實驗環境主機名系統網絡適配器IP地址serverarhel9NAT模式172.25.254.11/24serverbrhel9NAT模式172.25.254.22/24二、Rsyslog的基本參數(1)安裝rsyslog(2)rsyslog的服務名稱(3)rsyslog的主配置文件rsysl…

Spring Boot + Thymeleaf + RESTful API 前后端整合完整示例

關鍵詞:Spring Boot、Thymeleaf、RESTful API、前后端整合、用戶管理 ? 功能概述 本文將為你提供一個完整的 Spring Boot Thymeleaf RESTful API 的前后端整合項目,實現以下功能: 模塊功能用戶管理查看用戶列表、新增用戶、刪除用戶后端…

從零開始的MySQL學習

MySQL 從零開始的MySQL學習 第一節 數據庫 重點:數據庫通過SQL等標準語言進行動作,數據庫的概念、分類,數據管理系統(操縱和管理數據庫的大型軟件) 數據庫(Database) 是按照數據結構來組織、存儲…

Docker 高級管理--Dockerfile鏡像制作

二:Dockerfile 語法基礎 1:基礎指令 (1)FROM 指定基礎鏡像,所有的 Dockerfile 都必須以 FROM 指令開頭,它定義了新鏡像基于哪個基礎鏡像構建。 FRoM ubuntu:20.04 (2)MAINTAINER(已奔用,推薦使用LABEL) 用于指定鏡像的維護者信息。不過在較…

LeetCode 692題解 | 前K個高頻單詞

前K個高頻單詞一、題目鏈接二、題目三、分析四、代碼一、題目鏈接 692.前K個高頻單詞 二、題目 三、分析 本題目我們利用map統計出次數以后,返回的答案應該按單詞出現頻率由高到低排序,有一個特殊要求,如果不同的單詞有相同出現頻率&#…

C++ 中的 std::bind 用法

在現代 C++ 編程中,std::bind 是一個非常強大但常常被誤解的工具。它允許我們將函數(包括成員函數)、參數進行綁定,并生成一個新的可調用對象。這在編寫異步回調、事件處理、適配器模式等場景中非常有用。 ?? 一、std::bind 是什么? std::bind 是定義在 <functiona…

Spring Boot秒級冷啟動方案:阿里云FC落地實戰(含成本對比)

Spring Boot秒級冷啟動方案&#xff1a;阿里云FC落地實戰&#xff08;含成本對比&#xff09;一、冷啟動痛點與FC核心優勢1. 傳統Spring Boot冷啟動瓶頸2. 阿里云FC核心能力二、秒級冷啟動架構設計1. 整體架構2. 關鍵組件選型三、5大核心優化策略1. 應用瘦身&#xff08;JAR包精…

搜索引擎vs向量數據庫:LangChain混合檢索架構實戰解析

本文較長&#xff0c;建議點贊收藏&#xff0c;以免遺失。更多AI大模型應用開發學習視頻及資料&#xff0c;盡在聚客AI學院。一、LangChain搜索工具實戰&#xff1a;集成DuckDuckGo實現實時信息查詢 核心場景&#xff1a;解決大模型知識滯后問題&#xff0c;通過搜索引擎獲取實…

【算法】貪心算法:將數組和減半的最少操作次數C++

文章目錄前言題目解析算法原理代碼示例策略證明前言 題目的鏈接&#xff0c;大家可以先試著去做一下再來看一下思路。2208. 將數組和減半的最少操作次數 - 力扣&#xff08;LeetCode&#xff09; 題目解析 要認真去把題目看一遍&#xff0c;畫出題目中的有用信息。 示例一定是…

git異常退出,應該是內存不足

這次下載代碼&#xff1a; 公司虛擬機到了一定步驟&#xff0c;肯定退出。而家里的虛擬機則完全正常。我把家里的虛擬機復制到公司&#xff0c;還是崩潰。 差異在哪里&#xff1f;公司電腦虛擬機內存設置為10G&#xff0c;家里的16。因為家里電腦64G內存。 后來確認&#xff…

機器學習13——支持向量機下

支持向量機下 非線性支持向量機&#xff08;Non-linear SVMs&#xff09;詳解 核心思想 當數據在原始空間線性不可分時&#xff0c;通過**核技巧&#xff08;Kernel Trick&#xff09;**將數據映射到高維特征空間&#xff0c;使其在該空間中線性可分。 比如以下的樣本在一維空間…

GPT-4和Claude哪個好

選擇GPT-4還是Claude?這就像在問“蘋果還是橙子哪個更好”——?答案完全取決于你的具體需求?。兩者都是頂尖大語言模型,但各有特色。 我為你做了詳細對比,幫你快速定位哪個更適合你: ?? 核心能力對比 特性GPT-4 (OpenAI)Claude (Anthropic)?語言理解/推理?頂尖水平,…