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