《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 人工智能 > 業(yè)界動態(tài) > 【ChatGPT專題】談?wù)凜hatGPT背后的核心論文

【ChatGPT專題】談?wù)凜hatGPT背后的核心論文

2023-02-08
來源:智能化學習與思考
關(guān)鍵詞: ChatGPT AI

  緣起

  輸入幾個簡單的關(guān)鍵詞,,AI能幫你生成一篇短篇小說甚至是專業(yè)論文,。作為上知天文下知地理對話語言模型,,最近大火的ChatGPT在郵件撰寫,、視頻腳本,、文本翻譯,、代碼編寫等任務(wù)上強大表現(xiàn),,讓埃隆·馬斯克都聲稱感受到了AI的“危險”,。最近大火的ChatGPT的計算邏輯來自于一個算法名字叫transformer,。它來源于2017年的一篇科研論文《Attention is all your need》。本來這篇論文是聚焦在自然語言處理領(lǐng)域,,但由于其出色的解釋性和計算性能開始廣泛地使用在AI各個領(lǐng)域,,成為最近幾年最流行的AI算法模型,,無論是這篇論文還是transformer模型,都是當今AI科技發(fā)展的一個縮影,。

  這也是我想在這里給大家分析這篇文章的核心要點和主要創(chuàng)新的初衷,。

  但我非AI(數(shù)學,計算機)專業(yè),,只是梳理并分享自己學習的體會和思考,,與大家一起討論,歡迎各位多提寶貴意見,;所述并不專業(yè),,各位大牛可以繞行,。

  為什么選擇分析一篇本該在科研圈里流傳的科研論文,,作為公眾號的首篇呢?

  從Transformer提出到“大規(guī)模與訓(xùn)練模型”GPT(Generative Pre-Training)的誕生,,再到GPT2的迭代標志Open AI成為營利性公司,,以及GPT3和ChatGPT的“出圈”;再看產(chǎn)業(yè)界,,第四范式涉及到多個重要領(lǐng)域比如生物醫(yī)療,,智能制造紛紛有以transformer落地的技術(shù)產(chǎn)生。在這個浪潮下,,我的思考是:

  一是,,未來很長一段時間在智能化領(lǐng)域,我們都將經(jīng)歷“科研,、算力,、基礎(chǔ)架構(gòu)、工程,、數(shù)據(jù),、解決方案”這個循環(huán)的快速迭代;流動性,、創(chuàng)新性短期不會穩(wěn)定下來,,而是會越來越強。我們很難等到科技封裝好,,把這些知識全部屏蔽掉,,再去打磨產(chǎn)品。未來在競爭中獲勝的,,將是很好地“解決了產(chǎn)品化和科研及工程創(chuàng)新之間平衡”的團隊,。我們一般理解的研發(fā)實際上是工程,但AI的實踐科學屬性需要團隊更好的接納這種“流動性”,。因此對所有從業(yè)者或者感興趣智能化的小伙伴了解全棧知識成了一個剛需,。

  二是,,通過對這篇論文的探討,可以更直觀地理解:在科研端發(fā)生了什么,,以什么樣的速度和節(jié)奏發(fā)生,;哪些是里程碑?是科學界的梅西橫空出世,,帶我們發(fā)現(xiàn)真理;哪些是微創(chuàng)新,?可能方向明確了,,但還有很多空間可以拓展;哪些更像煉金術(shù),?仍然在摸索,,尚需要很長一段時間,或者一直會保持這個狀態(tài),。

  三是,,在AI領(lǐng)域,由于技術(shù)原因,,更多的論文是開源代碼的,,一方面,促進了更多人參與進來改進迭代,;另一方面,,科研跟工程實現(xiàn)無縫連接,一篇論文可以拉動從核心代碼到平臺,,到具體應(yīng)用很大范圍的價值擴散,。一篇論文很可能就是一個領(lǐng)域,一條賽道,,甚至直接驅(qū)動業(yè)務(wù)價值和客戶價值的大幅提升,。

  四是, AI技術(shù)發(fā)展有很多領(lǐng)域(感知,,認知,,感知又分圖像、語音,、文字等,,認知也可以分出很多層次)之前這些領(lǐng)域的算法邏輯存在很大差別,transformer的出現(xiàn)有一定程度上推動各個領(lǐng)域匯聚的跡象,,介紹清楚這篇文章,,對把握整體,可能有些作用,。另外ChatGPT屬于現(xiàn)象級應(yīng)用,,大家更有直觀感受,,未來這類應(yīng)用的體驗提升和更新速度只會更快,理解了其背后的邏輯,,更有助于我們把握這個趨勢,。

  現(xiàn)今,知識迭代速度很快,,需要打下堅實的基礎(chǔ),。我的私心是希望通過公眾號分享文章,激勵自己更好地理解,、梳理相關(guān)知識,以做嘗試,;如果大家比較接受,后面我會逐步把在工程,、方案,、產(chǎn)品和企業(yè)智能化的思考逐漸沉淀并分享在這個公眾號里面。圖片

  論文介紹

  下面步入正題,,開始介紹這篇論文,,會涉及一些技術(shù)細節(jié)及公式,可能還需要仔細看一下(先收藏,,留出15-20分鐘比家好),,相信一旦看進去,你會對AI的理解加深很多,。

  總體把握

  這篇論文的結(jié)構(gòu)非常精煉,,提出問題,分析問題,,解決問題,,給出測試數(shù)據(jù)。頂刊文章講究言簡意賅,,有描述,,有代碼,有結(jié)果,;其中最核心的是以下這張圖,,作者團隊提出transformer的核心算法結(jié)構(gòu):

  微信截圖_20230208151149.png

  整篇文章就是圍繞這張圖來進行解釋的,由于篇幅所限,,我們聚焦在一條主線上:1.文章想解決主要問題是什么 2.如何解決的 3.從文章提出的解決方案作為一個案例來引發(fā)整體思考,,因此我們將內(nèi)容簡化,主要關(guān)注核心部分,。

  微信截圖_20230208151301.png

  這張圖表達的內(nèi)容如果理解了,,那基本上你掌握了這篇論文85%的內(nèi)容,也是最關(guān)鍵的部分,。

  《Attention is all your need》在編寫時主要是為了考慮NLP任務(wù),,是由幾個Google的科研人員一起完成的,,其中一個背景是Google也在推廣自己的并行計算芯片以及AI TensorFlow開發(fā)平臺。平臺主要功能特點是并行計算,,這篇文章的算法也是在最大限度的實現(xiàn)并行計算,。我們就以一個簡單的例子來把這個算法串一遍。

  核心內(nèi)容

  需求是我們需要訓(xùn)練一個模型,,進行中文到英文翻譯,。

  背景知識:這個需求要把“翻譯:我愛你 to I love you”轉(zhuǎn)置成一個y=f(x)問題,x代表中文,,y是英文,,我們要通過訓(xùn)練得到f(),一旦訓(xùn)練成功f(),就可以實現(xiàn)翻譯,。大家拼的就是誰的訓(xùn)練方法更準確,更高效,,誰的f()更好用,。

  之前自然語言處理主要的算法叫RNN(循環(huán)神經(jīng)網(wǎng)絡(luò)),它主要的實現(xiàn)邏輯是每個“字”計算之后將結(jié)果繼承給第二個字,。算法的弊病是需要大量的串行計算,,效率低。而且當遇到比較長的句子時,,前面信息很有可能會被稀釋掉,,造成模型不準確,也就是對于長句子效果會衰減,。這是這篇文章致力于要解決的問題,,也就是說這篇文章有訓(xùn)練處更好的f()的方法。聯(lián)想一下ChatGPT可以做論文,,感受一下,。

  在Transformer里,作者提出了將每個字與句子中所有單詞進行計算,,算出這個詞與每個單詞的相關(guān)度,,從而確定這個詞在這個句子里的更準確意義。(這句話要是理解了,,后面其實可以不看了圖片)

  在此處,,要開始進入一些技術(shù)細節(jié),在開始之前,,我們有必要再熟悉一下機器學習領(lǐng)域最核心的一個概念——“向量”,。在數(shù)字化時代,數(shù)學運算最小單位往往是自然數(shù)字,。但在AI時代,,這個最小單元變成了向量,。這是數(shù)字化時代計算和智能化時代最重要的差別之一。

  舉個例子,,比如,,在銀行,判斷一個人的信用額度,,我們用一個向量來表示

  微信截圖_20230208151447.png

  向量是一組數(shù)據(jù)的集合,,也可以想象成在一個超高維度空間里的一個點。一個具體的信用額度向量,,就是在8個特征組成的高維空間的一個點,。數(shù)據(jù)在高維空間將展現(xiàn)更多的數(shù)學性質(zhì)比如線性可分,容易讓我們抓住更多隱藏的規(guī)律,。

  向量的加減乘除是計算機在進行樣本訓(xùn)練是最主要的計算邏輯,。第四范式一直強調(diào)的高維,實時,,自學習,,其中高維就是把企業(yè)信息拉升到一個非常高維的空間,變成向量,。

  Transformer模型的主要意義就是找到了一個算法,,分成三步把一個詞逐步定位到了一個高維空間,在這個過程中賦予這個單詞比其它算法更優(yōu)的信息,。很多情況下這個高維空間有著不同的意義,,一旦這個向量賦予的信息更準確更接近真實情況,后面的機器學習工作就很容易展開,。還拿剛才信用額度向量舉例子

微信截圖_20230208151520.png

  這兩個向量存在于兩個不同的向量空間,,主要的區(qū)別就是前者多了一個向量特征:“年薪”??梢运伎家幌氯绻袛嘁粋€人的信用額度,,“年薪”是不是一個很重要的影響因子?

  以上例子還是很簡單的,,只是增加了一個特征值,,在transformer里就復(fù)雜很多,它是要把多個向量信息通過矩陣加減乘除綜合計算,,從而賦予一個向量新的含義,。

  好,理解了向量的重要性,,我們看回transformer的三步走,,這三步走分別是:1.編碼(Embedding)2. 定位 (Positional encoding)3. 自注意力機制(Self-Attention)這個真的大名鼎鼎

  舉個例子,比如,翻譯句子Smart John is singing到中文,。

  首先,,要對句子每個詞進行向量化。

  我們先看“John”這個詞,,需要先把“John”這個字母排列的表達轉(zhuǎn)換成一個512維度的向量john 這樣計算機可以開始認識它,。說明John是在這個512維空間的一個點;這是第一步:編碼(Embedding)

  再次,,第二步 定位(Positional encoding):利用以下公式(這是這篇文章的創(chuàng)新)

  微信截圖_20230208151629.png

  微調(diào)一個新的高維空間,,生成一個新的向量

  微信截圖_20230208151641.png

  我們不用太擔心這個公式,它核心意義是:1.在這個新的向量里面每一位由原來的0和1表示,,分別取代成由sin和cos表示,,這個目的是可以通過sin和cos的定律,讓這個新向量不僅表示John這個單詞的意義,,還可以表示John在Smart John is singing這個句子的位置信息,。如果不理解,可以直接忽略,,只要記住第二步是用來在“表達John這個詞的向量”中,,加入了John在句子中的位置信息。John已經(jīng)不是一個孤立的詞,,而是一個具體句子中的一個詞,雖然還不知道句子中其他詞是什么含義,。

  如果第一步計算機理解了什么是John,,第二步計算機理解了“* John**”。

  最后,,第三步,,自注意力機制(Self-Attention),通過一個Attention(Q,,K,,V)算法,再次把John放到一個新的空間信息里,,我們設(shè)為

  微信截圖_20230208151738.png

  在這個新向量里,,不僅包含了John的含義,John在句子中位置信息,,更包含了John和句子中每個單子含義之間的關(guān)系和價值信息,。我們可以理解,John作為一個詞是一個泛指,,但Smart John就具體了很多,,singing的Smart John就又近了一步。而且Attention (Q,K,,V)算法,,不是對一個單詞周圍做計算,是讓這個單詞跟句子里所有單詞做計算,。通過計算調(diào)整這個單詞在空間里的位置,。

  這種方法,可以在一個超長句子中發(fā)揮優(yōu)勢,,而且最關(guān)鍵的是一舉突破了時序序列的屏障,,以前對于圖像和NLP算法的劃分,很大程度上是由于NLP有很明顯的時序特征,,即每個單詞和下一個以及在下一個有比較明顯的時序關(guān)系,。但Transformer這種算法打破了這種束縛,它更在意一個單詞跟句子中每個單詞的價值權(quán)重,。這是Transformer可以用到everywhere的主要原因,。

  微信截圖_20230208151758.png

  計算過程

  (如果不感興趣,,可以跳過這一部分介紹,,直接進入啟發(fā)收獲部分,如需一些基礎(chǔ)知識,,可以參考“智能化學習與思考”公眾號的基礎(chǔ)知識文章)

  具體的計算過程,,用翻譯句子“我愛你”到“I love you”舉例(這句更簡單一些)。首先進行向量化并吸收句子位置信息,,得到一個句子的初始向量組,。

  微信截圖_20230208151818.png

  (由于樣本每個句子長短不同,,所以每個句子都會是一個512*512的矩陣,,如果長度不夠就用0來代替。這樣在訓(xùn)練時,,無論多長的句子,,都可以用一個同樣規(guī)模的矩陣來表示。當然512是超參,,可以在訓(xùn)練前調(diào)整大小,。)

  接著,用每個字的初始向量分別乘以三個隨機初始的矩陣WQ,,Wk,,Wv 分別得到三個量Qx,Kx,,Vx,。下圖以“我”舉例。

  微信截圖_20230208151836.png

  然后,計算每個單詞的attention數(shù)值,,比如“我”字的attention值就是用“我”字的Q我分別乘以句子中其他單詞的K值,,兩個矩陣相乘的數(shù)學含義就是衡量兩個矩陣的相似度。然后通過一個SoftMax轉(zhuǎn)換(大家不用擔心如何計算),,計算出它跟每個單詞的權(quán)重,,這個權(quán)重比例所有加在一起要等于1。再用每個權(quán)重乘以相對應(yīng)的V值,。所有乘積相加得到這個Attention值,。

  微信截圖_20230208151859.png

  這個attention數(shù)值就是除了“我”字自有信息和位置信息以外,成功的得到了這個句子中每個單詞的相關(guān)度信息,。

  大家可以發(fā)現(xiàn),,在所有注意力系數(shù)的計算邏輯中其實只有每個字的初始矩陣WQ,Wk,,Wv是未知數(shù)(這三個矩陣是所有文字共享的),。那么我們可以把這個transformer簡化成一個關(guān)于輸入,輸出和這個W矩陣的方程:其中X是輸入文字信息,,Y是翻譯信息,。

  微信截圖_20230208151937.png

  這里有必要再介紹一下機器學習的基礎(chǔ)知識:Transformer算法本質(zhì)上是一個前饋神經(jīng)網(wǎng)絡(luò)模型,它的計算基礎(chǔ)邏輯,,不去管復(fù)雜的隱藏層,,就是假設(shè)Y=f(x)=wx,(目標還是要算出一個f())然后隨機設(shè)置一個w0,,開始計算這個y=w0x的成本函數(shù),,然后再把w0變成w1,計算y=w1x的成本函數(shù),,以此類推計算出無數(shù)w(不是無數(shù)哈,也會收斂的圖片),,然后比較哪個w的成本函數(shù)最小,,就是我們訓(xùn)練出來的f()。那么在transformer里,,這三個初始矩陣就是那個w0,。

  再回到transformer,在計算Attention之后,,每個單詞根據(jù)語義關(guān)系被打入了新的高維空間這就是Self-attention(自注意力機制),。

  但在transformer里,并不是代入了一個空間,,而是代入了多個高維空間,,叫做多頭注意力機制,

  微信截圖_20230208151957.png

  文章中沒有給出更清晰的理論支持,為什么是多頭,。

  主要原因是在訓(xùn)練時效果很好,。這也是AI科研論文的一個特點,常常憑借非常高的科研素養(yǎng)和敏感性,,發(fā)現(xiàn)一些方向,,并且通過測試確實有效,但不一定可以給出很完美的理論支撐,。這往往也給后續(xù)研究者一些可以進一步完善的空間,。

  事實證明,如何提升Attention(Q,,K,,V)效率是transformer領(lǐng)域迭代最快的部分。之后的Bert算法提出預(yù)訓(xùn)練機制成為了主流,,后面會做進一步介紹,。

  當然,事后我們可以理解是把這個句子中的邏輯關(guān)系放到不同的高維空間去訓(xùn)練,,目的就是希望抓取更多的信息,,這一部分可以更加深刻理解科研人員對空間的應(yīng)用。

  除了以上內(nèi)容,,還有一些技術(shù)點比如Mask機制,、layer norm、神經(jīng)網(wǎng)絡(luò)激函數(shù)飽和區(qū)控制等,,由于篇幅關(guān)系以及屬于技術(shù)細節(jié)就不一一介紹了,。

  如果大家理解了多頭自注意力機制,基本已經(jīng)85%掌握了這篇論文的重要內(nèi)容,,也對還在快速擴展影響力的transformer模型有了一個比較直觀的認識,。

  啟發(fā)收獲

  從理論科研進步的角度看

  1.  Transformer打破了時序計算的邏輯,開始快速出圈,,多個AI原本比較獨立的領(lǐng)域開始在技術(shù)上融合,。再往里看,Transformer能打破時序很重要一點是并行計算的算力模式給更復(fù)雜的計算帶來了性價比上的可能性,。算力的進一步提高,,必將在AI各細分領(lǐng)域帶來融合,更基礎(chǔ)設(shè)施級別的模型,,算法仍將不斷推出,。AI領(lǐng)域在圖像,NLP,;感知認知領(lǐng)域的專業(yè)分工也會慢慢變模糊,。

  2.  AI科研確實具有一些實驗性質(zhì),。除了核心思想,確實還有很多技術(shù)點的解決方向已經(jīng)明確,,但還有很大的提升空間,,可以預(yù)見圍繞transformer周邊的微創(chuàng)新會持續(xù)加速繁榮。

  3.  《Attention is all your need》在業(yè)內(nèi)大名鼎鼎,,但你要是細看,,會發(fā)現(xiàn)很多內(nèi)容也是拿來主義,比如最重要的Attention(Q,,K,V)中Query,,Key,,Value是互聯(lián)網(wǎng)推薦系統(tǒng)的標配方法論;整個Transformer算法也是一個大的神經(jīng)網(wǎng)絡(luò),,算法是在前人基礎(chǔ)上一步一步迭代發(fā)展,,只是這個迭代速度明顯在加快。

  從理論,、算法,、架構(gòu)、工程的角度看

  4.  AI算法科研領(lǐng)域正經(jīng)歷算法,、開源代碼,、工程、算力的增長飛輪,。

  微信截圖_20230208152041.png

  下圖是頂級刊物上的學術(shù)論文中,,開放源代碼的論文比例,這個數(shù)據(jù)在這幾年以更快的速度在增長,??蒲羞^程與工程過程產(chǎn)生越來越大的交集。開源社區(qū)和開源文化本身也在推動算法和工程的快速發(fā)展,。

  微信截圖_20230208152058.png

  更多人參與,,更多領(lǐng)域的人參與進來,進入門檻隨著算力成本,、AI基礎(chǔ)架構(gòu)和代碼、知識分享的開源逐漸降低,,科研與工程的邊界也變得模糊,,這個就像足球運動的規(guī)律,除了足球人口增多,,天才球員梅西出現(xiàn)的概率也會增大,。

  從數(shù)據(jù)和后續(xù)方案發(fā)展的角度看

  5.  ChatGPT的成功同大量的數(shù)據(jù)訓(xùn)練功不可沒,,但除了簡單對話互動或者翻譯,大篇幅回答甚至論文級別的答案還是極其缺乏樣本數(shù)據(jù)(算法訓(xùn)練需要的樣本數(shù)據(jù)需要清晰度X和Y),。而且Transformer的算法相比其他算法需要更大的數(shù)據(jù)量,,原因在于它需要起始階段隨機產(chǎn)生三個矩陣,一步一步進行優(yōu)化,。除了Transformer以外,,另一個技術(shù)Bert也是技術(shù)發(fā)展非常重要的現(xiàn)象級算法。其核心是一個簡化的Transformer,,Bert不去做從A翻譯到B,,它隨機遮住X里面的一些單詞或句子讓算法優(yōu)化對遮住部分的預(yù)測。這種思路使得Bert成為了Transformer預(yù)訓(xùn)練最好的搭檔,。

  微信截圖_20230208152322.png

  如果通過Bert進行預(yù)訓(xùn)練,,相當于給矩陣加入了先驗知識(之前訓(xùn)練邏輯沒有給機器任何提示,規(guī)則后者基礎(chǔ)知識),,提高了正式訓(xùn)練時初始矩陣的準確度,,極大地提升了之后transformer的計算效率和對數(shù)據(jù)量的要求。在現(xiàn)實中,,舉例來說,,如果我想訓(xùn)練國家圖書館圖書,之前需要每本書的信息和對這本書的解釋,,或者中文書對應(yīng)的英文書,。但現(xiàn)在我們可以大量只是訓(xùn)練內(nèi)容,不需要打標簽,,之后只需要通過transformer對樣本數(shù)據(jù)進行微調(diào),。這就給ChatGPT很大的進步空間,而且可以預(yù)見,,更多這類大模型會雨后春筍一般快速出現(xiàn),。

  6.  由于transformer是更高級的神經(jīng)網(wǎng)絡(luò)深度學習算法,對數(shù)據(jù)量有很高要求,,這也催生了從小數(shù)據(jù)如何快速產(chǎn)生大數(shù)據(jù)的算法,,比如GAN對抗網(wǎng)絡(luò)等。這是AIGC領(lǐng)域的核心技術(shù),。解決數(shù)據(jù)量不足問題,,除了更高效率抽象小數(shù)據(jù)的信息,也多了把小數(shù)據(jù)補足成大數(shù)據(jù)的方法,,而且這些方法在快速成熟,。

  7.  我們發(fā)現(xiàn)在機器學習算法中有大量的超級參數(shù),比如在transformer里多頭機制需要幾頭N,,文字變成向量是512還是更多,,學習速率等都需要在訓(xùn)練之前提前設(shè)置,。由于訓(xùn)練時間長,參數(shù)復(fù)雜,,要想遍歷更優(yōu)秀的計算效果需要非常長的摸索時間,。這就催生出AutoML,第四范式在這個領(lǐng)域研究多年,,拿Transformer舉例,,就要很多個路線進行自動化機器學習;比如貝葉斯計算(找到更優(yōu)參數(shù)配置概率),;強化學習思路(貪婪算法在環(huán)境不明朗情況下迅速逼近最優(yōu)),;另外還有尋求全新訓(xùn)練網(wǎng)絡(luò)的方法(transformer,RNN,,MLP等聯(lián)合使用排列組合)等,。科研發(fā)展強調(diào)參數(shù)化,,工業(yè)發(fā)展強調(diào)自動化,,這兩者看似統(tǒng)一,但在現(xiàn)實實操過程中往往是相當痛苦矛盾的,。這也是開篇說的產(chǎn)品化和科研流動性相平衡的一個重要領(lǐng)域,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。