當前位置: 華文問答 > 數碼

李開復帶隊零一萬物釋出開源大模型 Yi,如何解讀?

2023-11-06數碼

很榮幸參與了模型的訓練過程,整個過程中最大的感觸就是scale up is all you need,大模型是極致的系統科學,基礎做好了之後模型在scale up的過程中會無比「絲滑」。34B只是一個很小的節點,千億和萬億模型仍然可以按照這套系統科學順利產出結果。相信訓練過程中的很多point和tricks大家也都耳熟能詳了,就不一一展開了,記錄幾個比較有趣的insight吧,希望能產生一些價值。參照老王的一句話,在追逐AGI的道路上大家都是同行者。

要有自己的評測指標

通用的benchmark特別像MMLU這種比較綜合的指標能反映模型的一部份能力,但拿這些benchmark作為最佳化目標,模型訓練過程中非常容易走偏或者在in-domain data上過度最佳化。我們花了很長的時間探索哪些指標能真正反映模型的能力,哪些指標是和智能強相關的。舉個例子,最近很多人在討論壓縮和智能的關系,其實壓縮率就是個很好的評價指標。但用壓縮率作為指標時會發現它是和數據強相關的,在不同的數據分布上壓縮率不可比,怎麽去建立數據分布和壓縮率的關系就很值得去深入研究一下。

當我們建立了自己的評測指標後,按照評測指標去最佳化模型的訓練過程,團隊內部就會對模型有很強的自信,知道做的所有工作都是在最佳化模型的能力。最後再去benchmark上評測訓練完的模型,會發現模型指標還是很不錯的,這個算是個副產物吧,情理之中也意料之內。

數據越多越好,質素越高越好

這好像已經是老生常談的問題了,不過還是要拎出來再強調一下。為了能有最豐富的資料來源和原始數據,我們處理了所有cc的數據,比單純處理幾個cc的封包還是會多出大量的數據。但我們也用了更加嚴格的數據篩選標準,和falcon,ccnet這些開源的數據處理方案相比,我們最後保留的數據量不到其它方法的1/10。這種嚴格的數據篩選也是後面模型有良好表現的基礎。

當處理完所有的cc數據以後,一個insight是所有做大模型預訓練的公司都會有能力且必須把互聯網上所有的數據處理一遍,好像大家都可以做一遍搜尋引擎了。另一方面,很多人在討論文本世界不夠了的問題,其實可以想想被篩掉的數據道理有沒有資訊量。除了重復的那部份數據以外,其它數據理論上都是有壓縮的價值的。從這個維度上看,能使用的文本數據比我們現在使用的幾十T token還能有幾個數量級的提升。

Scaling Law is all you need

很多人都認為scaling law就是用來算最優的數據和參數量的一個公式,但其實scaling law能做的事情遠不止如此。為了真正理解scaling law,要做的第一件事就是忘記Chinchilla Scaling Law,然後開啟OpenAI的Scaling Law的paper,再把paper中OpenAI參照自己的更早的paper都詳細的讀幾十遍(實在是有點晦澀難懂),有條件的把裏面的實驗都復現一下(其實需要的實驗資源不多),然後就會感到如同發現了新大陸一般。這裏要感謝 @Zhi Tian 和 @曹越 在這個方向上的討論和指導,國內的大神在核心問題的理解上絕對是世界最頂尖的水平的。

理解了Scaling law,就會發現大模型的training dynamics是完全可以建模的,training performance是完全可預測的。在100M以下的模型上做的實驗擬合的公式,可以準確預測幾十B甚至上百B模型訓練時每一步的validation loss(實際上幾百步預測一次就夠了)。有了這個基礎,所有的實驗就只要在小模型上做就可以了。我們在幾十B和幾百B模型上的實驗都是一次完成的。

預訓練模型的平衡性很重要

預訓練模型作為基座其實並沒有太多直接做套用的能力,需要後面大量post training或者alignment的工作。我們的一個結論是在預訓練階段IQ和EQ要盡可能平衡,「理科生」能力和「文科生」能力不能有嚴重偏科。其實作在在productivity方向(如ChatGPT,Copilot)和entertainment方向(如Character.AI和Inflection PI)需要的分別是模型的IQ和EQ能力。但這兩個能力在預訓練階段會互相影響,因此控制兩者的平衡很關鍵。可以看到大量針對程式碼和數學最佳化的模型很難用在娛樂場景上,從一定程度上限制了基座模型的套用範圍。同時,我們的研究發現在提升模型程式碼和數學能力的過程中,只要做到合理的數據配比,並不會影響模型在其它方面的效能。所以我們在pre training階段用了盡可能平衡的數據比例,把專項能力交給post training階段。在內部不同版本的post training模型上,我們發現這種方法對未來模型的可提升性有比較大的幫助,同時也能讓IQ和EQ兩部份數據在預訓練階段互相促進,使預訓練模型的潛能更大。

人均GPU數 >> 人數

最後要shout out to預訓練團隊,能沈下心來好好處理數據,研究training dynamics,紮紮實實地把所有基礎都打好。順利的scale up的過程也證明了所有基礎工作的價值。也謝謝開復老師給每個人充分的信任,團隊人數不多,但每個人都有大量的GPU資源。也進一步證明了大模型訓練人數並不關鍵(很多時候會是反向指標),人均GPU數才是最關鍵的指標。

我們相信,模型參數還可以有幾個數量級的scale up空間,訓練數據還有幾個數量級的scale up空間,大模型的智能也會有很大的scale up空間。現在才剛剛起步,scale up is all you need!