最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

[軟件開發(fā)] 大模型AIGC分享之「走進(jìn)大模型」篇

2023-08-25 18:35 作者:deepin深度操作系統(tǒng)  | 我要投稿

應(yīng)用大模型

??AIGC 是基于大模型的,而大模型的基礎(chǔ)是深度學(xué)習(xí)。上一篇文章對(duì)深度學(xué)習(xí)進(jìn)行了初步介紹,首先是深度學(xué)習(xí)的神經(jīng)元起源,引發(fā)了基于線性函數(shù)的模擬,又因?yàn)榫€性函數(shù)無法習(xí)得邏輯異或,因此引入了非線性的激活函數(shù),再通過三層神經(jīng)網(wǎng)絡(luò)給出了MNIST手寫數(shù)字識(shí)別的模型,接著又介紹了神經(jīng)網(wǎng)絡(luò)是如何通過數(shù)據(jù)與反向傳播來學(xué)習(xí)與調(diào)整參數(shù)的,最后給出了神經(jīng)網(wǎng)絡(luò)的分層結(jié)構(gòu)。

??大模型的直觀應(yīng)用當(dāng)然首先體現(xiàn)在包括ChatGPT、文心一言、訊飛星火等問答型產(chǎn)品的使用上,另一方面也體現(xiàn)在編程上,在此先給出大模型的編程應(yīng)用。以下使用的模型、庫與樣例均來自于Hugging Face。

??圖1給出了基于大模型的英中翻譯代碼與運(yùn)行結(jié)果。從圖1中可以看到,真實(shí)的翻譯代碼只有14、15兩行,其邏輯是使用了Helsinki-NLP的opus-mt-en-zh模型,其中mt代表機(jī)器翻譯(machine translation)、en和zh分別表示英文和中文。從圖1中同樣可以看到,翻譯結(jié)果相對(duì)還是比較準(zhǔn)確的。

圖1 基于大模型的英翻中

??圖2給出了基于大模型的文本情感分析的代碼與運(yùn)行結(jié)果。從圖2中可以看到,實(shí)際有用的代碼也僅需14、16兩行,而且這次沒有指定具體模型,只給出了需要text-classification這種模型。代碼運(yùn)行結(jié)果是認(rèn)為文本情緒是負(fù)面的(NEGATIVE),準(zhǔn)確度大概是90.1546%,這顯然是符合實(shí)際的,因?yàn)槲谋臼菍?duì)商家發(fā)錯(cuò)貨的抱怨。

圖2 基于大模型的文本情感分析

??圖3給出了基于大模型的問答。這次的代碼稍多一點(diǎn),但實(shí)際的代碼也只有三行。第14行給出了需要一個(gè)問答(question-answering)的大模型,但是沒有指定大模型的名字,第15行是提問的字符串“What does the customer want”,即用戶到底想要什么。第16行則使用上述文本作為上下文,提問字符串作為問題,傳給問答大模型獲取答案。從運(yùn)行結(jié)果看來,答案還是蠻靠譜的。

圖3 基于大模型的問答

??當(dāng)然,基于大模型的程序還有很多,但是從上面三個(gè)例子已經(jīng)可以看出,基于大模型可以寫出簡短而強(qiáng)大的自然語言處理的程序,下面讓我們走進(jìn)大模型,看看它究竟是如何做到這一點(diǎn)的。

走進(jìn)大模型

??大模型在自然語言處理領(lǐng)域里大放異彩,因此首先需要了解自然語言的特點(diǎn)。

??自然語言的顯著特點(diǎn)(也是難點(diǎn)),那就是詞與詞之間有著廣泛的關(guān)聯(lián)。比如下面兩句英文:

  • Go to the bank to get some money.

  • Go to the bank to get some water.

??只有看到每一句的最后一個(gè)詞,才能分辨出 bank 到底是銀行還是堤壩。再比如下面這兩句中文:

  • 今天太冷了,能穿多少穿多少。

  • 今天太熱了,能穿多少穿多少。

??整句話唯一不同的就是冷與熱這兩個(gè)字,但也就是這句話的一字之差,就導(dǎo)致了整句話的意義完全不同了。

??因此,自然語言處理的關(guān)鍵點(diǎn)就在于如何能準(zhǔn)確地判斷詞與詞之間的關(guān)系,如果能準(zhǔn)確地知道所有詞之間的關(guān)系,那即使缺了一個(gè)詞,也能根據(jù)關(guān)系推出缺的詞應(yīng)該是什么詞。當(dāng)下處理這一問題的主流技術(shù)是transformer,這個(gè)詞不好翻譯,主要因?yàn)樗妥冃谓饎偟挠⑽囊荒R粯?。transformer的核心概念是注意力(attention),即每個(gè)詞到底在注意其它的哪個(gè)詞,或者說哪些詞之間有什么關(guān)系。

??注意力具體由以下關(guān)鍵概念組成:

  • 每個(gè)詞(實(shí)際上是詞元,token)均有對(duì)應(yīng)的 q/query(查詢)、k/key(鍵值)與 v/value(值)這三個(gè)矩陣變量

  • q[i]用來查詢本詞(i)與其它詞(j)之間的注意力

  • k[j]是詞j回應(yīng)查詢的鍵值,具體是q[i]與k[j]相乘后縮放,接著用softmax激活函數(shù)處理,再乘以v[j],這就得到了詞i針對(duì)詞j的注意力att[i,j]。

  • 詞i的對(duì)應(yīng)輸出為計(jì)算得到的注意力之和,即 y[i] = att[i,1] + att[i,2] + … + att[i,n]

  • 注意力可以有多個(gè)(multi-head),每個(gè)注意力可以關(guān)注不同的方向,例如有的注意力關(guān)注的是詞與詞之間的意義,有的關(guān)注的是押韻,等等

??圖4給出了一個(gè)句子中各個(gè)詞注意力的計(jì)算過程。

圖4 注意力計(jì)算過程

??句子是“小明、小剛、小紅是小強(qiáng)的朋友,小明是…”,當(dāng)前的詞是“小紅”,序號(hào)是3,可以看到小紅的q值與每個(gè)詞的k值相乘之后再用softmax處理(縮放操作在這里省略了),接著再與每個(gè)詞的q值相乘,最后相加即可得到序號(hào)為3的輸出。

??那么這些k、q、v 等的值如何確定呢?當(dāng)然是通過上一篇文章里提到的反向傳播進(jìn)行學(xué)習(xí)的,那反向傳播學(xué)習(xí)自然語言的正確輸出是什么呢?在大語言模型中,其訓(xùn)練手段是使用大量的高質(zhì)量語料,將詞語按序逐批輸入大模型,以原句子中的下一個(gè)詞或者特意被空缺出來的詞為正確輸出來學(xué)習(xí)的。例如在上面的句子中,大模型在輸入了“小明、小剛、小紅是小強(qiáng)的”之后,應(yīng)該能計(jì)算輸出“朋友”這個(gè)詞,如果輸出錯(cuò)誤,則通過反向傳播調(diào)整各個(gè)參數(shù)。也就是說,大模型就是根據(jù)一個(gè)詞之前的詞或者周圍的詞是什么來計(jì)算出這個(gè)詞的,這就是大模型的理論基礎(chǔ)和學(xué)習(xí)方法。

??注意力雖然是大模型的核心概念,但除此之外,大模型還用到了其他技術(shù),它們包括:

  • 第一步需要將詞轉(zhuǎn)為數(shù)值向量(vector)的嵌入層(embedding),這也是現(xiàn)在很火的向量數(shù)據(jù)庫的那個(gè)向量,向量數(shù)據(jù)庫就是用來查詢哪些文本向量比較相似,從而提取出對(duì)應(yīng)的文字材料的

  • 給詞向量加上含位置信息的位置編碼,以分辨出詞的先后順序,顯然“我愛你”與“你愛我”的意義截然不同,因此詞序是很重要的,而注意力本身并沒有用到詞序

  • 在注意力層之后的殘差處理與歸一化處理,技術(shù)原理并不難,感興趣的讀者可以看參考資料

??現(xiàn)在我們已經(jīng)對(duì)大模型的主要技術(shù)原理有了粗淺的了解,下面來看看深度學(xué)習(xí)與大模型的特點(diǎn)。

大模型的特點(diǎn)

??從對(duì)深度學(xué)習(xí)以及大模型的初步應(yīng)用與原理了解,其實(shí)我們已經(jīng)可以得出一些結(jié)論。

??首先,深度學(xué)習(xí)的算法模型是神經(jīng)網(wǎng)絡(luò)及其節(jié)點(diǎn)上的參數(shù)/權(quán)重構(gòu)成的,深度學(xué)習(xí)是端到端的機(jī)器學(xué)習(xí),它不用由人類專家預(yù)先設(shè)計(jì)特征算法,例如不用苦思冥想怎么設(shè)計(jì)一個(gè)提取圖像中線條的算法,只需要用大量的高質(zhì)量標(biāo)注數(shù)據(jù)對(duì)其進(jìn)行投喂,就有可能最終訓(xùn)練出質(zhì)量不錯(cuò)的神經(jīng)網(wǎng)絡(luò)(中的各個(gè)參數(shù))來。

??其次,它是一個(gè)黑盒子,因?yàn)闆]有特征設(shè)計(jì),因此這么多數(shù)值構(gòu)成的神經(jīng)網(wǎng)絡(luò),它為什么能達(dá)到最終的目標(biāo),為什么某個(gè)參數(shù)就必須是最后訓(xùn)練出來的那個(gè)數(shù)值,為什么有的時(shí)候識(shí)別會(huì)失敗或者生成會(huì)出錯(cuò),是否可以手工修改某些特定的參數(shù)使得其成功率上升,同時(shí)又不會(huì)導(dǎo)致原來成功的事例失敗,這些問題在現(xiàn)階段都是難以回答的,這就是深度學(xué)習(xí)的可解釋性問題。

??在ChatGPT之前,大模型其實(shí)也在發(fā)展,但是ChatGPT表現(xiàn)出來的多領(lǐng)域通用性和流暢性與之前的產(chǎn)品相比有明顯的超越,所以造成了轟動(dòng)。其后的GPT-4表現(xiàn)更為優(yōu)異,在《Sparks of Artificial General Intelligence:Early Experiments with GPT-4》這篇論文里,微軟團(tuán)隊(duì)給出了這樣的一個(gè)示例:

提問:Can you write a proof that there are infinitely many primes, with every line that rhymes??

GPT4:Yes, I think I can, Though it might take a clever plan. I’ll start by noting Euclid’s proof, Which shows that primes aren’t just aloof. Assume we have a finite list, Of primes, and that none have been missed. Multiply them all together, And add one, just to be clever. The result will be a number, That has no prime factors, oh wonder! But every number has a prime, That divides it, it’s just a matter of time. So we’ve found a contradiction, And our finite list needs eviction. There must be infinitely many primes, And that’s the end of my rhyming lines.

??提問者讓GPT-4寫一首詩,來證明素?cái)?shù)有無限多個(gè),然后GPT-4很快就完成了這首詩,每兩行押韻,而且用歐幾里得的經(jīng)典方法給出了證明。當(dāng)然,在論文中還有很多讓人印象深刻的例子,但是上面的例子已能說明GPT-4確實(shí)有了很強(qiáng)的能力。

??GPT中的G表示生成(Generative),這表示它主要的工作方式是生成內(nèi)容,內(nèi)容在這里主要是自然語言文本。按照OpenAI首席執(zhí)行官Sam Altman的說法,The most important difference between ChatGPT and GPT-4, is that the GPT-4 predicts the next word with greater accuracy,即 ChatGPT與GPT-4最大的差異就在于GPT-4在預(yù)測下一個(gè)詞的準(zhǔn)確度比ChatGPT更高。

??GPT中的P表示預(yù)訓(xùn)練(Pretrain),即首先用大量語料訓(xùn)練出基礎(chǔ)模型(foundation model),然后再用下游任務(wù)相關(guān)的語料進(jìn)行精調(diào)(FT,即finetuning)。這些下游任務(wù)可能是文本分類、翻譯、對(duì)話等等,這樣就可以不用單獨(dú)為某個(gè)特定任務(wù)從頭訓(xùn)練了。我們可以把中學(xué)教育和通識(shí)教育看作是預(yù)訓(xùn)練,它為大學(xué)最終的專業(yè)選擇,以及以后更細(xì)的工作分工打下了堅(jiān)實(shí)的基礎(chǔ)。反過來看,在小學(xué)年齡階段沒有上學(xué)可能會(huì)對(duì)以后的擇業(yè)帶來很大的限制,這也可以看成是大腦在應(yīng)預(yù)訓(xùn)練的階段沒有進(jìn)行有效的預(yù)訓(xùn)練導(dǎo)致的問題。

??GPT中的T表示transformer,這個(gè)已經(jīng)在上文中介紹了。

??一般認(rèn)為,GPT-4有更強(qiáng)能力的原因在于:

  • 它提供了大量的高質(zhì)量數(shù)據(jù),原始數(shù)據(jù)有45T,清洗后的語料是570G,清洗比例接近1%,這是之前幾乎沒有團(tuán)隊(duì)做到的

  • 數(shù)據(jù)中混合了大量的代碼,原始數(shù)據(jù)中有830G代碼,這一般被認(rèn)為是推理能力提升的關(guān)鍵點(diǎn)之一,當(dāng)然另一方面也大大提升了它的代碼能力

  • 展開了大量不同種類的下游任務(wù),如生成、問答、腦暴、閑聊、摘要、分類、提取等等,以上兩點(diǎn)也屬于多樣化工作,它為GPT4的通用性打下了基礎(chǔ)

  • 使用了基于人工反饋的增強(qiáng)學(xué)習(xí)(RLHF)方法,召集了40個(gè)眾包團(tuán)隊(duì),撰寫了數(shù)十萬的提示數(shù)據(jù)以對(duì)齊主流價(jià)值觀

??一般認(rèn)為,大模型的表現(xiàn)之所以如此智能,但是之前的小模型神經(jīng)網(wǎng)絡(luò)卻那么智障,其原因可能在于涌現(xiàn)(emergence)。涌現(xiàn)可以簡單認(rèn)為是單個(gè)個(gè)體微觀上簡單的行為,在宏觀上大量復(fù)合呈現(xiàn)出難以預(yù)料的規(guī)律。比如每只螞蟻其行為其實(shí)是挺簡單的,但是一群螞蟻在一起,就可以表現(xiàn)出復(fù)雜的規(guī)律。又如每個(gè)神經(jīng)元的行為都很簡單,但是這么多神經(jīng)元聚集在一起,就形成了聰明的人類大腦,這也算是一種涌現(xiàn)。

??涌現(xiàn)最直觀的例子可能就是康威的生命游戲(Conwey’s Life Game)了,這個(gè)游戲是在一個(gè)網(wǎng)格平面(類似圍棋棋盤)上發(fā)生的,每個(gè)個(gè)里要么有一個(gè)存活的細(xì)胞,(用黑色格表示),要么就是一個(gè)死亡的細(xì)胞(用白色格表示),其規(guī)則也很簡單,只有以下四條:

  • 當(dāng)前細(xì)胞存活時(shí),當(dāng)周圍存活細(xì)胞<2時(shí),該細(xì)胞死亡(模擬生命數(shù)量稀少)

  • 當(dāng)前細(xì)胞存活時(shí),當(dāng)周圍有2個(gè)或3個(gè)存活細(xì)胞時(shí),該細(xì)胞保持存活

  • 當(dāng)前細(xì)胞存活時(shí),當(dāng)周圍存活細(xì)胞>3時(shí),該細(xì)胞死亡(模擬生命數(shù)量擁擠)

  • 當(dāng)前細(xì)胞死亡時(shí),當(dāng)周圍存活細(xì)胞=3時(shí),該細(xì)胞復(fù)活(模擬繁殖)

??那么圖5里的四個(gè)樣式就表示絕對(duì)靜止的細(xì)胞群體。

圖5 康威生命游戲中絕對(duì)靜止的細(xì)胞群體

??對(duì)每個(gè)樣式進(jìn)行分析很快就會(huì)知道為什么它們會(huì)絕對(duì)靜止。以第二個(gè)樣式為例,其每個(gè)存活細(xì)胞周圍都剛好有兩個(gè)存活細(xì)胞,按照規(guī)則2,它們都應(yīng)該保持存活。而任何一個(gè)死亡細(xì)胞周圍都沒有四個(gè)存活細(xì)胞,因此此樣式將永遠(yuǎn)不變。

??圖6給出了震蕩循環(huán)的細(xì)胞群體。

圖6 康威生命游戲中震蕩循環(huán)的細(xì)胞群體

??按照康威生命游戲的規(guī)則,可以發(fā)現(xiàn)圖6中的兩個(gè)樣式會(huì)演變幾步之后又變成當(dāng)前的樣式。以第二個(gè)樣式為例,其一共有左中右三個(gè)存活細(xì)胞。左側(cè)與右側(cè)的存活細(xì)胞附近只有一個(gè)存活細(xì)胞,因此按照規(guī)則1,會(huì)在下一輪死亡。中間的存活細(xì)胞附近有兩個(gè)存活細(xì)胞,因此按照規(guī)則2,保持存活。同時(shí)又可以發(fā)現(xiàn),中間的存活細(xì)胞上側(cè)和下側(cè)的死亡細(xì)胞由于其附近有三個(gè)存活細(xì)胞,因此根據(jù)規(guī)則4,在下一輪它們將復(fù)活。以此類推,樣式會(huì)由橫三轉(zhuǎn)為縱三,又轉(zhuǎn)回橫三,永遠(yuǎn)震蕩循環(huán)。

??康威生命游戲有著遠(yuǎn)超過上述樣式的復(fù)雜度,在宏觀上甚至可以看到游走、巡回、擴(kuò)張、凋零等多種細(xì)胞社群的樣式,因此四條簡單的微觀規(guī)則就衍生出了讓人事先難以預(yù)料的宏觀樣式上的復(fù)雜度,是涌現(xiàn)的一個(gè)生動(dòng)形象的例子。

??以ChatGPT與GPT-4為代表的大模型由于其使用了自然語言對(duì)話而引發(fā)了轟動(dòng),讓普通人都能直觀感受到大模型的魅力,但同時(shí)它作為一個(gè)基礎(chǔ)設(shè)施,也提出了一個(gè)難題,就是它的編程接口是基于自然語言的,所以需要做所謂的提示工程(prompt engineering)。所謂提示工程,指的就是想讓大模型好好干活,那就需要自己好好琢磨怎么和大模型好好說話。俗話說見人下菜,或者說見人說人話,見鬼說鬼話,那見了ChatGPT,當(dāng)然就得說ChatGPT話了,不然它就沒法理解問題,自然也沒法給出好的回答了。Linux圈子里有Linus大佬的一句名言:“talk is cheap, show me your code”,中文翻譯也很傳神:“廢話少說,放碼過來”,俗一點(diǎn)的話那就是“少嗶嗶,秀代碼”,但是自打GPT橫空出世,以后可能就是“code is cheap, show me your talk”了,畢竟,給GPT一個(gè)提示,它可以還你百行代碼。

??不過神經(jīng)網(wǎng)絡(luò)畢竟是一種信息壓縮,或說是一種函數(shù)擬合,因此中間肯定會(huì)有信息損失,或說是自己瞎想的填補(bǔ)空白,那就避免不了GPT一本正經(jīng)的胡說八道,也就是所謂的幻覺(hallucination)了?;糜X是當(dāng)前大模型應(yīng)用的主要障礙之一,一般認(rèn)為,大模型近期的發(fā)展將沿著消減幻覺、工具集成(即能使用外部工具)、多模態(tài)(即除了文本以外,也能理解和生成圖形、語音、視頻等內(nèi)容)、垂直領(lǐng)域、類腦智能、具身(embodied)智能等方向發(fā)展。

內(nèi)容來源:deepin社區(qū)博客

原文鏈接:https://blog.deepin.org/posts/approaching-llms/

原文作者:raphaelzhang

系列文章:大模型AIGC分享之「深度學(xué)習(xí)」篇



[軟件開發(fā)] 大模型AIGC分享之「走進(jìn)大模型」篇的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
当雄县| 天长市| 芦溪县| 云林县| 永德县| 九台市| 来安县| 浑源县| 安泽县| 循化| 永川市| 大城县| 青阳县| 阳曲县| 蚌埠市| 友谊县| 丹巴县| 民权县| 县级市| 沐川县| 龙门县| 丹阳市| 泗阳县| 盐边县| 沂源县| 宜丰县| 兴文县| 陇西县| 清镇市| 古丈县| 慈溪市| 崇礼县| 永宁县| 平塘县| 嵩明县| 西林县| 通河县| 中江县| 应城市| 如东县| 江西省|