久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用人話詳解語言大模型

 SNSJXQ 2023-05-16 發(fā)布于江蘇

作者:cheaterlin,,CSIG后臺開發(fā)工程師| 導語“AI的iphone時刻到來了”,。非算法崗位的研發(fā)同學迫學習AI,產品崗位的同學希望了解AI,。但是,,很多自媒體文章要么太嚴謹、科學,,讓非科班出身的同學讀不懂,;要么,寫成了科幻文章,,很多結論都沒有充分的邏輯支撐,,是'滑坡推理’的產物。這篇文章從底層講起,,卻不引入太多概念,,特別是數學概念,讓所有人都能對大模型的核心概念,、核心問題建立認知,。文章末尾也為需要嚴肅全面地學習深度學習的人給出了建議。 本來為了另一件事情,,我被約了個稿,。目標稿件有很多刪改。這里干脆就把完整版放出來,。

關于以chatGPT為代表的LLM,,介紹它的B站視頻、文章,,已經很多,。算法部分,約定俗成地,,還是先來一段慣口,。大家雖然看不懂,,這里還是寫一下:當前我們說的LLM,一般代指以chatGPT為代表的基于Generative Pre-trained Transformer架構的自然語言處理神經網絡模型,。顧名思義,,它是個以預訓練技術為核心的模型,是個生成模型,。同時它是Transformer這個編碼-解碼模型的解碼部分,。

內容圖片

不管你能不能看懂,它就是這張圖的右邊部分,。到了這里,,非基礎研究、應用研究的同學就開始在聽天書了,。讀這篇文章的這一部份,,大家是為了’學到'知識,而不是為了’被懂算法的同學咬文嚼字扣細節(jié)給自己聽,,被秀一臉,,留下自己一臉茫然'。大家的目標是'學習’為首,,'準確’為輔,。那我就用不嗑細節(jié)的'人話’跟大家講一講,什么是自然語言處理大模型,。雖然,,這些內容就僅僅是’畢業(yè)生面試應用研究崗位必須完全答對'的檔次,但是,,'知之為知之,,不知為不知,是知也’,,大家如果不懂,,是應該看一看的。

1 編解碼與表示學習

什么是自編碼器(autoencoder,,encoder-decoder model),?通俗地說,用拍攝設備,,錄制視頻,錄制成了mp4文件,,就是采集并且encode,;你的手機視頻播放器播放這個視頻,就是decode視頻并且播放,。做encode-decode的模型,,就是編碼-解碼模型。很明顯,編碼模型和解碼模型是兩個模型,,但是,,他們是配對使用的。你不能編碼出一個.avi文件,,然后用只支持.mp4的解碼器去解碼,。

在深度學習領域里,下面這個就是最簡單的編碼-解碼模型示意圖,。f函數是編碼器,,把輸入x變成某個叫做h的東西,g是解碼函數,,把編碼出來的東西,,解碼成輸出r。

內容圖片

那么,,最簡單的編碼器,,就是什么都不干:f(x)=x,h=x,,r=g(f(x))=h,。輸入'Tom chase Jerry’,輸出就是'Tom chase Jerry’,。顯然,這樣的字編碼器不需要訓練,,并且,,也沒有任何用處。

如果,,輸入'Tom chase Jerry’,,輸出是'湯姆追逐杰瑞’,,那么這個自編碼器就完成了機器翻譯的任務,。我們人類可以做翻譯,實際流程上,,也跟這個差不多。那么,,我們人類是怎么做到的呢?我們并不是以'做翻譯’為唯一的目標去學習語言的,我們會學習'單詞’,、'語法’、'語言所表達的常識’這些語言之下最基礎的'特征’的'表示’,。當我們學會了被表達的事物和它在不同語言中的表示之后,,我們就能做翻譯這件事情了,。我們仔細審視一下這個過程,,我們至少做了兩件事情:

1 ) 學會被各種語言所表示的'東西’,這里我們稱之為世界知識 (world knowledge),,它包括事實性知識 (factual knowledge) 和常識 (commonsense),。其中包括,學會至少兩門語言里表達世界知識的單詞和語法。

2)學會按別人的要求去執(zhí)行翻譯這個任務,。

那么,,這兩件事情的第一件,,就是GPT的第二個單詞,,Pre-train(預訓練)。我們就是要去學到'Tom chase Jerry’這句話和其他無數句話在被拆解成世界性知識之后的'表示’,。

Transformer就是一個專門用于自然語言處理的編碼-解碼器架構,。編碼器-解碼器可以有很多不同的架構細節(jié),就能得到不同的自編碼架構,,Transformer是此刻看起來效果最好的,,能很好地學到自然語言背后的特征,并且有足夠大的模型容量。所謂模型容量,,是指,,有一些模型參數過多,就反而學不到特征,,或者無法訓練了,,無法用于表示特別復雜的東西,。

2 GPT

GPT全稱Generative Pre-trained Transformer,,前面講了編解碼,,算是講了一點點Transformer,,也講了預訓練、Pre-trained,。那么,,Generative從何講起,?

我接著說人話,。前面講到了,,編碼器-解碼器是兩個不同的模型,,就像你看視頻,,你的手機上并不需要視頻錄制、編輯軟件,,只需要一個解碼-播放器一樣,。訓練兩個模型太麻煩,我們希望就圍繞一個模型做研究,做訓練,。我們能不能不做編碼,就圍繞解碼模型來達到一些目的呢,?答案當然是可以的,。打個不嚴謹的比方。我現在想找人幫我畫一幅肖像畫,。其實我并不懂怎么畫畫,。于是,我請人給我畫,。我并不能從畫工技藝,、藝術審美方面去評判他畫得好不好。但是,,我是有能力去判斷我請的人畫出來的畫是不是令我滿意的,。此時,我就是一個decode-only的模型,。

你會說,,“你這個decode-only的模型必須要有一個懂encode的畫師才能工作啊“。是的,,我不懂畫畫,。確實需要一個畫師。但是,,你記得嗎,,OpenAI訓練GPT3的模型,就是給它海量的數據,,讓它去訓練,。那么,畫師不教導我繪畫技巧,,只是不停的給我畫肖像,,并且,給我看肖像是否滿意,,我指出哪些地方不滿意,,他做出修改。這個事情干了一千萬次,,我是不是至少能學到'當給我一副沒畫好的我的肖像畫,,我知道應該怎么接著畫下一筆',?我不是從拆解好的理論體系里去學習的,我并不能叫出各種會畫技法的名字,,但是,,我就是會做上面這件事情了。

相當于,,我聽到“GPT是一個預訓練?!保揖椭老乱粋€字一定是“型”字一樣,。而因為我只擅長接著前面做好的事情完成接下來的事情,,所以,我會'生成’這個工作方式,,同時,,我也只會'生成’這個工作方式。這就是Generative的意思,。

總結一下,,Generative是被訓練出來的模型的工作的方式,Transformer是這個模型的架構,,Pre-trained是形容Transformer的,,就是說訓練這個模型,預訓練是不可或缺的核心步驟,。

3 巨量參數

有一個很重要的點,被訓練完成的我,,是如何知道沒畫完的肖像畫的下一筆是應該怎么畫的,?就相當于你聽到“今天天氣很”之后,你是怎么知道下一個詞是什么的,?顯然,,你是靠猜測的。什么東西來支撐你的猜測,?是你被訓練了一百萬次的經驗,。這些經驗構成了什么?這些經驗被你潛意識地總結成了一些規(guī)律,。有一些規(guī)律確定性很高,,有一些規(guī)律確定性很低?!敖裉焯鞖夂堋焙竺娼拥淖?,確定性很低,“GPT是一個預訓練?!焙竺娼拥淖执_定性很高,。那么,,你實際上就是學到了一個概率模型,這個概率模型其實是無數個場景的概率分布組合而成的概率模型,。預測“今天天氣很”的下一個詞,,是一個概率分布?!癎PT是一個預訓練?!钡南乱粋€詞是另一個概率分布。所以,,從頭學習機器學習,、深度學習,就會知道,,所有機器學習,、深度學習模型都是概率模型,統計學是核心工具,。

GPT3的paper講,,OpenAI做的GPT3有1750億參數。不管paper怎么說,,實際上是如何做到的,。你只是自己想象一下,想要記住足夠全面的'世界知識’,,是不是至少要有足夠大的'模型體積(模型容量)',,即足夠多的參數?更深入的研究還在繼續(xù)進行,,此刻,,按照GPT3的paper來說,當參數量達到1750億的時候,,模型就能記住這個世界的'世界知識’所需要的所有'特征’的'表示’了,。每個參數用16位的浮點數保存,體積是320GBytes,。這個世界的'世界知識’,,被這320G的數據表示了。

我們在對話聊天的時候,,如果說了一些自己覺得是常識,,對方卻不懂的時候,是不是對話就較難進行下去了,?所以,,為什么我們的模型需要這么多參數?因為它需要'什么都懂’,。如果我說我用32M規(guī)模的數據就記住了這個世界的常識,,你是不是會覺得'這顯然不可能’,?

4 GPT3不等于chatGPT

前面已經講了Generative、Pre-trained,、Transformer這些概念,。我們接著講chatGPT。首先,,GPT3不等于chatGPT,,GPT3這個預訓練模型,是chatGPT的基礎,?;仡櫸覀冏铋_始講的'人如何學會翻譯’至少需要兩個步驟,第一步就是訓練一個GPT3的預訓練模型,。有了這個模型之后,,我們還要接著做一些訓練,才能完成chatGPT,。

我們首先來回顧一下GPT1,、GPT2。

GPT1的paper名字叫做,,Improving Language Understanding by Generative Pre-Training,,通過生成式預訓練提升模型對語言的理解能力,這就是我們前面講過的東西,。但是,,它還沒達到很好的效果。我們想在decoder-only的模型里學到'用語言呈現的世界知識’的'深層表示',,初步證明這個方向有前途,。

GPT2的paper名字叫做,Language Models are Unsupervised Multitask Learners,。在這篇文章里,,找到了讓GPT1這個'思想方法’達到很好的效果的技術手段,,通過自監(jiān)督學習,。怎么個自監(jiān)督法呢?就是我們手里有很多書籍,、文章,,我們通過給模型書籍的前n個字兒,讓它猜測第n+1個字兒是什么,,我們手里有正確的第n+1個字兒,,讓模型去不斷糾正自己。模型為了達到更準確猜中第n+1個字兒的目標,,就被迫'學到’了潛在的'世界知識’的表示,。就像我們學到了語言的語法,,記住了單詞,掌握了世界的常識,。

實際上,,我們交給模型的任務,都是'猜下一個詞’,。但是計算'56+21=’也是猜下一個詞,。所以,又可以把猜下一個詞分解為很多種猜詞任務,,數學計算就是其中一種,。最后,證明了GPT2效果還不錯,。多說一句,,上面這么搞,怎么就是自監(jiān)督了呢,?是否是'有監(jiān)督’學習,,本身這個概念比較模糊,并不是一個科學的定義,,只是大家習慣這么叫而已,。我們約定俗成,把'訓練數據是經過精巧地設計,,并且準備過程對人力成本較高’的訓練,,叫做有監(jiān)督訓練,否則就是無監(jiān)督,。我們只是把前人努力寫的書做了一個調整給到模型,,按照這個約定,應該屬于無監(jiān)督學習,。但是,,好像,我們又其實是在用人類努力的成果在訓練它,。所以,,有人就開始稱這種情況為'自監(jiān)督學習’。

接著,,你就會想,,深度學習是一門科學啊,怎么能對概念的定義搞得這么模糊不嚴謹,?對,,你說得沒錯,深度學習,,在玩數學的人眼里,,就是充滿了不嚴謹,,處在鄙視鏈的底端。但是,,你擋不住深度學習應用的效果好呀,。深度學習就是這么一系列'不嚴謹’,充滿了'我不知道為什么,,但是這么做效果就好’的方法,。科學家們在努力地解釋它為什么效果好,,但是,,這些研究遠遠追不上,找到'效果更好,,但是并不理解為什么效果好’的方法的步伐,。對你自己的認知亦是如此,你有自我認知,,那么,,你的自我認知是怎么來的?“我是誰,,我從哪里來,,我要到哪里去?”

GPT3的paper名字叫做,,Language Models are Few-Shot Learners,。意思就是,在GPT2的思路的指導下,,我們通過把參數增加到1750億,,真地學到了'世界知識’!學到了這些潛在的'表示/特征’之后,,我們只需要再讓模型學一個任務的少量幾個case,,模型就能學進一步學到我們給的幾個case里的潛在的'特征',即這幾個case所表達的規(guī)律和邏輯,。

但是,,GPT3掌握了知識,但是,,它還不會干活呀,。比如,,你給它輸入“給我寫一段簡介”,,模型理解你確實說了“給我寫一段簡介”,但是,,它此刻可以生成很多東西,。比如生成一個“要簡介限制在120個字以內”,。它是個生成模型,把你說的話續(xù)寫下去,,也是一種生成?。∷?,我們還得教一個理解了我們的話模型,,按照我們想要的方式去生成結果。就像,,我們在進行一場對話,。所以,就是chatGPT,,chat+GPT,。我們要進行聊天,本質上,,就是讓模型'要能聽懂我們的指令’,。

所以,OpenAI接著又有一篇重磅論文Training language models to follow instructions with human feedback,,它在OpenAI的官網上,,是另一個名字Aligning language models to follow instructions。顧名思義,,就是要通過一些'問題-回答’對的訓練數據,,讓模型能在收到“給我寫一段簡介”這樣的指令性的輸入的時候,真地去按照指令的要求去生成接下來的東西,。OpenAI的標題里出現了一個詞'Alignling(對齊)',,你可以不管它。但是,,理解了這個詞,,你才理解了'制定對齊/指令微調’的核心技術。有興趣,,你可以接著看這個自然段,,也可以不看,直接跳到下下一個自然段,。

'指令對齊’,,就讓掌握了知識的模型能按照我們想要的方式去生成更多的詞了。達到這個效果的方法,,講起來,,很硬核。為了說人話,我就打個比方?,F在,,我們有一個房間,里面有幾百本書就像垃圾一樣堆砌在一起,。這就是預訓練已經把隱藏特征學到了,。我們應該怎么去整理這些書籍呢?這個問題,,取決于,,我們后續(xù)要如何使用這些書籍。我們可以按門類,,去排列書籍,,每一類書籍一個書架。

也可以按照書名去排列書籍,,所有書籍分別根據書名被放在按A-Z排列的的書架里,。所以,對齊,,就是根據我們的目的,,去整理模型學到了的知識。那么,,為什么我們不用整理,、重構之類的詞,而用對齊呢,?因為,,我們知道模型學到了知識,但是,,我們能看到這些表示,,就是1750億個參數,但是,,人類看不懂它,。就像,人類能看到自己的腦袋,,但是腦袋里的神經元是如何聯合在一起工作的,,看不懂。

更具體的,,'1+1=2’這個知識,,你知道它存儲在你大腦里的具體哪個神經元上么?你當然不能,。所以,,我們沒有細粒度的手段去整理書籍。有一個比較粗力度的手段,就是:按照我的需求,,大概地把一些數據強行抓住首尾兩本書,把它們壓齊,。你整理書籍,,可以一本一本放。但是你沒法去拿其中一本的時候,,你當然可以從一對兒書的兩端,,用力壓,被按照我們想要的方式擠壓之后,,書自己就變得更整齊了,,對齊到了我們想要的結構。我再打個比方,,社會共識,、常識,本身也是'對齊’得來的,。

'婚姻應該是自由戀愛的結果’,,這個常識,不是從來如此的,。是理性主義崛起之后,,緊接著浪漫主義在1900年左右崛起,在20世紀才出現的,。浪漫主義借由'羅密歐與朱麗葉’之類的文藝作品廣泛傳播,、得到認可,進而才把我們的常識'對齊’成了這么一個結果,。說得更遠一點,,習慣了中國文化的人在美國必然會被'文化沖突’所困擾,也是因為,,中國和美國其實都通過媒體把自己的常識對齊成了不同的'形狀’,。'對齊’無時無刻不在這個世界里發(fā)生。

實際上,,模型每次只能生成一個詞兒,,那么,把問題和回答都當成字符串連接起來,,結構是:輸入[問題里所有的詞][回答的前N個詞兒],,生成回答的第N+1個詞兒。如果進行第二輪對話,。輸入就變成了:輸入[第一個問題里所有的詞][第一個回答的所有詞][第二個問題的所有詞][第二個問題的回答的前N個詞],,輸出[第二個回答的第N+1個詞]。至于模型如何知道哪一段是問題,哪一段是問題,,這里不展開描述,。

實際上,chatGPT的訓練過程,,可以看下面這張圖,,我不做解釋,能不能看懂,,隨緣(Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.[1]

內容圖片

至此,,你知道了GPT3是chatGPT這個'技驚四座’的模型的基礎。

5 RLHF-強化學習

我們都知道,,chatGPT至少經歷了預訓練,、指令對齊、你可以理解為,,一個大學生上一門課,,指令對齊就是老師在課堂上給我們上課。但是,,我們學習不能總是耗著一個老師一直給我們講啊,,成本太高了。就是說,,積累大量指令對齊的QA(問題-回答)訓練數據,,成本很高。后續(xù)更大量的學習,,還得學生自己在脫離老師的強幫助,,自行學習。一則效果更好,,二則成本更低,。

所以,我們用完成了指令對齊的模型,,針對大量問題作出回答,。并且,每個問題都給出10個回答,。由人類去標注,,所有回答里,哪些回答更好,。用這個標注的QA對去接著'對齊’模型,,讓模型把知識對齊到更符合我們的要求。這個時候,,人類需要做的,,就僅僅是提問題+標注,,之前是要給出問題且給出答案。成本降低了一些,,速度也變快了一些,。這里,強化學習實際上是訓練一個獎勵模型(reward model)作為新的老師,,來對模型的回答進行'批改’,,讓模型愈發(fā)把知識'對齊’到我們想要的樣子。

上面簡單的強化學習講解,,其實有一個很嚴重的問題,。如果對于同一個Q,,老師一會兒說A1好,,一會兒說A2好,就變成了學生的腦子在來回拉扯,。所以,,強化學習,在細節(jié)上,,還有更多不同的細節(jié),。為了講人話,我這里略過這些細節(jié),。

6 LoRA與instruction fine-tuning

大模型太大,,訓練成本太高,人們總在尋找更低成本近似的方法,。最近LoRA也是跟CV(計算機圖像)領域的Stable Diffusion一起大火,。這里也用人話講一下LoRA fine-tuning(不講Stable Diffusion)。為了講清楚,,會有一點點不講人話的時候,。

LoRA paper的標題是LoRA: Low-Rank Adaptation of Large Language Models。其實,,這個方法,,屬于'遷移學習’這個領域。LoRA達到的效果是:在有一個已經訓練好的大模型之后,,再訓練一個依賴于大模型的小模型,,組合在一起工作,達到用較低的成本實現對大模型的微調,。結果稍稍裂化于對大模型進行了微調,,但是微調成本更低。低在哪兒呢,?接下來就得先講明白LoRA是如何工作的,。

什么是low rank,?低排名?low rank是個數學概念,,rank是指矩陣的秩,,low rank Adaptation就是說,用秩較低的矩陣替代之前秩較高的矩陣,。我還是稍微說一下什么是矩陣的秩,,因為會被多次用到。

我們有一個3x4的矩陣如下:

[1,,2,,3,4]

[2,,4,,6,8]

[3,,6,,8,12]

顯然,,要存儲它,,我們需要用到12個數字。但是,,這個我特別構造的矩陣是有一個特點的,,第二行可以由[1,2,,3,,4]乘以2得到,第三行可以由[1,,2,,3,4]乘以3得到,。那么,,實際上,我就可以用[1,,2,,3,4]里的4個數字,,加上1,、2、3這3個系數,,總共7個數字就可以表示這個矩陣,。我需要的數字數量從12個降低到了7個,。原始矩陣叫做W,分解之后變成了需要的數字更少的兩個矩陣B和A,,公式就是W=B乘以A,,記為W=BA。

在我這個例子中,,是無損失地進行了分解,。數學上,有辦法進行精度有損的分解,,W可以轉化為更少的數字構成B和A,。這就是說人話版本的矩陣的秩分解。

這里,,我們補充介紹一下深度網絡里的參數是怎么組織的:

內容圖片

在這個圖中,,我們看到了一個網狀結構。其中'O單向箭頭指向P’的意思就是'O參與計算,,得到P’,。我們就看到了z1,、z2,、z3很多層,z1這一層是一個W1矩陣和B1這個偏置向量,。z1,、z2、z3,,越往右,,就越深,就是深度網絡,。所謂參數,,就是這些密密麻麻、層層疊疊的計算網絡里的數字,。這個圖只是一個示意,,真實的網絡結構,各有各的不同,。以及,,必須在每個網絡節(jié)點上選擇合適的激活函數,后面不會用到,,這里不做展開,。好了,我們接著講LoRA,。

理解了低秩分解,,LoRA的paper的意思就是:

假設我們的模型深度為l(layer的首字母),,每一層的參數為矩陣W。并且,,我們之前就已經訓練好了一個模型,,這個模型的參數凍結住,永遠不改變了,,記為W0,。那么,我們訓練模型就是在不斷改變下面這個公式的ΔW這個模型參數變更的增量,。

內容圖片

這個增量可以通過低秩分解,,分解為:

內容圖片

訓練主要過程依然和其他所有fine-tuning一樣,只是多了一個細節(jié):把訓練后的參數變更保存到了BA中,,而不是直接更新到W0里去,。

這里,稍微講解一下訓練一個Transformer模型需要的顯存量,。根據這篇文章的計算,,訓練每2個字節(jié)大小個16位浮點數表示的參數,需要20個字節(jié)的顯存,。那么,,常見的70億參數的模型,大小是14GBytes,,需要的顯存至少是140GBytes,,如果要提高并行度,就需要更多顯存,。當前比較強的A100顯卡,,單卡有40G顯存和80G顯存兩個版本,單卡無法進行訓練,,必須要多卡同時進行,。因為如果顯存不夠的話,是根本無法開始訓練的,。顯存容量,,決定了模型能不能開始訓練。GPU算力,,決定了要訓練多久,。

那么,我們可以得到以下幾個結論:

1)模型訓練好之后,,做線上推理服務,,計算量,并沒有減少,,反而可能有所微微增加,。

2)低秩矩陣的大小是可以調整的,,可以是非常小。低秩矩陣越小,,丟失的精度越多,。

3)訓練過程,兩個核心成本是顯存使用和GPU運算量,。LoRA方法下,,低秩矩陣BA是可訓練參數。顯存的使用,,等于1倍模型參數的體積加上10倍可訓練參數的體積,。GPU計算量可以根據可訓練參數的數量決定,如果我們把BA設定得比較小,,訓練量可以比全參數模型訓練降低成千上萬倍,。

4)微調后的模型和原始模型的參數不能相差過大,不然用一個低秩矩陣BA所替代的ΔW會丟失大量精度,,推理效果特別差,。

5)LoRA是一種模型訓練的思想方法。它可以適配到很多類型的模型上,。GPT模型,,或者Stable Diffusion的模型,都可以,。訓練時節(jié)省的顯存量,,要根據具體模型結構來計算,。

這些特性,,說一個更具體的case。stable diffusion是一個開源的結合了Transformer的文字生成圖片的CV(計算機視覺)模型,。它的參數量是1.2億多,,大小469M。假設,,如果沒有LoRA的方法,,可能就需要至少4G的顯存。家庭游戲顯卡顯存一般在8G左右,,因為顯存不夠,,訓練的并行度很低,即使是民用GPU也可能在閑等,,在同一張顯卡上,,都需要更長的訓練時間。LoRA讓顯存需求降低到1G左右,,并行度提高了8倍,。訓練的總結算量還降低上百倍,。訓練成本大大降低。,。同時,,訓練出來的LoRA小模型,體積就32M左右,,社區(qū)里就流行起了把自己fine-tune出來的stable diffusion下的LoRA模型互相傳播,。

回顧一下LoRA與GPT,我們可以說,,LoRA方式的fine tuning的對于GPT的價值,,并不太大。只有在很小的場景,,有LoRA的發(fā)揮空間,。

內容圖片

現在,你應該能理解LoRA論文原文中的這種圖了,。注意,,這里,LoRA是對原深度神經網絡的每一層都設計了對應BA矩陣,。

綜上,,如果我們手里已經有一個強大的模型,我們僅僅像微調它的表現,,而不是想要教會它很多新的東西,,使用LoRA方法,成本是很低的,。比如,,文生圖的時候,我們不調整生成出來的圖片的框架,、構圖,,我們只想調整圖片的風格(真實系、漫畫風),?;蛘撸覀冏屢粋€強大的模型去做一些簡單的任務,,把簡單的任務做得特別好,,也可以用LoRA。

7 常見的開源類GPT3模型

Meta開源的LLaMA是現在市面上預訓練做得最好的開源的架構類似GPT3的模型,。它提供了70億,、130億、650億3個參數規(guī)格的模型。特別說明一下,,它只做了預訓練,。它支持多種語言。英文效果最佳,,中文和其他語言的效果一樣,,比英語差一些。

Vicuna-7b是用70k指令對LLaMA進行了指令微調,,它微調的70億參數的LLaMA版本,。是當前開源的做完了指令微調的模型里,效果最好的,。

chatglm-6b是清華大學清華認知工程實驗室基于自己設計的預訓練模型架構General Language Model微調而來的聊天模型,。參數規(guī)模是62億。GLM模型是基于Transformer架構,,更像Transformer的Encoder部份-BERT,。預訓練用了1T token的中英文語料。沒說具體用了多少語料進行指令微調,。中文聊天的效果,,是開源模型里最好的。但是GLM模型架構天花板有沒有GPT3那么高,,需要有人去研究,,清華大學沒有對外公開。glm預訓練模型有一個130億的版本,,沒有對外開源,。

bloom-176b是參數最多的開源預訓練模型,模型架構和GPT3很相似,,是學術界很多人一起竄起來的一個預訓練模型,。它只做了預訓練,做QA任務,,效果較差,。

alpaca-lora-7b是依附在LLaMA-7b上的模型。這個模型效果一般,,但是它開源了52k條挺有價值的指令微調訓練數據,它是用了一個用chatGPT作為老師來生成更多訓練數據的方法(paper的名字是:SELF-INSTRUCT: Aligning Language Model with Self Generated Instructions)來訓練的模型,。同時,,alpaca是一個LoRA方法下的模型。self-instruct這個思路,,非常有趣,,其實大家都會自然而然有這種想法:既然有了chatGPT這個效果特別好的模型,為什么我不直接只搜集指令問題,然后用chatGPT給我生成指令QA里的Answer,,并且生成更多類似的QA對呢,?這個想法是很好的,我們也在用,。但是,,文章里也說了,會出現'對某些垂直領域的問題過擬合,,對其他領域的問題欠擬合’的問題,,這里不展開細節(jié)。

8 建議入門路徑

計算機大二課程:

https://www.bilibili.com/video/BV1JE411w7Ub 吳恩達<斯坦福 CS229 機器學習>課程

https://www.bilibili.com/video/BV1SL411U7SF <斯坦福 CS224n 自然語言處理>課程

https://www.bilibili.com/video/BV12341167kL <伯克利 CS285 | 深度強化學習>課程

新手友好的入門路徑:李宏毅機器學習系列Hung-yi Lee,。

對截止2017年的理論研究最全面,、深入的總結:

大概學懂前面的內容之后,看深度學習二號人物bengio寫的書,,大家親切地叫它'花書’,。

深度學習 (豆瓣)

內容圖片

PyTorch的API極度友好,可以通過下面這本書來數學,。如果從這本書上手,,你會不知道自己寫的簡短的代碼在干什么。此書由亞馬遜前首席科學家李沐所著,,寫得不錯,。這本書有很多個版本,最新的版本是2023年出的,,才是以PyTorch為例子,。

動手學深度學習(PyTorch版) (豆瓣)

內容圖片

如果過程中有很多概念理解半天都理解不了,特別是統計學的概念,,在碰到的時候,,就可以去B站找解釋得比較好的視頻,我隨便列舉一下:

十分鐘搞定最大似然估計 https://www.bilibili.com/video/BV1Hb4y1m7rE

【概率論】貝葉斯公式與后驗概率 https://www.bilibili.com/video/BV1mY411h7ps

極大似然估計/最大后驗估計—通過拋硬幣例子理解 https://www.bilibili.com/video/BV1GZ4y1m7gv

「一個模型」教你搞定貝葉斯和全概率公式 https://www.bilibili.com/video/BV1a4411B7B4

“損失函數”是如何設計出來的,?直觀理解“最小二乘法”和“極大似然估計法” https://www.bilibili.com/video/BV1Y64y1Q7hi/

“交叉熵”如何做損失函數,?打包理解“信息量”、“比特”,、“熵”,、“KL散度”、“交叉熵”

https://www.bilibili.com/video/BV15V411W7VB

重新理解線性回歸 - 2 - 廣義線性模型:sigmoid函數到底是怎么來的 https://www.bilibili.com/video/BV13X4y1R7im

參考文章:[1]Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多