我們過去有介紹過,關於神經網路的一系列文章,看過的人應該可以了解神經網路的大致結構,還有他能夠拿來做什麼。 不過神經網路本身也只是為了達到AI 人工智慧的一個方法,最近很紅的ChatGPT難道也是用神經網路來實作的嗎? ChatGPT背後的技術 大型語言模型 是否與我們前面介紹的神經網路相同呢? 答案是不同的,這也是我們想要進一步探討了解的課題。
要說明大型語言模型這個複雜的概念確實不容易,本篇的內容是我從這個Youtube影片簡化而來的,有興趣的人不妨直接去看看原本的影片(但是要一次看懂我覺得沒那麼簡單)。
首先要理解大型語言模型,我們拆解一下語言模型是什麼,我們先不要理解這麼複雜的概念,就講講跟一般的真人對話好了,根據你問的問題,對方應該要回答出合適的答案,而不是一堆牛頭不對馬嘴對吧? 而且更重要的是,對方的回答應該要語意通順,不是一些沒有意義的文字組合。 對電腦或是人工智慧來說,他要做的事情,就是根據你的"輸入",來產生一組輸出。
再進一步講,根據你的輸入,電腦要做的事情就是"預測出一組最合理的輸出"。最簡單的例子就是我們平常使用Google Search的時候,都會有自動的預測
根據你已經打入的字句(這邊的例子是水果),那麼搜尋引擎就會先列出幾個最有可能的搜尋結果,這就是一種最基本由輸入預測輸出的結果。
根據你給的輸入改變,搜尋引擎輸出的結果也會不斷的改變,這些搜尋引擎預測的結果應該是依照"出現的機率+你的個人喜好" 來排序的。
大型語言模型也是這樣的一回事嗎? 從希望做到的事情來看是相似的,我們希望根據"輸入的文字" 產生一組"輸出的文字",這就類似我們讓中文輸入法自動打字一直延伸下去 但是通常都會產生完全不通順的字眼如下
為什麼會發生這樣的事情呢? 很簡單,因為輸入法的輸入,通常都是根據上一個字來做預測而已。就算是google 引擎的搜尋,也通常是長度很有限的輸入。但是問題來了,如果我們要產生非常複雜的回答,舉例來說,給你一篇寫了一半的作文,但是要你繼續寫下去,就沒有那麼的單純
這篇寫到一半的懸疑小說,如果要接續下去,那麼電腦要參考的文字就不是只有最結尾的"哭泣聲..."這三個字,而是 "整篇文章都要參考",唯有整篇文章都參考了才能夠合理的預測接下來文字該怎麼描寫。對電腦來說,就是下一個字的產生,需要參考整篇文章的所有字, 這樣的函數可以寫成類似以下的函數。
問題就是,這樣的函數太過複雜了,假設一個句子只有10個字好了,那麼考慮到所有可以產生出來的句子組合,一樣是天文數字,完全無法計算跟解析,既然無法解決這麼複雜的問題,那麼我們就應該要找到一個好的近似的方法,來解決這樣的問題。之前也有提到,神經網路也就是一種用來猜測預測的方式,而對於一個文字排列出來的句子,能夠列出這個序列出現的機率,就是一種語言模型了。語言模型就是人類以神經網路發明出來,用來預測文字排列產生的機率的(當然也就能夠依照機率產生出相應的文字)。 我們根據之前的文章也知道,神經網路的模型是需要經過訓練的,而模型本身越大越複雜,訓練的資料越多,就能夠處理還有模擬更複雜的真實世界的事物,所謂的大型語言模型,就是餵入超大量文字訓練的語言模型。
今天這一篇我們先簡單的介紹到這邊,接下來我們會想辦法介紹,針對大型語言模型專家使用的模型Transformer ,他的基本原理是什麼,還有為什麼適合語言模型,我們下次見囉。