官术网_书友最值得收藏!

1.4.3 GPT是對數據的無損壓縮

1.4.2節介紹了算術編碼的原理,它可以實現無損壓縮,從而減少傳輸的數據量。我們的目標是最小化傳輸的數據量,也就是最小化二分查找的次數。

為了計算二分查找的次數的上界,我們可以用一個直觀的方法。還是用1.4.2節中的例子,把的區間均勻鋪滿整個[0,1]區間,假設,那么會分成個區間,大約需要查詢次。如果不考慮取整的誤差,可以得到二分查找的次數,表示為

  (1-5)

實際上,二分查找的次數的上界可以表示為

pg22  (1-6)

這樣就可以知道傳輸數據集的代價,表示為

  (1-7)

仔細觀察,我們會發現其實就是訓練時這個標記的損失值。因此我們可以進一步發現,就是訓練曲線下方的面積,如圖1-18所示。

圖1-18 訓練過程的損失值曲線

因此,GPT的訓練過程本質上就是對整個數據集D的無損壓縮。圖1-19詳細展示了GPT無損壓縮的每一項內容。

圖1-19 GPT的無損壓縮

按照圖1-19所示的方式計算并存儲,“訓練代碼和所有”便是對數據集D的無損壓縮。只是在平時訓練中計算得到下一個標記分布,并且計算損失進行反傳后,便扔掉了這個分布,自然也沒有計算并存儲。但是“無損壓縮”和“模型訓練”的過程是等價的。

有了壓縮的上述量化公式,便可以很方便地計算壓縮率。壓縮率的計算公式為

  (1-8)

式(1-8)也解釋了為何模型規模越大,往往表現越智能。這是因為在給定數據集,并假設驗證集與訓練集同分布的情況下,大模型往往具有較低的損失,進而可能實現更高的壓縮率,使得模型表現更為智能。

圖1-20是Llama模型的一些訓練曲線(見文前彩圖)[3],由于綠線和紅線表示的兩個模型只在數據集上訓練了1個輪次(epoch),因此可以把訓練損失視為預測損失。同時也可以粗略地估計模型描述長度(約為1 MB)。即便模型的參數量不同,但Llama 33B和Llama 65B兩個模型有著相同的模型描述長度(用于訓練的代碼相同)。65 B模型顯然有著更低的訓練損失,把訓練損失和模型描述長度兩項相加,可以看出65 B實際上是更好的壓縮器。

圖1-20 損失值曲線下的面積表示為數據集的無損壓縮

圖1-21是更具體的數據(見文前彩圖),用于初始化和訓練模型的代碼大小約為1 MB,粗略地計算負對數似然,大約是0.4 TB,而用于訓練的原始數據是5.6 TB的文本,因此該模型的壓縮率為7.14%(0.4 TB/5.6 TB×100%≈7.14%)。接下來,我們討論一下壓縮率的變化。

圖1-21 Llama模型壓縮率計算

假設訓練穩定,損失值平滑下降,收斂到,那么當數據集D無限增長時,壓縮率的極限可以表示為

  (1-9)

(預測得完全準確),壓縮率的變化曲線如圖1-22所示。由此可見,預測下一個詞(next token prection)可以用壓縮理論完美地解釋,這也是OpenAI堅持“預測下一個詞”的原因。同時,壓縮理論也印證了,在生成任務中,GPT架構比BERT架構更加合理,更加符合自然語言的規律。

雖然像GPT這樣的大模型可以實現壓縮,但是這種壓縮方式也有局限性。例如,由于像素級的圖像建模的開銷非常大,對視頻進行像素級的建模非常不現實,因此很多現實中的數據無法被直接觀測到,不能寄希望于壓縮所有可觀測到的數據來實現通用人工智能。

圖1-22 壓縮率的變化曲線

主站蜘蛛池模板: 金溪县| 赤水市| 苍溪县| 台州市| 太康县| 无锡市| 荔浦县| 绥阳县| 桂平市| 六安市| 南木林县| 额敏县| 香港| 宜川县| 榆林市| 隆安县| 平邑县| 如皋市| 临澧县| 宁海县| 德清县| 武陟县| 连城县| 拉孜县| 沛县| 婺源县| 泾源县| 富平县| 鄱阳县| 扎赉特旗| 蓝山县| 昌乐县| 云阳县| 海阳市| 石台县| 搜索| 阿拉善左旗| 大方县| 鄂托克旗| 靖边县| 久治县|