如今,在科技領域掀起了一股GPT3的熱潮。大規模語言模型(比如GPT3)的潛力驚豔了我們。雖然這些模型還沒有成熟到大多數企業將之直接面對消費者,但卻展示出一些智慧的火花,並讓人堅信其將會加速自動化的進程,讓人看到智能計算系統的希望。讓我們拂去GPT3的神秘光環,來看一看它訓練與工作的原理吧!
一個經過訓練的GPT3語言模型可以生成文本。
我們可以選擇一些文本作為輸入,從而影響它的輸出。
輸出是由模型在掃描大量文本的訓練期間 "學到 "的東西生成的。
訓練是將模型暴露在大量文本中的過程。它已經做了一次並完成了。你現在看到的所有實驗都是來自那個訓練過的模型。據估計,它耗費了355個GPU年,花費了460萬美元。
一個有3000億個字符的數據集被用來生成模型的訓練樣本。例如,這是由上面那句話生成的三個訓練樣本。
你可以看到你如何在所有文本上滑動一個窗口,並生成很多例子。
當我們只給模型一個樣本時:我們只給看特徵,並讓它預測下一個單詞。
該模型的預測將是錯誤的。我們計算其預測中的錯誤,並更新模型,以便下次它做出更好的預測。
重複這個過程數百萬次
現在讓我們更詳細地看看這些相同的步驟。
GPT3實際上一次只生成一個token的輸出(現在我們假設一個token是一個詞)。
請注意:這是對GPT-3工作原理的描述,而不是對它的新穎之處的討論(主要是規模大得可笑)。其架構是基於的 transformer 解碼器模型, 參見這篇論文(https://arxiv.org/pdf/1801.10198.pdf)。
GPT3 極其巨大。它將從訓練中學習到的內容編碼成1750億個參數。這些參數用於計算每次運行時生成的 token。
未經訓練的模型以隨機參數開始。訓練以期找到更好的預測值。
這些數字是模型裡面數百個矩陣的一部分。預測主要就是大量的矩陣乘法。
在我的YouTube 上的人工智慧介紹中(https://www.youtube.com/watch?v=mSTCzNgDJy4),我展示了一個簡單的機器學習模型,它只有一個參數。為解讀這個1750億個參數的怪獸開了個好頭。
為了理解這些參數是如何分布和使用的,我們需要打開模型看看裡面的情況。
GPT3 的寬度是2048個 token。這是它的 "上下文窗口"。這意味著它沿著這2048條軌道處理 token。
讓我們跟隨紫軌,看看系統是如何處理"機器人"這個詞並產生"A"的?
抽象的步驟:
將單詞轉換為代表單詞的向量(數字列表)。計算預測值將所得向量轉換為單詞
GPT3的重要計算發生在其96個 transformer 解碼層的堆棧中。
看到這些層了嗎?這就是 "深度學習 "中的 "深度"。
這些層中的每一層都有1.8億個參數來進行計算。
你可以在我的博文圖解GPT2中看到解碼器內部一切的詳細解釋。
與GPT3的不同之處在於密集自注意層和稀疏自注意層的交替。
這是GPT3內輸入和響應("Okay human")的X光片。注意,每一個token是如何通過整個層堆棧的。我們不關心第一個詞的輸出。當輸入完成後,我們開始關心輸出。我們把每個詞都反饋到模型中。
在React代碼生成的例子中,描述會是輸入提示(綠色),此外還有幾個對代碼描述的例子吧。而 React 代碼會像這裡的粉色 token 一樣一個個地生成。
我的假設是,將引例和描述作為輸入,用特定的 token 將例子和結果分開,然後輸入到模型中。
這種方式讓人印象深刻。因為我們只要等到GPT3的微調推出。它的性能將更加驚人。
微調實際上是更新模型的權重,讓模型在某項任務中表現得更好。
更多精彩推薦
1024程式設計師節重要議程曝光,開源技術英雄會聊開源「真心話」
「我們的目標是取代物聯網中的安卓」 | 人物誌
對話阿里云:開源與自研如何共處?
服!AI 讓兵馬俑「活」起來,顏值驚豔!
AI 還原康乾盛世三代皇帝的樣貌,簡直太太太好玩了!
觀點 | 回顧以太坊近期及中期擴容路線圖,展望 rollup 作為中心的以太坊路線圖
點分享
點點讚
點在看