ChatGPT 成功背後的祕密,開源了?!

人工智能(Artificial Intelligence, AI)最近取得了巨大的進展,特別是大語言模型(Large Language Models, LLMs),比如最近火爆全網的 ChatGPT 和 GPT-4。GPT 模型在各項自然語言處理任務上有着驚人的效果。

正所謂「大力出奇跡」,把參數量調「大」能提高模型性能已經成爲了大家的普遍共識。但是僅僅增加模型參數就夠了嗎?仔細閱讀 GPT 的一系列論文後就會發現,僅僅增加模型參數是不夠的。它們的成功在很大程度上還歸功於用於訓練它們的大量和高質量的數據

在本文中,我們將從數據爲中心的人工智能視角去分析一系列 GPT 模型(之後會用 Data-centric AI 以避免囉嗦)。Data-centric AI 大體上可以分爲三個目標:

本文將討論 GPT 模型是如何實現(或者可能即將實現)這三個目標的。

綜述論文:https://arxiv.org/abs/2303.10158

短篇介紹:https://arxiv.org/abs/2301.04819

GitHub 資源:https://github.com/daochenzha/data-centric-AI

什麼是大語言模型?什麼又是 GPT 模型?

這章將簡單介紹下大語言模型和 GPT 模型,對它們比較熟悉的讀者可以跳過。大語言模型指的是一類自然語言處理模型。顧名思義,大語言模型指的是比較「大」的(神經網絡)語言模型。語言模型在自然語言處理領域已經被研究過很久了,它們常常被用來根據上文來推理詞語的概率。例如,大語言模型的一個基本功能是根據上文預測缺失詞或短語的出現概率。我們常常需要用到大量的數據去訓練模型,使得模型學到普遍的規律。

通過上文來預測缺失詞示意圖

GPT 模型是由 OpenAI 開發的一系列大語言模型,主要包括 GPT-1,GPT-2,GPT-3,InstructGPT 以及最近上線的 ChatGPT/GPT-4。就像其他大語言模型一樣,GPT 模型的架構主要基於 Transformer,以文本和位置信息的向量爲輸入,使用注意力機制來建模詞之間的關係。

GPT-1 模型的網絡結構,圖片來自原論文 https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

之後的 GPT 系列模型結構大體上都與 GPT-1 類似,主要區別在於更多參數(更多層,更多隱含層維度等等)。

GPT 系列模型大小比較

什麼是 Data-centric AI?

Data-centric AI 是一種搭建 AI 系統的新理念,被吳恩達老師大力倡導。我們這裏引用下他給出的定義:

Data-centric AI is the discipline of systematically engineering the data used to build an AI system.      — Andrew Ng

傳統的搭建 AI 模型的方法主要是去迭代模型,數據相對固定。比如,我們通常會聚焦於幾個基準數據集,然後設計各式各樣的模型去提高預測準確率。這種方式我們稱作以模型爲中心(model-centric)。然而,model-centric 沒有考慮到實際應用中數據可能出現的各種問題,例如不準確的標籤,數據重複和異常數據等。準確率高的模型只能確保很好地「擬合」了數據,並不一定意味着實際應用中會有很好的表現

與 model-centric 不同,Data-centric 更側重於提高數據的質量和數量。也就是說 Data-centric AI 關注的是數據本身,而模型相對固定。採用 Data-centric AI 的方法在實際場景中會有更大的潛力,因爲數據很大程度上決定了模型能力的上限。

需要注意的是,「Data-centric」與「Data-driven」(數據驅動),是兩個根本上不同的概念。後者僅強調使用數據去指導 AI 系統的搭建,這仍是聚焦於開發模型而不是去改變數據。

Data-centric AI 和 model-centric AI 的區別,圖片來源於 https://arxiv.org/abs/2301.04819

Data-centric AI 框架包括三個目標:

Data-centric AI 框架第二層是目標,第三層是子目標,圖片來源於 https://arxiv.org/abs/2303.10158

爲什麼 Data-centric AI 是 GPT 模型取得成功的重要原因?

數月前,Yann LeCun 發文稱 ChatGPT 在技術上並不是什麼新鮮事物。的確如此,ChatGPT 和 GPT-4 中使用的方法,比如 Transformer、「從人類反饋中進行的強化學習」(Reinforcement Learning from Human Feedback,RLHF)等都不是什麼新技術。即便如此,ChatGPT 還是取得了以前的模型無法企及的驚人效果。那麼,是什麼推動了它的成功?

毋庸置疑,增加模型參數的數量對 GPT 模型的成功至關重要,但這只是其中的一個原因。通過詳細閱讀 GPT-1、GPT-2、GPT-3、InstructGPT 和 ChatGPT/GPT-4 論文中有關數據的描述,我們可以明顯看出 OpenAI 的工程師們花了極大心血去提高數據的質量和數量。以下,我們用 Data-centric AI 框架從三個維度進行分析。

訓練數據開發:從 GPT-1 到 ChatGPT/GPT-4,通過更好的數據收集(data collection)、數據標註(data labeling)和數據準備(data preparation)策略,用於訓練 GPT 模型的數據數量和質量都得到了顯著提高。以下括號中標識了每個具體策略對應到 Data-centric AI 框架中的子目標。

ChatGPT/GPT-4:至此,產品走向了商業化,OpenAI 不再「Open」,不再披露具體細節。已知的是 ChatGPT/GPT-4 在很大程度上遵循了以前 GPT 模型的設計,並且仍然使用 RLHF 來調整模型(可能使用更多、更高質量的數據 / 標籤)。鑑於 GPT-4 的推理速度比 ChatGPT 慢很多,模型的參數數量大概率又變多了,那麼也很有可能使用了一個更大的數據集。

從 GPT-1 到 ChatGPT/GPT-4,所用的訓練數據大體經歷了以下變化:小數據(小是對於 OpenAI 而言,對普通研究者來說也不小了)-> 大一點的高質量數據 -> 更大一點的更高質量數據 -> 高質量人類(指能通過考試的標註者)標註的高質量數據。模型設計並沒有很顯著的變化(除了參數更多以順應更多的數據),這正符合了 Data-centric AI 的理念。從 ChatGPT/GPT-4 的成功,我們可以發現,高質量的標註數據是至關重要的。在 AI 的任何子領域幾乎都是如此,即便是在很多傳統上的無監督任務上,標註數據也能顯著提高性能,例如弱監督異常檢測。OpenAI 對數據和標籤質量的重視程度令人髮指。正是這種執念造就了 GPT 模型的成功。這裏順便給大家推薦下朋友做的可視化文本標註工具 Potato,非常好用!

https://github.com/davidjurgens/potato

推理數據開發:現在的 ChatGPT/GPT-4 模型已經足夠強大,強大到我們只需要調整提示(推理數據)來達到各種目的,而模型則保持不變。例如,我們可以提供一段長文本,再加上特定的指令,比方說「summarize it」或者「TL;DR」,模型就能自動生成摘要。在這種新興模式下,Data-centric AI 變得更爲重要,以後很多 AI 打工人可能再也不用訓練模型了,只用做提示工程(prompt engineering)。

提示工程示例,圖片來源於 https://arxiv.org/abs/2303.10158

當然,提示工程是一項具有挑戰性的任務,它很大程度上依賴於經驗。這篇綜述很好地總結了各種各樣的方法,有興趣的讀者可以繼續閱讀。與此同時,即使是語義上相似的提示,輸出也可能非常不同。在這種情況下,可能需要一些策略去降低輸出的方差,比如 Soft Prompt-Based Calibration。

Soft prompt-based calibration,圖片來源於 https://arxiv.org/abs/2303.13035v1

大語言模型的推理數據開發研究仍處於早期階段。我相信在不久的將來,很多其他任務中用到過的推理數據開發方法也會逐漸被遷移到大語言模型中,例如構建對抗攻擊(Adversarial Attacks)數據以測試模型的魯棒性。

數據維護:作爲一款商業產品,ChatGPT/GPT-4 一定不是僅僅訓練一次就結束了,而是會被持續更新和維護。我們在外部沒辦法知道 OpenAI 數據維護具體是如何進行的。因此,我們只能推測。OpenAI 可能採取瞭如下策略:

ChatGPT/GPT-4 會收集用戶反饋

從大語言模型的成功中我們能學到什麼?

大語言模型的成功可以說是顛覆性的。展望未來,我做幾個預測:

用 ChatGPT 來合成數據訓練下游模型,圖片來源於 https://arxiv.org/abs/2303.04360

回想起五年前,我還在糾結「如何才能提高文本分類的準確率」,多次失敗的經歷曾讓我一度懷疑自然語言處理和 AI 沒有半點關係。如今 ChatGPT/GPT-4 驚人的能力讓我提前見證了歷史!

未來 AI 的發展將走向何方?大語言模型的進展日新月異,經常看到一些研究自然語言處理的朋友們擔心大模型的出現會不會讓 AI 科研無路可走了。我認爲完全不需要有這種擔心。技術永遠是不斷進步的。新技術的出現不可避免會取代舊的技術(這是進步),但同時也會催生更多新的研究方向。比如,近年來深度學習的飛速發展並沒有讓傳統機器學習的研究無路可走,相反,提供了更多的可供研究的方向。

同時,AI 一個子領域的突破勢必會帶動其他子領域的蓬勃發展,這其中就有許多新的問題需要研究。比如,以 ChatGPT/GPT-4 爲代表的大模型上的突破很可能會帶動計算機視覺的進一步提升,也會啓發很多 AI 驅動的應用場景,例如金融、醫療等等。

無論技術如何發展,提高數據的質量和數量一定是提高 AI 性能的有效方法,Data-centric AI 的理念將越來越重要。

那麼大模型就一定是達成通用人工智能的方向嗎?我持保留態度。縱觀 AI 發展歷程,各個 AI 子領域的發展往往是螺旋上升、相互帶動的。這次大模型的成功是多個子領域的成功碰撞出的結果,例如模型設計(Transformer)、Data-centric AI(對數據質量的重視)、強化學習(RLHF)、機器學習系統(大規模集羣訓練)等等,缺一不可。在大模型時代,我們在 AI 各個子領域依然都大有可爲。比如,我認爲強化學習相比大模型可能有更高的上限,因爲它能自我迭代,可能不久的將來我們將見證由強化學習引領的比 ChatGPT 更驚豔的成果。

在這個 AI 發展日新月異的時代,我們需要不斷學習。我們對 Data-centric AI 這個領域進行了總結,希望能幫助大家快速高效地瞭解這個領域,相關鏈接見本文開頭。鑑於 Data-centric AI 是一個很大的領域,我們的總結很難面面俱到。歡迎感興趣的讀者去指正、補充。

作者:一堆廢紙

來源:https://zhuanlan.zhihu.com/p/617057227

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/CW67AZ_UqT8vvjPZt1iHGA