為什么預訓練大模型要使用無監督學習的方式? 原創
說到預訓練大模型,首先就要先了解一下pre-training(預訓練) 和 fine-tuning(微調)。
什么是預訓練?
比如說你想做一個圖像識別的大模型,這時你需要使用某種神經網絡架構(比如Transformer)來設計一個神經網絡,然后通過某種初始化方法對神經網絡參數進行初始化。
然后,你就可以使用大量的訓練數據對模型進行訓練,也就是不斷的調整其參數;直到損失差不斷的降低,然后達到一個合適的值;這就是一個完整的訓練過程,而這個訓練完成的模型就叫做預訓練模型。
預訓練一般使用無監督學習。
那什么是微調?
所謂的微調其實和預訓練差不多,只不過預訓練是一個從未訓練過的模型,其參數值都是隨機的,而微調是在預訓練的基礎之上對部分參數進行調整。
這就類似于二八定律,你想讓大模型統計一下社會的財富分配,然后使用沒經過預訓練的模型,然后經過大量的數據進行預訓練之后發現,社會的財富分配基本符合二八原則,也就是說百分之八十的財富在百分之二十的人手上;而微調就是,在微調之前,別人就告訴你基本上屬于二八定律,你只需要在這附近統計一下即可。
微調一般使用監督學習。
為什么需要預訓練和微調?
一般情況下,很少有人會從0開始設計和訓練一個模型,原因就是技術難度大,算力要求高,而且需要大量的訓練數據集,而這些對絕大部分人來說都是一個無法跨越的坎;其次,從0開始設計和訓練一個模型屬于嚴重的資源浪費,明明已經有現存的模型可以使用,為什么還要浪費資源去重新做一個差不多的。
所以,一般做大模型研究的組織或企業就會開源一部分已經預訓練過的模型,這樣其他人就可以基于這個模型做二次訓練或微調,這樣就可以大量節約技術,算力和時間成本。
還有一個原因就是,對大模型訓練來說,必須要有足夠的訓練數據做支撐,否則就很容易形成過擬合的現象,而避免這種現象唯一的解決辦法就是增加數據量。
為什么預訓練要使用無監督學習呢?
在上面的內容中介紹了一些關于預訓練的背景,但還有一點沒有完全說清楚,預訓練還有一個原因就是,讓模型在接觸特定任務數據之前,先通過學習大量通用數據來捕獲更多廣泛有用的特征,從而提升模型在目標任務上的表現和泛化能力。
預訓練技術通過從大規模未標記數據中學習通用特征和先驗知識,減少對標記數據的依賴,加速并優化在有限數據集上的模型訓練。
模型在訓練過程中容易產生欠擬合和過擬合的現象,欠擬合就是模型訓練之后的表現能力很差,說白了就類似于啥東西都懂,但啥玩意都說不明白;而過擬合就是,對某個東西太擅長,而其它什么玩意都不會。
比如,欠擬合就是有眼睛,鼻子,并且有四肢的就是人,但事實上貓狗等很多動物都具備這些特征。而過擬合就是,有眼睛,鼻子和四肢,并且皮膚必須是黃色的才是人;但其實人類還有黑色和白色人種,這就是過擬合。
所以說預訓練為什么要使用無監督學習?
總結就兩點,一是因為數據的稀缺性,訓練出一個專業領域的大模型需要大量的數據,特別是標注數據,但這些數據的獲取困難重重;而預訓練能夠讓模型從大量未標記的數據中學習到大量特征,從而減少對標記數據的依賴,這樣就可以在有限的數據集上訓練出良好的模型。
二是因為先驗知識的問題,有些公司在做模型時,會自己設計和訓練模型;但事實上很多時候模型在具備一定的其它知識的情況下,會表現的更好。
比如,我們九年制義務教育讓我們每個人從小學就開始學習語數外,物化生等學科;這玩意就類似于預訓練,雖然你學了這些東西并不一定有用;但由于學科之間的關聯性,你有了其它科目的基礎再去學一些科目就會變得更容易。
比如說,你有語文和外語的基礎,你才能通暢的閱讀其它學科的文獻資料;你有數學基礎才能更好的去學習物理化學和生物,這就是先驗知識的問題。
而如果你上來就使用監督學習的方式,通過大量的標記數據進行訓練;那么你就相當于一開始就扎進了物理,化學,數學等其中的某一個科目,其它的科目一竅不通。
雖然你拼命學習也可以學習到很多物理,化學和數學的知識;但沒有數學的支撐,你永遠也學不好物理和化學;而且深入到其中某一個領域,而對其它領域完全不了解,那么也會嚴重限制你的眼光和視角。
所以說一般情況下,一個大模型的出現需要經過模型的設計,架構的選擇,無監督學習的預訓練和監督學習的強化訓練,才能讓大模型表現更好,而不至于過擬合或欠擬合。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/SR4LwzFlg6xREhdfzNkQsw??
