廣告牌的樣式大全福清市百度seo
前言
OpenAI的創(chuàng)始人之一,大神Andrej Karpthy剛在微軟Build 2023開發(fā)者大會(huì)上做了專題演講:State of GPT(GPT的現(xiàn)狀)。
他詳細(xì)介紹了如何從GPT基礎(chǔ)模型一直訓(xùn)練出ChatGPT這樣的助手模型(assistant model)。作者不曾在其他公開視頻里看過類似的內(nèi)容,這或許是OpenAI官方第一次詳細(xì)闡述其大模型內(nèi)部原理和RLHF訓(xùn)練細(xì)節(jié)。
難能可貴的是,Andrej不僅深入了細(xì)節(jié), 還高屋建瓴的抽象了大模型實(shí)現(xiàn)中的諸多概念,牛人的洞察就是不一樣。
比如,Andrej非常形象的把當(dāng)前LLM大語(yǔ)言模型比喻為人類思考模式的系統(tǒng)一(快系統(tǒng)),這是相對(duì)于反應(yīng)慢但具有更長(zhǎng)線推理的系統(tǒng)二(慢系統(tǒng))而言。這只是演講里諸多閃光點(diǎn)的其中一個(gè)。
并且,Andrej真的有當(dāng)導(dǎo)師的潛力,把非常技術(shù)的內(nèi)容講得深入淺出,而又異常透徹。這個(gè)演講完全可以讓非專業(yè)人士也能理解,并且,認(rèn)真看完演講后會(huì)有一種醍醐灌頂?shù)母杏X。
本次演講的精校完整中文版視頻的B站傳送門: https://www.bilibili.com/video/BV1ts4y1T7UH
他將整個(gè)報(bào)告分為了兩個(gè)部分,分別是GPT是如何訓(xùn)練的,以及該如何用GPT。
GPT是如何訓(xùn)練
這節(jié)的主要內(nèi)容其實(shí)都是圍繞著這個(gè)圖中的概念來的,從左邊開始到右邊描述了gpt在訓(xùn)練過程中的4個(gè)階段,通常來說是四個(gè)階段預(yù)訓(xùn)練(Pretraining),有監(jiān)督的微調(diào)(Supervised Finetuning),獎(jiǎng)勵(lì)建模(Reward Modeling)和強(qiáng)化學(xué)習(xí)(Reinforcement Learning),這幾個(gè)階段通常是依次進(jìn)行,每個(gè)階段都有不同的數(shù)據(jù)集。
這里從第一個(gè)階段:預(yù)訓(xùn)練階段開始說起,這個(gè)階段使用大量的文本對(duì)模型進(jìn)行預(yù)訓(xùn)練,消耗了99%的訓(xùn)練資源,需要數(shù)千GPU訓(xùn)練幾個(gè)月(其他幾個(gè)階段只用了1%資源,一般是數(shù)個(gè)gpu訓(xùn)練幾天就可以)。
預(yù)訓(xùn)練階段
這個(gè)階段首先需要準(zhǔn)備大量的數(shù)據(jù),下圖是引用了llama中使用了哪些數(shù)據(jù)。
可以大致看到進(jìn)入這些集合的數(shù)據(jù)集的種類,我們有common crawl這只是一個(gè)網(wǎng)絡(luò)爬取,C4也是common crawl,然后還有一些高質(zhì)量的數(shù)據(jù)集。例如,GitHub、維基百科、書籍、ArXiv論文存檔、StackExchange問答網(wǎng)站等。這些都混合在一起,然后根據(jù)給定的比例進(jìn)行采樣,形成 GPT 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集。
下載完這些數(shù)據(jù)之后,并不能直接使用他們進(jìn)行訓(xùn)練,計(jì)算機(jī)是無法識(shí)別的,需要首先做一下tokenization,將單詞轉(zhuǎn)化為token,這個(gè)過程如下圖所示,最后的結(jié)果是每一個(gè)單詞(或單詞的一部分)都會(huì)被一個(gè)數(shù)字編號(hào)所代替,所有單詞會(huì)形成一個(gè)詞典,數(shù)字編號(hào)就是詞典中的序號(hào)。
接下來開始準(zhǔn)備一個(gè)transformer的模型,Andrej以GPT3和LLaMA作為例子如下圖
這里針對(duì)幾個(gè)超參數(shù)進(jìn)行一下描述:
- vocabulary size:表示上一張圖中籌備的詞典有多少個(gè)
- context length:表示訓(xùn)練時(shí)一次性能輸入的文本的長(zhǎng)度是多少,意味著超過這個(gè)長(zhǎng)度就無法記憶了
- parameter:表示transformer的參數(shù)數(shù)量
- Trained on XXX tokens:表示訓(xùn)練時(shí)一共看過多少token,可以認(rèn)為是訓(xùn)練iteration * context length * batch size
這些大致是在進(jìn)行預(yù)訓(xùn)練時(shí)要處理的數(shù)量級(jí):詞匯量通常是幾萬個(gè)標(biāo)記。上下文長(zhǎng)度通常是 2,000、4,000,現(xiàn)在甚至是 100,000,這決定了 GPT 在嘗試預(yù)測(cè)序列中的下一個(gè)整數(shù)時(shí)將查看的最大整數(shù)數(shù)。
你可以看到,Llama 的參數(shù)數(shù)量大概是 650 億?,F(xiàn)在,盡管與 GPT3 的 1750 億個(gè)參數(shù)相比,Llama 只有 65 個(gè) B 參數(shù),但 Llama 是一個(gè)明顯更強(qiáng)大的模型,直觀地說,這是因?yàn)樵撃P偷挠?xùn)練時(shí)間明顯更長(zhǎng),訓(xùn)練了1.4 萬億標(biāo)記而不是 3000 億標(biāo)記。所以你不應(yīng)該僅僅通過模型包含的參數(shù)數(shù)量來判斷模型的能力。
這里我展示了一些粗略的超參數(shù)表,這些超參數(shù)通常用于指定 Transformer 神經(jīng)網(wǎng)絡(luò)。比如頭的數(shù)量,尺寸大小,層數(shù)等等。
在底部,展示了一些訓(xùn)練超參數(shù)。例如,為了訓(xùn)練 65 B 模型,Meta 使用了 2,000 個(gè) GPU,大約訓(xùn)練了 21 天,大約花費(fèi)了數(shù)百萬美元。
現(xiàn)在,當(dāng)我們實(shí)際進(jìn)行預(yù)訓(xùn)練時(shí)&#