2023年的深度學習入門指南(1) - 從chatgpt入手
2012年,加拿大多倫多大學的Hinton教授帶領他的兩個學生Alex和Ilya一起用AlexNet撞開了深度學習的大門,從此人類走入了深度學習時代。
2015年,這個第二作者80后Ilya Sutskever參與創(chuàng)建了openai公司?,F(xiàn)在Ilya是openai的首席科學家,帶領工程師研發(fā)出了可能再次改變世界的chatgpt.
上圖中,右面的就是圖靈獎獲得者,深度學習之父Hinton大牛。中間是AlexNet的第一作者Alex, 左邊的就是Ilya Sutskever.
10多年間,從DNN,CNN,RNN為代表的第一代深度神經網絡,到以深度Q學習為代表的深度強化學習,再到以Transformer技術為基礎以BERT為開創(chuàng)的大規(guī)模預訓練模型。以及針對大規(guī)律預訓練模型所需要的人工引導和數(shù)據(jù)標注等技術支持的chatgpt。
深度學習呈現(xiàn)出理論的東西越來越多,但是應用的難度卻越來越低的變化。
深度學習的工具發(fā)展主要有以下4個階段:
- 以Caffe為代表的專用工具庫
- 以TensorFlow和PyTorch為代表的生態(tài)體系
- 以Hugging Face庫為代表的預訓練模型生態(tài)
- 以openai API為代表的封閉庫
此外,還有一些專用工具,比如推理性能優(yōu)化的AI編譯器技術如TVM,比如LLVM的MLIR等。比如支持深度學習后端的各種GPGPU技術,比如OpenGL,OpenCL,Vulkan,WebGPU。比如支持CPU上進行深度學習計算的OpenMP和XLA線性計算庫,等等。
人工智能有三要素:算法、算力和數(shù)據(jù)。
在大規(guī)模預訓練模型的時候,算法在核心上變化不大,都是堆積了很多層的Transformer模型。
但是其難點在于對于算力需求越來越龐大,而且隨著數(shù)據(jù)的增加,所生成的數(shù)據(jù)的質量的保證也是重要的問題。
所以目前的主線就有兩條:一條是如何堆積更多的算力,用更大的模型去進行突破,比如gpt3和gpt4就都是大力出奇跡的成果;另外一條是如何提升數(shù)據(jù)的準確性,并不是說模型大了就自然正確了。目前很多模型都很大,但是效果好的只有openai一家,就說明了這第二條主線的重要性。
另外,光堆算力對于更多人參與研究是不利的,如何實現(xiàn)用較小的算力,實現(xiàn)更好的效果,也是熱門的主題。
所以,這個時候的教程,如果還從PyTorch實現(xiàn)MNIST入手的話,離使用chatgpt這樣的突破性成果之間的gap就太大了。我們的教程就從chatgpt開始。
從Transformer到GPT-3: 預訓練模型的發(fā)展
大規(guī)模預訓練模型的是為了解決自然語言處理NLP問題而產生的。比如機器翻譯就是自然語言處理中的一個重要問題。
用神經網絡來處理自然語言,早在深度學習出現(xiàn)之前就有了。那時候還沒有深度學習,神經網絡還存在著梯度爆炸等困難。
1997年,循環(huán)神經網絡的重要模型,長短時記憶網絡LSTM就被研究出來了。
2014年,另外一種改進的循環(huán)神經網絡-門控循環(huán)單元LRU也被發(fā)明出來。
2014年,Ilya Sutskever作為第一作者發(fā)明了seq2seq模型,基本上解決了使用循環(huán)神經網絡進行機器翻譯的問題。
也是在2014年,為了提升RNN的效果,《Neural Machine Translation by Jointly Learning to Align and Translate》論文開始引入了注意力機制。
2017年,Google人民發(fā)現(xiàn),注意力機制并不一定要依附于循環(huán)神經網絡,只用注意力模塊自己就可以了。他們提出了只用注意力編碼器和解碼器的結構,就是著名的Transformer模型。這篇論文叫做《Attention is all you need》,不用RNN啦,Attention自己就夠用了。
2018年,Google人民研究出了Transformer模型的真正組合方法,正式提出了預訓練模型這個概念。從此又開始了一個新的時代。
同年,openai推出了第一代的gpt,論文名叫《Improving language understanding by generative pre-training》。gpt的名稱就來自generative pre-training,生成立的預訓練模型。
真正開始傳奇故事的是從gpt2開始的。openai的大神們發(fā)現(xiàn),通過預訓練一個大型語言模型,在無監(jiān)督的情況下學習多個任務,就可以在很多任務上取得另人驚訝的效果。
gpt2引入了兩個重要的東西:一個是零樣本學習,就是一個大模型只要訓練得足夠大,就可以對于很多未知的任務有很強的泛化性,這正是機器學習追求的終極夢想;另一個是微調fine-tune,就是可以站在巨人的肩膀上,基于自己的少量數(shù)據(jù)的加強訓練,就可以讓gpt2和自己獨特的業(yè)務結合起來。
這一下子就點燃了各種大模型,大家紛紛沿著這條路前進,參數(shù)不斷翻新。從BERT到gpt2這些模型也都是開源的,這時誕生了Hugging face庫,將各種預訓練模型集成在一個框架內。
gpt2的論文叫做《Language Models are Unsupervised Multitask Learners》,多任務同時也引發(fā)多模態(tài)的支持,除了文本之外,各大模型對于代碼、圖像之類的也不放過。這一傳統(tǒng)也沿用至今。
微調雖然已經相對容易了,但是openai人民仍不滿足。他們認為,人類只用很少的幾個樣例就能學會的東西,為什么微調需要提供大量的數(shù)據(jù)才可以做到。最終他們發(fā)現(xiàn),gpt2雖然可以支持多任務學習,但是還需要很多微調的原因是,模型還不夠大。于是他們訓練了1750億參數(shù)的GPT-3.
GPT-3開始,openai決定不開源了。再想像用gpt2一樣通過hugging face庫調用沒辦法了,從此進入了編程的第三范式,只能調用openai的API。
不過,正如gpt3的論文名字《Language Models are Few-Shot Learners》字面所說的,因為gpt3是一個支持few-shot,也就是少樣本的學習。所以,不用微調,只用少量的提示就可以讓gpt3學習。這就是在現(xiàn)在發(fā)揮光大形成一個學科的prompt engineer的“提示工程”或者叫“引導工程”。
目前有一種鄙視鏈,就是覺得用PyTorch等庫自己搭建才是技術,微調不是技術,引導工程更不是技術。我不知道他們是否讀過論文原文。
深度學習從一開始就沒追求成功理論的嚴謹性,而是靠易用性流行起來的。
可解釋性當然是好的,我們也要學習Anthropic等機構的成果。但是這跟我們搞好引導工程和微調并不矛盾。
無監(jiān)督預訓練模型的不足與chatgpt的誕生
- Attention is all you need
- Improving language understanding by generative pre-training
- Language Models are Unsupervised Multitask Learners
- Language Models are Few-Shot Learners
上面一節(jié)我們看到,這上面4句話是Transformer, gpt, gpt2和gpt3的論文的標題名。他們連在一起就是用無監(jiān)督的大規(guī)模預訓練的模型來實現(xiàn)各種任務的總綱。
總結起來,就是大力出奇跡。當模型足夠大,就能涌現(xiàn)出少樣本學習的強大能力。
這在GPT-3得到了很好的驗證。但是,最終火起來的是chatgpt,而非強調few-shot的GPT3。它缺少什么呢?我們看一個論文題目就知道了:《Training language models to follow instructions with human feedback》。
沒錯,無監(jiān)督的大規(guī)模預訓練模型還不行,還需要人類的反饋。這也是chatgpt現(xiàn)目前為止還領先不少參數(shù)更多的大模型的原因。比如13億參數(shù)的chatgpt的效果就可以強于1750億參數(shù)的gpt3.
像gpt3這么強大的模型,哪怕是像更強的gpt4,雖然有較強的少樣本學習的能力,但是它們都會生成一些編造的事實,生成一些有偏見的事實,甚至是不知所云的或者是有害的信息。
比如,有篇叫做《On the Dangers of Stochastic Parrots: Can Language Models be too Big?》題目就直接質疑,語言模型不能做太大。否則有倫理問題、法律問題、社會公平問題,甚至引發(fā)大量碳排放影響環(huán)境等。
許多研究人員還制作了有偏見的或者有害的數(shù)據(jù)集來供模型評估自己的效果,比如Realtoxicityprompts數(shù)據(jù)集。
而如何通過人類反饋來改進語言模型,也并不是openai的原創(chuàng),而是借用了強化學習的思想。這種技術被稱為reinforcement learning from human feedback - RLHF,人類反饋強化學習。
RLHF這種技術最初是用在玩游戲的強化學習中。如果用深度強化學習做過Atari游戲的同學都會知道,很多游戲太復雜了,想讓算法找到成功的路徑需要花費大量時間,甚至經常退化找不到。這時候,如果有玩通關過的人來指導一下,就會節(jié)省大量的試錯時間。
但是這也是個技術活,如果讓哪一種情況下人都指導,那人也受不了。所以要將人類的反饋數(shù)據(jù)也加工成模型。后來,這種技術在自然語言處理中也遍地開花。
經過人類反饋強化學習的方法進行微調之后,chatgpt竟然驚奇地發(fā)現(xiàn),它對于代碼的總結能力、對回答代碼問題的能力和支持多種編程語言的能力比gpt3有顯著的提高。這個結果跨界打擊了Codex等專門為編程語言研發(fā)的模型。
不過,不管是論文還是實測結果都證明了,chatgpt仍然會犯簡單低級的錯誤,需要在理論和實踐上都進一步的改進。
chatgpt并不是全部
從目前看來,chatgpt和gpt4是領先的。但是,其它的方向我們也需要保持關注和敏感度。比如更小算力的方向是否可能有突破,或者是下一步的線索是否已經在悄悄地成長中。
開源的解決方案仍然是一個值得關注的方向。 抱openai的大腿并且搞好引志工程是目前是最現(xiàn)實的解決方案,但是我們永遠不能忽視開源的力量。哪怕開源的走錯了方向,這個錯誤也更容易被學習到。
以Meta AI推出的LLaMA為例,他們的關注點不是人類反饋強化學習,而是堅持由《Scaling laws for neural language models》一文提出的縮放定律:
- 語言模型的交叉熵損失隨著模型大小、數(shù)據(jù)集大小和訓練計算量呈冪律關系,其中一些趨勢跨越了七個數(shù)量級以上。
- 網絡的其他架構細節(jié),如寬度或深度,在較大的范圍內對性能影響很小。
也就是說,沿著縮放定律的方向,few-shot的能力就還會進一步提升。這一過程,只與數(shù)據(jù)量、計算量和參數(shù)量三者有關。
而據(jù)Deepmind的一項研究《Training Compute-Optimal Large Language Models》,模型和訓練數(shù)據(jù)量等比例縮放才會獲取更好的訓練效果。現(xiàn)有的大模型參數(shù)加上去了,但是數(shù)據(jù)量沒有跟上,所以浪費了資源。
所以LLaMA也嘗試依據(jù)Deepmind的這項研究,通過增加訓練數(shù)據(jù)來對較小的模型進行訓練,可以得到比更大模型更好的效果。
這里不得不再八卦一下,縮放定律這篇論文,恰恰是也是來自研究gpt3的openai團隊。團隊的leader是Dario Amodei。文章來源:http://www.zghlxwxcb.cn/news/detail-429978.html
在gpt3面臨選擇的關頭,Dario Amodei對于gpt3這樣的黑盒也很不滿,他認為能夠解釋清楚黑盒比做更大的gpt4更重要,于是他帶領很多openai同事創(chuàng)建了Anthropic。無論最終結果如何,Anthropic所代表的思路是值得我們一直關注的。文章來源地址http://www.zghlxwxcb.cn/news/detail-429978.html
小結
- 從編程實現(xiàn)全部模型,到使用預訓練模型,到調用API微調,再到引導工程,每一步都是技術的發(fā)展,每一層做好都不容易。
- 更大的模型目前仍然是最有希望的方向。更大的模型和更多的數(shù)據(jù)可能會涌現(xiàn)出更強的微調和少樣本零樣本能力。
- 2023年的深度學習入門指南(2) - 給openai API寫前端
- 2023年的深度學習入門指南(3) - 前端同學如何進行chatgpt開發(fā)
- 2023年的深度學習入門指南(4) - 為不同的場景寫專用的前端
- 2023年的深度學習入門指南(5) - 動手寫第一個語言模型
- 2023年的深度學習入門指南(6) - 在你的電腦上運行大模型
- 2023年的深度學習入門指南(7) - HuggingFace Transformers庫
- 2023年的深度學習入門指南(8) - 剪枝和量化
- 2023年的深度學習入門指南(9) - SIMD和通用GPU編程
- 2023年的深度學習入門指南(10) - CUDA編程基礎
- 2023年的深度學習入門指南(11) - Triton
- 2023年的深度學習入門指南(12) - PEFT與LoRA
- 2023年的深度學習入門指南(13) - 寫后端
- 2023年的深度學習入門指南(14) - 不能只關注模型代碼
- 2023年的深度學習入門指南(15) - 大模型的幻覺
- 2023年的深度學習入門指南(16) - JAX和TPU加速
- 2023年的深度學習入門指南(17) - 深度學習的硬件加速技術
- 2023年的深度學習入門指南(18) - 將LLaMA2跑起來
- 2023年的深度學習入門指南(19) - LLaMA 2源碼解析
- 2023年的深度學習入門指南(20) - LLaMA 2模型解析
- 2023年的深度學習入門指南(21) - 百川大模型
- 2023年的深度學習入門指南(22) - 百川大模型13B的運行及量化
- 2023年的深度學習入門指南(23) - ChatGLM2
- 2023年的深度學習入門指南(24) - 處理音頻的大模型 OpenAI Whisper
- 2023年的深度學習入門指南(25) - 通義千問7b
- 2023年的深度學習入門指南(26) - 在自己電腦上運行通義千問7b模型
到了這里,關于2023年的深度學習入門指南(1) - 從chatgpt入手的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!