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