AI產品視角下的ChatGPT
"ChatGPT:Optimizing Language Models for Dialogue"
ChatGPT使用體驗
-
內容創作【創作小說提綱、編寫小說開篇】
ChatGPT使用體驗
-
程式碼編寫【生成markdown解析器】
ChatGPT使用體驗
-
“檢索問答”【知識截止於21年9月】
ChatGPT使用體驗
-
“安全模型”
ChatGPT主要特點
主要特性
- 支援連續多輪對話,根據使用者的輸入連續生成回答
- 可以主動承認自身錯誤
- 若使用者指出其錯誤,模型會聽取意見並最佳化答案
- 可以質疑不正確的問題,並給出“正能量”答覆
- 可以承認自身的無知:承認對專業技術的不瞭解
“認知誤區”
- 不是搜尋引擎,是基於語言模型,推斷輸入意圖,生成對應文字
- 模型資料輸入截止21年9月,時效性
- 模型本身無法確認自身輸出的真實性使用者需自行判斷
- 可以作為人的能力的延伸,但不能完全代替人類的思考
- 開放領域的大模型,未針對指定領域特別設計
- 需要使用者提供足夠充分的prompt【描述需求】
ChatGPT的發展歷史
模型時間線
模型釋出時間 | 層數 | 頭數 | 詞向量長度 | 引數量 | 預訓練資料量 | 論文地址 | |
---|---|---|---|---|---|---|---|
GPT-1 | 2018年6月 | 12 | 12 | 768 | 1.17 億 | 約 5GB | https://pa... |
GPT-2 | 2019年2月 | 48 | - | 1600 | 15 億 | 40GB | https://pa... |
GPT-3 | 2020年5月 | 96 | 96 | 12888 | 1,750 億 | 45TB | https://pa... |
InstructGPT | 2022年2月 | - | - | - | - | - | https://pa... |
ChatGPT | 2022年11月 | - | - | - | - | - | - |
ChatGPT的發展歷史
模型解讀
- ?GPT1【無監督學習】:自左向右生成式的構建預訓練任務+簡單的微調
- ?GPT2【多工學習】:使用更多引數、訓練資料 >使用無監督的預訓練模型做有監督的任務
- 重要思想:“所有的有監督學習都是無監督語言模型的一個子集”,這個思想也是提示學習(Prompt Learning)的前身
- ?GPT3【海量引數】:1759億引數量,並且訓練使用了情境學習(In-context Learning)[1]
- [1]元學習(Meta-learning)的一種,元學習的核心思想在於透過少量的資料尋找一個合適的初始化範圍,使得模型能夠在有限的資料集上快速擬合,並獲得不錯的效果
?預訓練模型的偏見性
- 因預訓練模型都是透過海量資料在超大引數量級的模型上訓練出來的[黑盒子]
- 沒人能保證預訓練模型不會生成一些“危險內容”,因它超大訓練資料很可能包含類似的樣本
?InstructGPT/ChatGPT:有用的(Helpful)、可信的(Honest)、無害的(Harmless)
ChatGPT的簡單的技術原理
大引數的預訓練生成語言模型
-
根據採集的SFT資料集對GPT-3.5進行有監督的微調(Supervised FineTune,SFT)
-
收集人工標註的對比資料,訓練獎勵模型(Reword Model,RM)
-
使用RM作為強化學習的最佳化目標,利用PPO演算法微調SFT模型(Proximal Policy Optimization,近端策略最佳化)
基於GPT3.5訓練監督策略模型
SFT模型【Supervised Fine-Tuning】
- 首先在資料集中隨機抽取問題,由人類標註人員給出高質量答案
- 然後用這些人工標註好的資料來微調GPT3.5(獲得SFT模型, Supervised Fine-Tuning)
- 使其初步具備理解指令的意圖
- 此時的SFT模型在遵循指令/對話方面已經優於 GPT-3.5,但不一定符合人類偏好
基於專家標註結果微調GPT模型
訓練獎勵模型
主要是透過人工標註訓練資料,來訓練回報模型
- 在資料集中隨機抽取問題,用第一階段生成的模型,對每個問題生成多個不同回答【問題-答案對】
- 人類標註者對這些結果綜合考慮給出排名順序【這一過程類似於教練或老師輔導】
- 使用這個排序結果資料來訓練獎勵模型
專家標註【問題-答案-排序】訓練資料,調節引數使高質量回答的打分>低質量的打分
近端策略最佳化
強化學習來最佳化策略
- 在資料集中隨機抽取問題,使用PPO模型生成回答【PPO模型用SFT初始化】
- 用訓練好的RM模型給出質量分數
- 再透過強化學習的方式來更新PPO模型引數
指導訓練物件每一步如何決策,採用什麼樣的"行動"可以使回答的效果更好【更新引數】
ChatGPT原理通俗解讀
- OpenAI使用RLHF【人類反饋強化學習】技術對【預訓練語言模型】進行訓練最佳化
- 得到大語言模型LLM
- 並基於prompting【提示】來適應不同領域的任務
- “模擬性”感知上“智力提升”,本質上是“在用人類所喜歡的方式回答”
預訓練模型通俗解讀
之前對智慧模型的認知:
- 例如一個能分辨狗品種的Agent,需要你提供A-柴犬,B-柯基這樣的資料集給他,讓它學習不同品種之間的特徵差異,從而學會分辨狗品種這項能力
透過一個大一統模型先來認識這個世界。再帶著對這個世界的認知對具體領域進行降維打擊
- 將海量的文字語料,直接餵給模型進行學習
- 在這其中模型對詞性、句法的學習自然而然會沉澱在模型的引數當中
chatgpt:擁有3000億單詞的語料基礎上預訓練出的擁有1750億引數的模型
3000億單詞就是訓練資料,1750億引數就是AI對這個世界的理解
一部分沉澱了Agent對各類語法、句法的學習
另一部分引數引數則儲存了AI對於事實的認知
GPT與BERT
NLP任務->“猜機率”遊戲
LLM大語言模型,演化出Bert和GPT,但理念有所不同
- BERT:
- 預訓練:Masking Input【完形填空,預測什麼被蓋住】
- 雙向:“結合空格兩端的資訊來猜測空格內應該是哪個單詞” 如:“我坐__去上班”
- 微調:fine-tuning
- 做專業領域任務時,需收集相關的專業領域資料,做小幅模型調整更新相關引數
- 示例:AI情緒分析
- 預訓練:Masking Input【完形填空,預測什麼被蓋住】
- GPT:
- 預訓練:Predict Next Token【預測下一個token是什麼】
- 自迴歸:“從左往右做預測,不會利用文字中右側的內容” 如:“我坐...”
- 提示/指示:Prompting
- 做專業領域的任務時,提供給它一些示例或引導。不用更新模型引數
- 預訓練:Predict Next Token【預測下一個token是什麼】
應用方向 | 應用場景 | |
---|---|---|
BERT | 自然語言理解 | 問答系統、句子相似度、文字分類、情感分析、命名實體識別 |
GPT | 自然語言生成 | 文字生成/續寫、語言翻譯、對話生成、摘要生成 |
ChatGPT的“影響”
- 加速“決策/分析AI(Discriminant/Analytical AI)”->“生成AI(Generative AI)”的演化
- 降低了非專業領域對“人工智慧”的認知難度,在一定程度預示著“通用人工智慧”領域的到來
- "大模型時代到來了!"
大模型與AIGC
【創意相關的下游產業】:圖片、遊戲、動畫 :600個GPT3的應用案例
【科學技術】:程式設計、演算法【一步到位的設計模型/給出最優解答】
:在chatgpt內'搭建'神經網路 | :CodeGeeX程式設計
【編寫創作】:小說、劇本、論文、週報、UGC等 :蒲公英TracupAI
【個人整合到終端智慧助理】:聯動語音模型、助手
【知識庫管理】:“類似於電腦的擴充硬碟,人類的外腦”
附註
註冊體驗ChatGPT的方法
註冊方法 - https://note.youdao.com/s/XqoJbMJ2
第三方體驗
https://freegpt.oneps:可能已崩
https://freechatgpt.lolps:可能已崩