一周之內(nèi),由人工智能實驗室OpenAI發(fā)布的對話式大型語言模型ChatGPT在全世界掀起“AI狂潮”,數(shù)十億次請求從全世界各個角落匯總到ChatGPT服務(wù)器。作為“新晉網(wǎng)紅”,ChatGPT “知無不言”,“有求必應(yīng)”,許多人就身邊遇到的問題對它進行提問,雖然回答不一定準確,但也出現(xiàn)了相當多有意思的問題。
ChatGPT是怎樣做到無所不答的?我們知道,訓(xùn)練AI算法需要用到大量GPU算力資源。而作為當前AI算法的“頂流”,訓(xùn)練ChatGPT用到的GPU數(shù)量或?qū)⑦_上千顆。本文將帶你了解ChatGPT工作的底層邏輯,以及它如何驅(qū)使上千顆GPU為你工作。
如何訓(xùn)練ChatGPT
當我們想要構(gòu)建一個AI模型時,最重要的步驟總結(jié)下來就是:定義架構(gòu)、訓(xùn)練、調(diào)試以及測試。記者詢問ChatGPT,你是如何訓(xùn)練的,它的回復(fù)是:1. 選擇大規(guī)模語料庫,構(gòu)建訓(xùn)練集。2. 定義模型架構(gòu),通常使用Transformer模型。3. 選擇優(yōu)化算法并設(shè)置超參數(shù)。4. 訓(xùn)練模型,根據(jù)訓(xùn)練損失下降情況和驗證集結(jié)果決定是否需要調(diào)整超參數(shù)。5. 使用測試集評估模型性能。6. 如果需要,對模型進行微調(diào),以提高性能。
當決定要訓(xùn)練一個語言類AI模型時,第一件事就要明確訓(xùn)練AI的語料庫。語料庫的選擇十分重要,為了讓語言模型學到足夠多的語言信息,需要選擇盡量規(guī)模大的文本語料庫。以ChatGPT為例,訓(xùn)練類似AI模型時,就需要準備各類網(wǎng)站的百科文章、網(wǎng)絡(luò)回答、專業(yè)論文等。據(jù)了解,一款通用AI算法所使用的預(yù)訓(xùn)練語料庫大小為1-10GB之間,而用于訓(xùn)練ChatGPT的前身——GPT-3的語料庫達到了45TB。
訓(xùn)練AI執(zhí)行語言任務(wù)還繞不開Transformer模型。Transformer模型(變換器)是一種采用自注意力機制的深度學習模型,自注意力的意思即可以按照輸入數(shù)據(jù)各部分重要性的不同而分配不同的權(quán)重。它通過計算詞與詞之間的相對位置關(guān)系來確定注意力的權(quán)值,最終生成語句的語義表示。Transformer的優(yōu)勢在于其可以并行計算,速度快,精度高,是目前自然語言處理中最常使用的模型之一。
目前,基于龐大的訓(xùn)練語料庫與Transformer模型,GPT-3已經(jīng)具有了上下文學習能力。簡單的說,我們目前可以向模型輸入一個問題,再給出相似問題的解決方案,ChatGPT就可以自動猜測相關(guān)任務(wù)的答案。此外官方在GPT-3.5的訓(xùn)練中,還添加了海量的代碼數(shù)據(jù),這就是目前ChatGPT能夠為用戶解答編程問題的原因。AI專家分析,ChatGPT在訓(xùn)練時添加的代碼語料庫可能具有詳細的注釋,這能很好的幫助AI理解代碼功能。
經(jīng)過多次訓(xùn)練、調(diào)試后,ChatGPT才最終出現(xiàn)在我們眼前,為用戶回答各類腦洞大開的問題。
訓(xùn)練ChatGPT需要多少GPU
無論是ChatGPT,還是其他AI模型,其主要功能都是幫助我們實現(xiàn)與硬件的交互,尤其是幫助我們高效利用具有龐大算力的GPU集群。記者就該問題也詢問了ChatGPT,得到的回復(fù)是:
ChatGPT的回答并沒有指出關(guān)鍵所在。我們知道,GPU的多核結(jié)構(gòu)在運行大規(guī)模并行計算時,相比CPU會更有優(yōu)勢。但在面對ChatGPT如此龐大的語料庫時,任何一顆GPU芯片都不能勝任。有AI算法專家表示,訓(xùn)練通用的AI模型需要用到1億以上的參數(shù),而ChatGPT的1750億就需要調(diào)用天文數(shù)字般的算力資源。英偉達和微軟研究院的研究論文稱,如果我們能夠在單個GPU中擬合模型,所需的大量計算操作也會需要超乎尋常的長訓(xùn)練時間,GPT-3在單個英偉達V100 GPU上估計需要288年。如今時間已經(jīng)來到2023年,相比于GPT-3,ChatGPT將會擁有更加恐怖的參數(shù)數(shù)量與訓(xùn)練成本。
不過當我們增加GPU數(shù)量后,AI算法的訓(xùn)練時間可以顯著降低。以GPT-3模型訓(xùn)練為例,使用8張V100顯卡,訓(xùn)練時長預(yù)計需要36年,512張V100顯卡,訓(xùn)練時間接近7個月,而1024張A100的訓(xùn)練時長可以減少到1個月。這種利用多顯卡同時計算的方式就是分布式并行計算。
分布式并行計算,是一組電腦通過過網(wǎng)絡(luò)相互連接傳遞信息,并協(xié)調(diào)它們的行為而形成的系統(tǒng)。組件之間彼此進行交互以實現(xiàn)一個共同的目標。它可以把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,由多臺計算機分別計算,再上傳運算結(jié)果。在消費端,很多人熟悉的NVLink就是分布式計算的一種。業(yè)界主流的分布式并行類型包括數(shù)據(jù)并行、模型并行和混合并行三種。
在AI算法的訓(xùn)練過程中,我們會用到PyTorch、TensorFlow等軟件工具幫我們實現(xiàn)分布式并行計算。例如可以把ChatGPT 45TB的語料庫平均分布到1000張英偉達H100 GPU中(每顆GPU具有1.8萬個核心),這樣單顆ALU僅會分到2.6KB左右的計算量,最后再通過逐級計算總成,訓(xùn)練AI算法的速度將會大大減少。
此外,AI算法更重要的一點就是神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)的搭建需要鏈接多個數(shù)據(jù)節(jié)點(數(shù)據(jù)節(jié)點可以是單個ALU核心),進行多次迭代與訓(xùn)練建立不同邏輯對應(yīng)的節(jié)點鏈接,而分布式計算就像鏈接不同神經(jīng)元之間的神經(jīng)束,讓GPU集群擁有了類似人腦一樣的思考方式。
除了在訓(xùn)練階段,ChatGPT在回答用戶問題時也可以以同樣的路徑鏈接各個節(jié)點,在上百TB的數(shù)據(jù)中找到最接近你問題的答案。所以,當你向ChatGPT提問時,其實是上千顆高性能GPU在一同解決你的問題。
ChatGPT未來會怎么發(fā)展?
目前,ChatGPT已經(jīng)展現(xiàn)出來無與倫比的替代能力,很多人正在擔憂它的出現(xiàn)會威脅到自己的職業(yè)前途。在《流浪地球2》中,擁有超高智能的MOSS計算機已經(jīng)在未來取代了絕大部分人工,甚至可以自行決定行星發(fā)動機的建設(shè),這更加催生了人們對于AI發(fā)展的焦慮情緒。但就目前來看,ChatGPT距離完美還有些距離,起碼在算力方面,AI還遠達不到完全替代人工的程度。記者就未來發(fā)展向ChatGPT提問,得到的回復(fù)簡單總結(jié)是:1. 更大、更精準的語料庫。2. 不斷改進模型。3. 多語言支持。4. 在更專業(yè)的領(lǐng)域深耕。5. 用途更加廣泛。
未來,ChatGPT可能會普遍存在于人們的生活中,應(yīng)用在各行各業(yè)里,成為一種高效、便捷的生產(chǎn)力工具,為人們的生活增添無數(shù)便利。
最后,各位讀者可以猜測一下,這篇文章是ChatGPT自動生成的嗎?