怎么學習設計和訓練一個大模型——也就是神經(jīng)網(wǎng)絡? 原創(chuàng)
“ 學習一門技術,先找一套工具和理論研究下去;千萬不要反復橫跳,什么都想學 ”
大模型作為未來重要的發(fā)展方向,很多人想學習大模型技術,但又苦于無從下手;而本公眾號前前后后也寫過一些怎么學習大模型技術的方法論;但大部分都是從應用的角度作為切入點。
但是,有一個問題就是,如果你是一個技術從業(yè)者,想學習和設計一款屬于自己的大模型,應該怎么做?
設計一個自己的大模型
大模型作為一門快速發(fā)展的新型技術,其理論與實現(xiàn)也是日新月異;因此,對我們大部分人來說很難緊跟大模型的發(fā)展趨勢,因此我們需要做的是先從一個技術點作為切入。
而最好的方向就是選擇一個合適的工具,框架或者理論;比如說PyTorch和Transformer架構。
PyTorch是一種可以實現(xiàn)神經(jīng)網(wǎng)絡的開發(fā)框架,而Transformer是實現(xiàn)一種NLP自然語言處理的神經(jīng)網(wǎng)絡模型的理論;雖然業(yè)內(nèi)還有其它多種理論和框架,但對我們這些初學者來說,我們需要的是先學習和研究其中的一種理論框架。而不是貪多嚼不爛,這個也想學,那個也想會。
所以,從個人的角度來說,后續(xù)學習大模型技術主要就以PyTorch開發(fā)框架和Transformer理論架構為主。畢竟雖然框架和理論不盡相同,但其核心思想還是相似的,因此在理解一種理論和框架的基礎之上,就可以做到一法通到萬法通。
PyTorch作為一個神經(jīng)網(wǎng)絡開發(fā)框架,其實現(xiàn)了目前常見的大部分神經(jīng)網(wǎng)絡模型算法,如嵌入,損失計算,反向傳播,優(yōu)化函數(shù),矩陣運算等等。其不但包含了自然語言處理,同時還包含了圖像處理,視頻處理等功能。
而Transformer理論,也可以被可以被稱為算法;則詳細解釋了為什么文本數(shù)據(jù)經(jīng)過一系列的編碼器和解碼器處理,就可以得到提取數(shù)據(jù)的基本特征,并且可以生成新的我們需要的數(shù)據(jù)——也就是特征重建的過程。
在編碼器和解碼器中,通過實現(xiàn)(自)注意力機制,前饋神經(jīng)網(wǎng)絡等一系列的網(wǎng)絡層;本質(zhì)上就是一系列的矩陣運算,來實現(xiàn)上面的特征提取功能;而這些都可以使用PyTorch科學計算框架來實現(xiàn)。
所以總之就是,PyTorch解決的是怎么計算的問題,而Transformer解決的是為什么這么計算的問題。
當然,除了PyTorch開發(fā)框架和Transformer架構之外;同時還有谷歌公司開發(fā)的Tensorflow框架,以及CNN——卷積神經(jīng)網(wǎng)絡和RNN——循環(huán)神經(jīng)網(wǎng)絡,以及LSTM——長短期記憶網(wǎng)絡等變種神經(jīng)網(wǎng)絡架構模型。
因此,每個對神經(jīng)網(wǎng)絡技術感興趣的愛好者,都可以選擇其中的一種或多種框架和網(wǎng)絡模型來學習神經(jīng)網(wǎng)絡的實現(xiàn)原理以及搭建一個自己的神經(jīng)網(wǎng)絡模型。
不過還是那個建議,對新學者來說,還是先不要好高騖遠;先選擇一個簡單易學的框架來學習神經(jīng)網(wǎng)絡的實現(xiàn),而不是什么都想學,什么都想會。等你能自己搭建一個神經(jīng)網(wǎng)絡的時候,你自然就知道神經(jīng)網(wǎng)絡到底解決了哪些問題,以及是怎么解決這些問題的;以及不同神經(jīng)網(wǎng)絡之間的區(qū)別和優(yōu)缺點是什么。
本文轉(zhuǎn)載自公眾號AI探索時代 作者:DFires
