<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分階段詳解GPT的整個訓練流程

AI智勝未來 ? 來源:機器之心 ? 2023-05-31 16:08 ? 次閱讀

在近日舉辦的微軟開發者大會 Microsoft Build 2023 上,OpenAI 聯合創始人 Andrej Karpathy 做了一個題為《State of GPT》演講,其中他首先直觀地介紹了 GPT 的訓練流程的各個階段,然后展示了如何使用 GPT 來完成任務并給出了直觀的示例,最后他還給出了一些非常具有實際意義的使用建議。機器之心詳細整理了該演講,以饗讀者。

如何訓練 GPT?

首先,我們概括性地看看 GPT 大模型的訓練流程。要記住,這是個新領域,變化很快?,F在的流程是這樣,以后新技術出現時可能會不一樣。

e6c10e42-fed7-11ed-90ce-dac502259ad0.png

可以看到,GPT 的訓練流程可粗略分為四個階段:預訓練、監督式微調、獎勵建模、強化學習。

這四個階段按順序進行。每個階段都有各自的數據集,每個階段也有各自用于訓練神經網絡算法。第三行是所得到的模型。最后底部有一些備注信息。

在所有階段中,預訓練階段所需的計算量是最大的,可以說 99% 的訓練計算時間和浮點運算量都集中在這個階段。因為這一階段需要處理超大規模的互聯網數據集,可能需要數千 GPU 構成的超級計算機工作幾個月時間。其它三個階段都算是微調(fine tuning)階段,所需的 GPU 數量和訓練時間都少得多。

下面我們將分階段詳解 GPT 的整個訓練流程。

預訓練階段

預訓練階段的目標是得到一個基礎模型。

首先第一步:數據收集。這一階段需要海量的數據,下面給出了一個例子,這是來自 Meta 的 LLaMA 模型的數據混合(data mixture)方法:

e6cec6e0-fed7-11ed-90ce-dac502259ad0.png

可以看到,LLaMA 的預訓練數據按不同比例混用了多個不同類型的數據集,其中比例最大的是爬取自互聯網的 CommonCrawl 以及基于 CommonCrawl 構建的 C4,此外還有 GitHub、維基百科等數據集。

收集到這些數據之后,還需要對它們進行預處理,這一步也被稱為「token 化」。簡單來說,這就是一個轉譯過程,即把原始文本轉譯成某種整數序列,因為這種整數序列就是 GPT 實際工作時所操作的本地表征。

e735eec4-fed7-11ed-90ce-dac502259ad0.png

這種從文本到 token 和整數的轉譯過程是無損的,而具體執行這一過程的算法有好幾種。舉個例子,如上圖所示,我們可以使用一種名為字節對編碼(byte pair encoding)的技術,其工作方式是迭代式地合并短文本塊并將它們分組成 token。最后實際輸入 Transformer 的就是那些整數序列。

下面來看兩個示例模型 GPT-3 和 LLaMA 在預訓練階段需要考慮的一些主要的超參數。Karpathy 表示由于他們還沒有發布有關 GPT-4 的相關信息,因此在演講中使用了 GPT-3 的數據。

e77261ec-fed7-11ed-90ce-dac502259ad0.png

可以看到,詞匯庫的大小通常是 10000 數量級的;上下文長度通常為 2000 或 4000 左右,而現在更是有長達 10 萬的。上下文長度決定著 GPT 在預測序列的下一個整數時所查看的最大整數數量。

對于參數數量,可以看到 GPT-3 的為 1750 億,而 LLaMA 的為 650 億,但實際上 LLaMA 的性能表現遠勝于 GPT-3。原因何在?因為 LLaMA 訓練的 token 要長得多,達到了 1.4 萬億,而 GPT-3 僅有大約 3000 億。因此,評價一個模型時,光看參數數量是不夠的。

上圖中部的表格中給出了 Transformer 神經網絡中一些需要設定的超參數,比如頭的數量、維度大小、學習率、層數等等。

下方則是一些訓練超參數;比如為了訓練 650 億參數的 LLaMA 模型,Meta 使用 2000 個 GPU 訓練了大約 21 天,資金成本大約為 500 萬美元。這大概能體現出預訓練階段各項成本的數量級。

接下來看實際的預訓練過程究竟會發生什么。大致來說,首先會把 token 分批組成 data batch。這些分配數據構成數組,再被輸入到 Transformer 中。這些數組的大小為 B×T;其中 B 是分批大小,即堆疊的獨立樣本的行數;T 是最大上下文長度。下圖給出了一個示例。

e797e034-fed7-11ed-90ce-dac502259ad0.png

在圖中示例中,上下文長度 T 僅為 10,但實際模型的 T 可達到 2000 或 4000 乃至更長。也就是說,實際模型的一行數據可以非常長,比如一整個文檔。我們可以將許多文檔打包到各行中,并用這些特殊的文本結束 token <|endoftext|> 來分隔它們。簡單來說,這些 token 是告訴 Transformer 新文檔開始的位置。比如圖中的 4 行文檔就轉換成了底部的 4×10 的數組。

現在,需要將這些數字輸入到 Transformer。這里我們僅看其中一個單元格(綠色),而實際上每個單元格都會經歷同樣的處理流程。

e7a56a88-fed7-11ed-90ce-dac502259ad0.png

這個綠色單元格會查看其之前的所有 token,即所有黃色單元格的 token。我們要將這里的全部上文輸入到 Transformer 神經網絡,Transformer 則需要預測出該序列的下一個 token,即圖中的紅色 token。

為了給出準確的預測,神經網絡需要調整其上百億個參數。每次調整后,神經網絡對每個單元格 token 的預測分布就會不同。舉個例子,如果詞匯庫的大小為 50257 個 token,那么我們就需要同樣多的數字,以便得到下一個 token 的概率分布,其預測了下一個 token 的可能值及相應概率。

在圖中的示例中,下一個單元格應該是 513,因此就可以將其用作監督源來更新 Transformer 的權重。我們可以并行地對每個單元格采取同樣的操作。我們不斷更換數據批,努力讓 Transformer 有能力正確地預測序列的下一個 token。

下面再看一個更具體的示例。這是《紐約時報》用莎士比亞作品訓練的一個小型 GPT。這里給出了莎士比亞作品中的一小段以及在其上訓練 GPT 的情況。

e7bb3958-fed7-11ed-90ce-dac502259ad0.png

首先,在 GPT 初始化時,權重是完全隨機的,所以其輸出結果也是完全隨機的。隨著時間推移,訓練時間越來越長,GPT 不斷迭代,模型給出的結果樣本也就越來越連貫通順了。最后,可以看到 Transformer 學到了一些有關詞的東西,也知道應該在哪些地方放置空格了。

在實際預訓練過程中,要通過一些量化指標來確定模型迭代中的表現變化。一般來說,研究者監測是損失函數。損失低說明 Transformer 更可能給出正確預測,即序列中下一個整數是正確值的概率更高。

e83a1a20-fed7-11ed-90ce-dac502259ad0.png

預訓練其實就是一個語言建模過程,這個過程的訓練時間可長達一個月。之后,GPT 學到了一個非常強大的通用型語言表征。然后我們可以針對具體的下游任務高效地對其進行微調。

e8480504-fed7-11ed-90ce-dac502259ad0.png

舉個例子,如果下游任務是情緒分類。過去,你采用的方法可能是收集大量標注好「正面」或「負面」情緒的樣本,然后訓練一個 NLP 模型。但現在的新方法不需要預先做情緒分類了,你只需要拿一個預訓練過的大型語言模型,然后只需要少量示例樣本,就能非常高效地針對你的具體任務對模型進行微調。

這對實際應用來說非常有用。那么為什么預訓練后的大型語言模型(LLM)只需要簡單微調就能用呢?這是因為語言建模過程本身就已經涵蓋了大量任務 —— 模型為了預測下一個 token,必須理解文本的結構以及其中內含的各種不同概念。

這就是 GPT-1。

現在來看 GPT-2。人們注意到 GPT-2 甚至可以不用微調就能非常有效地讓這些模型執行 prompt。這些語言模型的訓練目標是完成文檔,因此用戶實際上只需通過編排適當的虛假文檔,就可以誘導模型執行具體任務。下面給出了一個例子。

e87e1f22-fed7-11ed-90ce-dac502259ad0.png

其中給出了一篇文章,用戶想完成的任務是做相關的問答。因此,只需要在文章后面加幾個有答案的問答(這被稱為 few-shot prompt),然后再提問,那么由于 Transformer 的目標是完成這個文檔,也就相當于回答了問題。這個例子是用 prompt 來調教基礎模型,使其相信它在模仿一個文檔,結果卻完成了問答任務。

Karpathy 認為,以提供 prompt 替代微調的方式昭示著大型語言模型的新時代。這讓基礎模型本身就足以應對許多不同類型的任務。

也因此,相關領域的研究前沿就轉向了基礎模型的進化。各大研究機構和企業都在打造自己的基礎大模型。不過這些模型并不都是公開可用的,比如 OpenAI 一直沒有發布 GPT-4 基礎模型。我們通過 API 調用的 GPT-4 模型其實并不是基礎模型,而是一個助理模型(assistant model)。

e888f1cc-fed7-11ed-90ce-dac502259ad0.png

GPT-3 基礎模型可通過 DaVinci API 使用,GPT-2 基礎模型也是公開的,用戶甚至可以在 GitHub 上找到其參數權重配置:https://github.com/openai/gpt-2 。不過總體而言,目前最開放的基礎模型還是 Meta 的 LLaMA 系列模型,但該系列也沒有授權給商業使用。

現在需要指出一點:基礎模型不等于助理模型?;A模型不會回答用戶提問,它們只會完成文檔。所以如果你對基礎模型說:「寫一首關于面包和奶酪的詩」,你可能不會如愿 —— 它只會把你的要求看成一個文檔,然后試圖完成它。

e90b7da4-fed7-11ed-90ce-dac502259ad0.png

但是,你可以通過適當的 prompt 誘導基礎模型寫詩,如上圖右側所示。

當然,你也可以誘導模型變成助理。為此,你需要創建一些特定的少樣本 prompt,使其看起來像是人類與助理交換信息的交互過程的文檔。如下圖所示,然后你只需要在文檔結尾處附上你的提問,基礎模型就能在一定程度上化身為一個有用的助理,給出某個答案。但這個過程并不非??煽?,實踐效果也不好。

e91f941a-fed7-11ed-90ce-dac502259ad0.png

因此,為了打造出真正的 GPT 助理,需要另外的方法,即監督式微調(supervised fine tuning,即 SFT)。

監督式微調階段

在監督式微調階段,需要收集少量但高質量的數據集。OpenAI 的方法是以人工方式收集由 prompt 和理想響應構成的數據。這些數據需要不少,一般需要幾萬個。

然后,繼續在這些數據上執行語言建模。算法不變,只是換了訓練數據集:從大量低質量的互聯網文檔換成了少量高質量的問答式「prompt - 響應」數據。

這個訓練過程完成后,就得到了一個 SFT 模型。部署這些模型就能得到助理,它們已經能完成一定程度的工作。

依然來看個例子。這是人類合同工寫出的數據,其中有一個 prompt,然后人類再寫出理想的響應。

e94c21ba-fed7-11ed-90ce-dac502259ad0.png

理想的響應自然不能讓人隨意發揮,而是需要遵循許多規則(如上右圖),其中有格式上的要求并且要保證給出的答案有用、真實可信且無害。

接下來還需要基于人類反饋的強化學習(RLHF),其中包含獎勵建模階段和強化學習階段。

獎勵建模階段

在這一階段,需要將數據收集轉變成比較的形式。這里給出了一個示例。對于同樣的 prompt,即要求助理寫一個能檢查給定字符串是否為回文的程序或函數。再使用已經訓練好的 SFT 模型生成多個結果,這里給出了三個。然后再讓人類給這些結果排名。

e9b69c34-fed7-11ed-90ce-dac502259ad0.png

這件事做起來可并不簡單,畢竟要是讓人類來完成一個 prompt,可能需要耗費幾個小時時間?,F在假設排名完成了,然后就需要在這些結果的所有可能配對上執行類似二元分類的操作。

如下圖所示,具體的做法是這樣的:將 prompt 按行排列;這里的三行 prompt 是一樣的,但完成的結果不同,即圖中黃色 token(來自 SFT 模型)。然后在其后添加一個特殊的獎勵讀出 token。這樣,只需要在綠色 token 位置對 Transformer 執行監督,就能使 Transformer 預測出某個獎勵,從而判斷 prompt 的完成結果是否優良。

e9c7b2d0-fed7-11ed-90ce-dac502259ad0.png

這基本上就是讓 Transformer 猜測每個完成結果的質量。當其猜測完每個不同結果的質量后,開發者就可以動用已有的基本真值(ground truth)強行讓某些結果的質量分數高于其它結果,從而使模型的獎勵預測結果與人工給出的基本真值保持一致。這個過程可以通過一個損失函數完成。

有了獎勵模型之后,GPT 依然還不能成為一個有用的助理,但獎勵模型卻對后面的強化學習階段很有用,因為獎勵模型可以評估任意給定 prompt 的任意完成結果的質量。

強化學習階段

強化學習階段做的事情就是基于獎勵模型,使用強化學習算法對大量 prompt 對應的結果進行評分。

這里以一個 prompt 為例,將 SFT 模型完成的結果(黃色)排列成行,然后在后面加上獎勵 token(綠色)。這些獎勵來自獎勵模型,并且已經固定不變。

e9db64c4-fed7-11ed-90ce-dac502259ad0.png

現在使用同樣的語言建模損失函數,只是現在是在黃色 token 上訓練,并根據獎勵模型指示的獎勵來重新權衡語言建模目標。

比如在第一行,獎勵模型認為這個完成結果的評分相當高。因此,模型在第一行采樣的所有 token 都會得到強化,也就是在未來會有更高的概率被采用。對比之下,獎勵模型不喜歡第二個完成結果,給出了負分評價,因此該行的所有 token 在未來出現的概率就會降低。

如此這般在許多 prompt 上操作一遍又一遍,經過許多數據批次,就能得到一個創建黃色 token 的策略。依照這個策略,所有完成結果都能被獎勵模型給予高分。

這就是 RLHF 的訓練流程。最后得到的模型就可以部署成應用了。

ChatGPT 就是一個 RLHF 模型,而其它一些模型則可能是 SFT 模型,比如 Claude 等。

那么 OpenAI 為什么要使用 RLHF 呢?Karpathy 表示,原因很簡單,使用 RLHF 能讓模型表現更好。根據 OpenAI 之前做的一些實驗,可以看到使用了 PPO(近端策略優化)算法的 RLHF 模型整體上都更好一些。當把結果提供給人類時,相比于 SFT 模型和通過 prompt 化身為助理的基礎模型,人類也基本更喜歡來自 RLHF 模型的 token。

e9f047a4-fed7-11ed-90ce-dac502259ad0.png

那 RLHF 為什么能讓模型更好呢?目前 AI 研究界還沒有找到一個得到大家認可的理論,但 Karpathy 還是給出了自己的見解。他認為這可能與比較和生成的計算難度之間的不對稱性有關。

舉個例子說明一下:假設我們要讓一個模型寫一首關于回形針的俳句。如果你是一位正努力創建訓練數據的合同工,正在為 SFT 模型收集數據。那么你該怎樣寫出一首關于回形針的好俳句呢?而你可能并不是一位優秀的俳句詩人。但是,如果給你幾首俳句,你卻有能力辨別它們中哪首更好一些。也就是說,比起創建一個好樣本,判斷哪個樣本更好是簡單得多的任務。因此,這種不對稱性可能使得比較是一種更好的方法 —— 能更好地利用人類的判斷來創造出好一些的模型。

e9ffe7e0-fed7-11ed-90ce-dac502259ad0.png

現在來看另一個方面:RLHF 并不總是會為基礎模型帶來提升。在某些情況下,RLHF 模型會失去一些熵,也就是說它們會輸出更加單調、變化更少的結果。而基礎模型的熵更高,可以輸出更加多樣化的結果。

ea0d2428-fed7-11ed-90ce-dac502259ad0.png

比如下面的任務可能就更適合使用基礎模型,即生成與已有的 n 個示例相似的東西。這里的示例任務是生成更多寶可夢名字。首先,用戶向模型提供了 7 個寶可夢名字,然后讓基礎模型完成文檔?;A模型生成了大量寶可夢名字。這些名字都是虛構的,畢竟寶可夢并不真實存在。Karpathy 認為這類任務使用基礎模型會得到更好的結果,因為基礎模型的熵更高,給出的結果既與之前的示例相似,又更加多樣化和炫酷。

ea1d36b0-fed7-11ed-90ce-dac502259ad0.png

現在,用戶可以使用的助理模型已有不少了。伯克利有個團隊正對許多助理模型進行排名并給出了基本的 ELO 評分。當然,現目前最好的模型是 GPT-4;Claude 和 GPT-3.5 緊隨其后。有些模型公開提供模型權重,比如 Vicuna、Koala 等。在這個榜單中,前三名都是 RLHF 模型,其它模型基本都是 SFT 模型。

ea3996ca-fed7-11ed-90ce-dac502259ad0.png

上面就是訓練模型的方式。下面調轉方向,看看我們可以怎么將 GPT 助理模型應用于實際問題。

e69f2246-fed7-11ed-90ce-dac502259ad0.jpg

如何使用 GPT?

e6ba3a22-fed7-11ed-90ce-dac502259ad0.jpg???

下面會通過實際示例來展示如何最好地使用 GPT。假設你在寫一篇文章,需要在結尾加上這樣一句:「California’s population is 53 times that of Alaska.」(加州的人口是阿拉斯加州的 53 倍)。但現在你不知道這兩個州的人口數據,你需要智能助理來幫你。

人類會怎樣完成這個任務呢?大致推想,人類很可能會經歷一連串的思考過程,如下圖所示:首先會想到為了得到結果,需要比較人口數量,那么就需要查詢人口數據;然后使用查詢工具查一下 —— 在維基百科上找到了加州和阿拉斯加的人口數據;接下來很顯然需要做個除法運算,可能會需要計算器;然后得到倍數結果 53;然后我們的大腦可能會用經驗理智快速檢驗一下 ——53 倍感覺挺合理的,畢竟加州是美國人口最多的州。

ea69956e-fed7-11ed-90ce-dac502259ad0.png

信息有了之后,就進入了創造性寫作的部分。你可能首先會寫下:「California has 53x times greater」,然后你想一下感覺又不太合適,又刪了重新想哪種表達更合適一點,最終得到你滿意的句子表達。

簡單來說,為了寫這樣一句話,你的內心會經歷大量獨白式的思考。那么 GPT 在生成這樣一句話時又會經歷什么呢?

GPT 處理的都是 token 序列。不管是閱讀還是生成,它都是按部就班地一塊塊地進行,其中每一塊都是針對一個 token,計算工作量也都一樣。這些 Transformer 的層數不少,足有 80 個推理層,但話說回來 80 也不是非常多。Transformer 會通過這些來盡力模仿寫作,但其思考過程和人類的大不相同。

ea7f0c64-fed7-11ed-90ce-dac502259ad0.png

也就是說與人類不同,GPT 沒有什么內心獨白,它只會檢視每一個 token 并在每個 token 上投入同等的計算量,僅此而已。它們就像是 token 模擬器 —— 它們不知道自己知道什么或不知道什么,只是模仿地寫出下一個 token;它們也不會反思,內心不會思考結果是否合理;它們寫錯了也不會反過來修改。它們只是按序列采樣 token。

但即便如此,Karpathy 認為 GPT 依然具有某種形式的認知能力優勢,比如它們具備非常廣博的事實知識,涵蓋許多不同領域,因為它們數以百億計的參數,足以儲存大量事實。同時它們還有相對來說很大且完美的工作記憶。只要能填入 Transformer 的上下文窗口,它就能通過其內部自注意機制來加以利用。也就是說 GPT 能以無損的方式記住能嵌入其上下文窗口的任何內容。

Karpathy 表示:人類通過 prompt 使用 GPT 的過程本質上是大腦和 LLM 這兩種不同的認知架構互相配合的過程。

用 GPT 執行推理

再來看 Transformer 在實踐中表現相當好的一種用例:推理。

如果只有單個 token,當然不能指望 Transformer 推理出什么。推理的執行需要涉及更多 token。比如,你不能向 Transformer 提一個非常復雜的問題,然后指望它通過單個 token 就找到答案。Transformer 需要通過 token 來「思考」。

ea896bbe-fed7-11ed-90ce-dac502259ad0.png

上圖右側給出了一個例子??梢栽谳敵鼋Y果中看到 Transformer 為了解答問題而進行的「思考」。如果你提供了一些示例(上方) ,那么 Transformer 就會模仿那個模板,結果看起來相當不錯。當然,你也可以通過說「Let’s think step by step」(請按步驟解答)引導 Transformer 給出類似的輸出 —— 這在某種程度上展示了其工作過程。而且由于它有點像是進入了工作過程展示模式,那么其在每個單獨 token 上投入的計算量就會少一點。這樣一來,它執行的就是一個速度更慢的推理過程,也就更可能成功得到正確答案。

再看一例。如下圖所示,人類寫作時會寫不好,類似地,Transformer 在選擇下一個 token 時可能會出錯,但不同于人類可以及時停下進行修改,Transformer 會繼續生成,一錯到底,最終得到錯誤答案。

eab368a6-fed7-11ed-90ce-dac502259ad0.png

但類似于人類寫作時沒寫好可以重來一樣,Transformer 也可以多次采樣,然后我們可以使用某個過程找到其中較好的。這被稱為自我一致性(self-consistency)。

有趣的是,通過讓模型反思(reflection),可以發現模型其實能知道自己出錯了。舉個例子,如果讓 GPT-4 生成一首不押韻的詩然后它生成的詩卻押韻了。然后你只需要問它「你完成任務了嗎?」它就會知道自己沒有完成任務,然后為你重新完成任務。

eac14b88-fed7-11ed-90ce-dac502259ad0.png

但如果你不給出那樣的 prompt,它就不知道自己錯了。它并不會自己去回顧,畢竟它只是一個 token 模擬器。你必須通過 prompt 讓它回顧。

Karpathy 表示可以按照目的將 AI 模型分為兩種:一類系統(System 1)和二類系統(System 2)。一類系統的處理過程速度快并且是自動化的,對應于只是采樣 token 的大型語言模型。而二類系統的速度慢一些,會反復思考進行規劃。

eacf5782-fed7-11ed-90ce-dac502259ad0.png

現在有很多人在通過設計 prompt 來讓 LLM 表現出類似人類大腦的思維過程。如上左圖 (d) 所示,這是近期一篇論文提出的 Tree of Thought(思維樹)。該論文提出為任意給定 prompt 維持多個完成結果,然后對這些結果進行評分,保留得分較好的結果。

要做到這一點,不只要用一個 prompt,而是需要用 Python Glue 代碼將多個 prompt 組合到一起。這實質上是維持多個 prompt,還需要執行某個樹搜索算法來找到可擴展的 prompt??梢哉f這是 Python Glue 代碼與各個 prompt 組成的共生體。

Karpathy 在這里類比了 AlphaGo。AlphaGo 的每一步都是下接下來的一步棋,其策略的訓練方式最初是模仿人類。但除了這個策略之外,它還會執行蒙特卡洛樹搜索。由此造成的結果是,AlphaGo 會在頭腦里嘗試大量不同的可能性然后對它們進行評估,最后僅保留其中效果好的。思維樹就有點像是 AlphaGo 下圍棋時的思維過程,只不過處理的是文本。

不只是思維樹,現在也有更多人在實驗讓 LLM 完成比簡單問答更加復雜的任務,但很多都像是 Python Glue 代碼,將許多 prompt 連接起來。

eadfe962-fed7-11ed-90ce-dac502259ad0.png

上圖給出了兩個例子。其中右圖的論文提出了 ReAct,研究者是將 prompt 的答案構造成一個思維、動作、觀察構成的序列,其中在動作部分,模型還能使用工具。這就像是某種回答查詢的思維過程。

左圖則是 AutoGPT。這個項目最近有些炒作,但也確實是很有趣的研究。AutoGPT 能夠保存一個任務清單并遞歸式地分解這些任務。目前來說這種做法的效果并不很好,Karpathy 也不建議人們將其用于實際應用,但他表示從研究角度看,這種方法還是很有啟發性。

以上就是創造二類系統思維方式的一些研究成果。

Karpathy 接下來談到了 LLM 的另一個有趣現象,他說:「LLM 就好像有種心理怪癖。它們不想成功,只想模仿?!鼓阆胍o出正確答案,你就要明確要求它。這是因為 Transformer 的訓練數據集中數據并不總是正確的,也存在低質量的數據。

舉個例子,假如有某個物理問題,數據集中可能有某個學生給出的錯誤答案,同時也會有某個專家給出的正確答案。而 Transformer 不知道該模仿哪個或者說它都想模仿,畢竟它們的訓練目標是語言建模,不是分辨對錯。因此在使用和測試時,如果你想要正確答案,你就要明確提出要求。

eaecdee2-fed7-11ed-90ce-dac502259ad0.png

比如在上圖的論文中,研究者嘗試了多種不同的 prompt,發現對于同一問題,不同 prompt 得到的輸出結果準確度竟然不一樣!可以看到,如果在 prompt 中明確要求模型一步步推理并給出正確結果,其準確度會高一些,因為這樣 Transformer 就不必再為低質量解答分配概率了。

因此,如果你想要正確答案,就大聲說出來!像是在 prompt 中添加「你是某領域的專家」或「假設你的 IQ 為 120」。但是也不要太過了,比如要求模型假設自己的 IQ 為 400,這樣的話你的問題可能會超出數據的分布或者雖在分布中但結果卻很科幻 —— 這樣模型可能就會開始扮演什么科幻角色了。

讓 LLM 使用工具 / 插件

針對具體問題,使用合適的工具往往能事半功倍。對 LLM 來說也是如此。根據具體任務的不同,我們可能希望 LLM 能使用計算器、代碼解釋器、搜索引擎等工具。

eafe32b4-fed7-11ed-90ce-dac502259ad0.png

但首先我們需要記住一點:Transformer 默認情況下可能并不知道它們無法做到某些事情。用戶甚至可能需要在 prompt 中明確告知 Transformer:「你不擅長心算,如果要做大數運算,請使用這個計算器,這是使用這個計算器的方法?!鼓惚仨毭鞔_要求它使用某個工具,因為模型自身不知道自己擅長或不擅長什么。

檢索是能極大提升 LLM 性能的重要工具。因為 LLM 是專精于記憶的(memory only),因此專精于檢索的搜索引擎能為 LLM 提供極大補充。實踐也證明,能使用檢索工具的 LLM 的實用性會大大提升。

eb09b440-fed7-11ed-90ce-dac502259ad0.png

之前已經提到,Transformer 的上下文窗口就是其工作記憶范圍。如果能在其工作記憶中載入與當前任務相關的信息,那么模型的表現就會更好,因為模型能夠立即讀取所有記憶。實際上用檢索增強生成也是很多人感興趣的課題。上圖下方展示了 LlamaIndex,其中有一個連接大量不同類型數據的數據連接器。這個工具可以索引各種數據并將它們提供給 LLM 使用。

現在時興的做法是:選取相關文檔,然后將其分成文本塊,再執行嵌入操作,得到表示那些數據的嵌入向量。這些嵌入向量會被保存起來。當使用模型時,我們可以向存儲的向量發出查詢,從中取用與當前任務相關的文本塊。然后將這些文本塊加入到 prompt,再讓 LLM 生成。這種做法在實踐中的效果很好。

這其實與人類完成任務的方法類似。人也可以僅靠自己的記憶做事,但如果能檢索到與任務相關的資料,做起事來也自然會更容易。Transformer 雖然記憶廣博,但也能從檢索中受益。

在 prompt 中添加約束條件

在 prompt 中設定約束條件能迫使 LLM 按特定模板輸出結果。下圖給出了微軟幫助用戶更好使用 LLM 的 Guidance 工具,具體可訪問 https://github.com/microsoft/guidance 。在這里給出的例子中,LLM 輸出的結果會是 JSON 格式。這是可以得到保證的,因為 prompt 會調整 Transformer 輸出不同 token 的概率,而這些 token 的輸出位置受限了,即只能填補文本中的空缺位置。這樣就實現了對文本留空處的嚴格限制。帶約束條件的采樣對某些任務來說非常有用。

eb1d62ec-fed7-11ed-90ce-dac502259ad0.png

微調

通過設計 prompt 能讓 LLM 模型完成更多不同任務,但我們其實也能通過微調來做到這一點。

對模型進行微調是指改變模型的權重分布。這種事情做起來不難,因為現在已經有 LLaMA 等開源的大模型以及一些用于微調的軟件庫。

eb284586-fed7-11ed-90ce-dac502259ad0.png

比如 LoRA 等參數高效型微調技術讓用戶可以僅訓練模型中少量稀疏的部分。使用該技術時,基礎模型的大部分都保持不變,而某些部分可以變化。在實踐中,這種技術用起來很不錯,能讓人以很低的成本對模型做少量調整。同時,因為模型大部分都是固定不變的,所以可以使用非常低精度的推理來計算那些部分,因為梯度下降不會更新它們。由此,整體的微調效率就能非常高。

不過需要記住,微調需要專業技術,而且多半還需要相應的專業領域知識,畢竟不管是雇傭人類專家來編寫數據集還是通過自動方法合成數據都非常復雜,而這也會拉長迭代周期。

另外,Karpathy 還指出,對用戶來說,監督式微調(SFT)還是可以做到的,因為這其實就是繼續執行語言建模任務;但 RLHF 是還需進一步研究的課題,實現難度就大多了,因此不建議初學者來做。

Karpathy 的 GPT 使用建議

為了幫助人們更好使用 GPT,Karpathy 給出了一些建議。在使用 GPT 來完成任務時,可以將任務分成兩個部分:一,取得最佳結果;二,依照指定順序優化結果。

eb324cac-fed7-11ed-90ce-dac502259ad0.png

對于第一部分,首先是選模型,目前最強的模型是 GPT-4。有了模型后,當執行具體任務時,你需要把 prompt 設計得足夠詳細,其中要包含任務的背景、相關信息和說明。你要想一想人類會怎么完成這一任務,但你同時也要明白人類有內心獨白、能夠自省,LLM 卻不行。了解 LLM 的工作方式對設計 prompt 大有裨益。你可以檢索一些相關背景和信息并將其添加到 prompt 中。網上已有不少人分享過相關經驗和技術。

你不用急于讓 LLM 一步到位完成你的任務??梢远嘧鰩状螌嶒?,測試一下各種可能性。你可以向 LLM 提供一些例子,讓它真正理解你的意圖。

對于原生 LLM 難以解決的問題,可以將其交給工具和插件處理。你要想想如何將工具整合進來,這當然無法通過單個 prompt 問答就可以解決。你需要多做幾次實驗,實踐出真知。

最后,如果你成功搞出了適合自己的 prompt 設計方案,你可以再繼續堅持一下,看看可以如何對模型進行微調以更好地服務你的應用;但要明白微調模型的速度會更慢,也需要投入更多。對于想要使用 RLHF 的研究型專家來說,雖然如果真能用起來,RLHF 目前是會比 SFT 好一些,但成本也會更高。為了節省成本,探索性研究可以使用性能更低的模型或更短的 prompt。

Karpathy 強調用 LLM 解決用例時可能會出現一些問題,比如結果可能有偏見、編造出幻覺信息、推理錯誤、無法理解應用類型(比如拼寫相關任務)、知識隔斷(GPT-4 的訓練數據截止于 2021 年 9 月)、可能會被攻擊(比如 prompt 注入攻擊、越獄攻擊、數據毒化攻擊)……

eb3c32a8-fed7-11ed-90ce-dac502259ad0.png

Karpathy 建議用戶目前僅在低風險程度的應用中使用 LLM 并且要搭配人工監督一起使用。LLM 可以作為靈感和建議來源,讓它們輔助我們而不是完全自主地替代我們工作。

結語

Karpathy 在總結時說:「GPT-4 是了不起的造物。我很感激它存在于世而且它很美麗?!顾哂蟹欠驳哪芰?,能幫助用戶解答疑問、編寫代碼等等。圍繞它的生態系統也正在蓬勃發展。

eb54febe-fed7-11ed-90ce-dac502259ad0.png

最后,Karpathy 向 GPT-4 提了一個問題:「如果要激勵 Microsoft Build 2023 的觀眾,你會說點什么?」

eb5ec87c-fed7-11ed-90ce-dac502259ad0.png

GPT-4 給出了如下回答:

eb674da8-fed7-11ed-90ce-dac502259ad0.png

筆者也在這里取巧,請 ChatGPT 將這段話翻譯成了漢語:

eb79b81c-fed7-11ed-90ce-dac502259ad0.png



審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    87

    文章

    26443

    瀏覽量

    264044
  • GPT
    GPT
    +關注

    關注

    0

    文章

    300

    瀏覽量

    14867
  • OpenAI
    +關注

    關注

    8

    文章

    757

    瀏覽量

    5911

原文標題:OpenAI聯合創始人親自上場科普GPT,讓技術小白也能理解最強AI

文章出處:【微信號:AI智勝未來,微信公眾號:AI智勝未來】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用TC21x的GPT實現1m計時器執行定時任務,怎么配置GTM和GPT?

    專家們好,我想使用TC21x的GPT實現1m計時器執行定時任務,不知道怎么配置GTM和GPT?
    發表于 02-06 06:47

    分階段雷達的電源解決方案

    分階段雷達的電源解決方案
    的頭像 發表于 10-26 14:57 ?311次閱讀
    <b class='flag-5'>分階段</b>雷達的電源解決方案

    大語言模型(LLM)預訓練數據集調研分析

    finetune)、rlhf(optional). ?State of GPT:大神 Andrej 揭秘 OpenAI 大模型原理和訓練過程 。 supervised finetune 一般在 base
    的頭像 發表于 09-19 10:00 ?570次閱讀
    大語言模型(LLM)預<b class='flag-5'>訓練</b>數據集調研分析

    YOLOv5網絡結構訓練策略詳解

    前面已經講過了Yolov5模型目標檢測和分類模型訓練流程,這一篇講解一下yolov5模型結構,數據增強,以及訓練策略。
    的頭像 發表于 09-11 11:15 ?1116次閱讀
    YOLOv5網絡結構<b class='flag-5'>訓練</b>策略<b class='flag-5'>詳解</b>

    谷歌Gemini被曝算力達GPT-4五倍,手握TPU王牌碾壓OpenAI

    根據Patel和Nishball的說法,此前屢屢被爆料將成為GPT-4大殺器的谷歌Gemini,已經開始在新的TPUv5 Pod上進行訓練了,算力高達~1e26 FLOPS,比訓練GPT
    的頭像 發表于 09-04 16:02 ?589次閱讀
    谷歌Gemini被曝算力達<b class='flag-5'>GPT</b>-4五倍,手握TPU王牌碾壓OpenAI

    盤古大模型和GPT3有哪些不同

    幾個方面來探討盤古大模型和GPT-3的不同之處。 一、概念定義差異 盤古大模型,簡稱PGM,是中國科學院計算機網絡信息中心所研發的一種大規模中文自然語言處理預訓練模型,它是以一種全新的方式來進行中文自然語言處理的。它可以像英文NLP預
    的頭像 發表于 08-30 18:28 ?1357次閱讀

    GPT-5快來了?訓練或需5萬張H100顯卡

    openai從gpt-4開始對技術細節進行了徹底的保密,最初只對一份技術報告進行了基準測試,而沒有提及訓練數據和模型參數。但是,gpt-4的培訓需要大量的數據,并不是付費就能解決的問題。openai使用網絡爬行動物。
    的頭像 發表于 08-11 10:48 ?789次閱讀

    5G切換信令流程詳解

    5G切換信令流程詳解
    的頭像 發表于 07-13 10:49 ?4672次閱讀
    5G切換信令<b class='flag-5'>流程</b><b class='flag-5'>詳解</b>

    爆了!GPT-4模型架構、訓練成本、數據集信息都被扒出來了

    文章稱,他們從許多來源收集了大量有關 GPT-4 的信息,包括模型架構、訓練基礎設施、推理基礎設施、參數量、訓練數據集組成、token 量、層數、并行策略、多模態視覺適應、不同工程權衡背后的思維過程、獨特的實現技術以及如何減輕與
    的頭像 發表于 07-12 14:16 ?459次閱讀
    爆了!<b class='flag-5'>GPT</b>-4模型架構、<b class='flag-5'>訓練</b>成本、數據集信息都被扒出來了

    態勢感知與GPT

     GPT是一種基于Transformer的預訓練語言模型,可以用于自然語言處理中的各種任務。在態勢感知中,GPT可以用來對文本進行分類和情感分析,從而幫助用戶了解當前的輿情和社會熱點。例如,在某個
    的頭像 發表于 07-07 11:23 ?350次閱讀

    基于一個完整的 LLM 訓練流程

    ? ? 在這篇文章中,我們將盡可能詳細地梳理一個完整的 LLM 訓練流程。包括模型預訓練(Pretrain)、Tokenizer 訓練、指令微調(Instruction Tuning)
    的頭像 發表于 06-29 10:08 ?1279次閱讀
    基于一個完整的 LLM <b class='flag-5'>訓練</b><b class='flag-5'>流程</b>

    DeepSpeed結合Megatron-LM訓練GPT2模型筆記

    本文基于DeepSpeedExamples倉庫中給出的Megatron相關例子探索一下訓練GPT2模型的流程。主要包含3個部分,第一個部分是基于原始的Megatron如何訓練
    的頭像 發表于 06-19 14:45 ?1930次閱讀
    DeepSpeed結合Megatron-LM<b class='flag-5'>訓練</b><b class='flag-5'>GPT</b>2模型筆記

    State of GPT:大神Andrej揭秘OpenAI大模型原理和訓練過程

    你可以看到,Llama 的參數數量大概是 650 億?,F在,盡管與 GPT3 的 1750 億個參數相比,Llama 只有 65 個 B 參數,但 Llama 是一個明顯更強大的模型,直觀地說,這是
    的頭像 發表于 05-30 14:34 ?674次閱讀
    State of <b class='flag-5'>GPT</b>:大神Andrej揭秘OpenAI大模型原理和<b class='flag-5'>訓練</b>過程

    GPT-4 的模型結構和訓練方法

    GPT-4 的發布報道上,GPT-4 的多模態能力讓人印象深刻,它可以理解圖片內容給出圖片描述,甚至能在圖片內容的基礎上理解其中的隱喻或推斷下一時刻的發展。
    的頭像 發表于 05-22 15:21 ?2003次閱讀
    <b class='flag-5'>GPT</b>-4 的模型結構和<b class='flag-5'>訓練</b>方法

    芯片封裝測試流程詳解

    芯片是一個非常高尖精的科技領域,整個從設計到生產的流程特別復雜,籠統一點來概括的話,主要經歷設計、制造和封測這三個階段。封測就是金譽半導體今天要說到的封裝測試。
    的頭像 發表于 05-19 09:01 ?1703次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>