【科普】揭秘GPT訓(xùn)練細節(jié)——微軟build 2023演講by Andrej Karpathy

(本文為原創(chuàng),關(guān)于視頻內(nèi)容未參考國內(nèi)平臺文章)
2023年5月30日,微軟build 2023開發(fā)者大會上,OpenAI的Andrej Karpathy做了名為State of GPT的演講。有了解深度學(xué)習(xí)和計算機視覺的小伙伴應(yīng)該很熟悉這位了,我記得2017年學(xué)李飛飛cs231n課的時候他還是作為助教,有好幾堂課是他來講的。2015—2017年曾在openAI工作,之后離職去特斯拉做AI部門主管搞自動駕駛,今年又回到了openAI。(不知道是不是因為自動駕駛炒不起來了)

↑視頻傳送門,我是在油管上看的,這是b站的搬運。
為啥我這個懶人要專門寫一篇文章介紹這個演講內(nèi)容呢,因為實在是太精彩了,把nlp的近年發(fā)展和gpt模型講的既深刻又明確,只能說不愧是大神,理解領(lǐng)先普通人幾個版本。如果你有留意過,真正的大神都是能把深刻的問題講的很明白的,直達重點。反過來說,如果某個人掛著一堆title講的卻是云里霧里,甚至刻意把事情復(fù)雜化,基本上非蠢即壞,這些是可以看出來的。尤其是某些學(xué)科。

扯遠了,回到正題,說說演講的內(nèi)容。主題是State of GPT,演講分為兩個部分。第一部分講了chatgpt的訓(xùn)練細節(jié),準確來說是gpt3.5的訓(xùn)練細節(jié),gpt4仍然是保密的,畢竟看家法寶可不能隨意外傳~
第二部分講了chatgpt以及其他llm的一些使用技巧,并從原理出發(fā)闡述了為什么這樣做可以work。

想要從頭開始訓(xùn)練一個chatgpt模型,有四個主要階段:預(yù)訓(xùn)練、有監(jiān)督微調(diào)、獎勵建模、強化學(xué)習(xí)。

預(yù)訓(xùn)練步驟是用transformer結(jié)構(gòu)在海量互聯(lián)網(wǎng)語料庫里學(xué)習(xí)世界上所有詞語的通用表示形式,這也是gpt的由來——生成式預(yù)訓(xùn)練transformer(generative?pretrained transformer)。類似于word2vec的預(yù)訓(xùn)練過程,給每個詞生成一個向量表示,也就是我們常說的embedding。在2018年之前,這個訓(xùn)練過程通常是由RNN和LSTM來做的,后來人們發(fā)現(xiàn)transformer結(jié)構(gòu)以及其注意力機制能夠很好的解決RNN和LSTM記憶力低下的問題,甚至能夠利用到整篇文章的信息,當(dāng)然代價是更高的計算量。于是從這時開始,幾乎所有state of the art的模型都用上了transformer結(jié)構(gòu),也讓普通人徹底無法進入AI這個領(lǐng)域。

在提出transformer結(jié)構(gòu)的原始論文《Attention is all you need》中,transformer的完整結(jié)構(gòu)是這樣的↑,看起來很嚇人,我一開始了解這個模型的時候也完全摸不到頭腦。大神就給我們解釋了,實際上gpt完全沒有用左邊的encoder部分和右邊decoder的中間部分,只用了這一小部分↓,現(xiàn)在是不是看起來簡單多了?

只用到這一部分是因為transformer的原始論文是一篇關(guān)于機器翻譯的論文,需要用encoder來把輸入的語言編碼成一個初始向量表示。而gpt本質(zhì)上是“生成”,也就是給定一篇文章,為其續(xù)寫,這樣的話就只需要decoder這一個輸入就足夠了。transformer的原理詳解如果有時間我會另外寫一篇文章來介紹,涉及到一些深度學(xué)習(xí)和自然語言處理的基礎(chǔ)知識,這里再放進來就太長了。同樣來自于這位大神的講課內(nèi)容。
Let's build GPT: from scratch, in code, spelled out.
https://www.youtube.com/watch?v=kCc8FmEb1nY&t=5325s&ab_channel=AndrejKarpathy
關(guān)于transformer衍生模型在自然語言處理領(lǐng)域的發(fā)展,可以看到主要分為3個branch,一個是以BERT為代表的encoder-only模型,以及GPT為代表的decoder-only模型,以及T5為代表的encoder-decoder模型,這三個branch基本上代表了3種不同的任務(wù)。bert主要用于文本分類,gpt用于文本生成,t5用于機器翻譯。

(先放著,明天接著寫)