大模型的發展歷程
- 大語言模型的發展歷程
- 一、語言模型是個啥?
- 二、語言模型的 “進化史”
- (一)統計語言模型(SLM)
- (二)神經語言模型(NLM)
- (三)預訓練語言模型(PLM)
- (四)大語言模型(LLM)
- 三、語言模型的 “秘密武器”
- (一)模型參數規模
- (二)數據數量和質量
- 四、未來展望
大語言模型的發展歷程
哈嘍~今天咱們來好好嘮嘮大語言模型。這可不是什么高深莫測的玩意兒,它就在咱們身邊,像 ChatGPT、文心一言這些,都是大語言模型的 “明星成員”。咱今天就來扒一扒它的 “老底”。
一、語言模型是個啥?
簡單來說,語言模型就是能讓計算機 “懂得” 人類語言的模型。它能預測下一個詞是什么,也能生成像模像樣的句子。就像咱們學外語,剛開始可能只會背單詞,后來就能用單詞造句,語言模型就是讓計算機學會 “造句” 的。
舉個例子,輸入 “今天天氣很”,語言模型就能預測下一個詞可能是 “好”、“晴朗” 之類的詞。是不是挺神奇的?
二、語言模型的 “進化史”
(一)統計語言模型(SLM)
這算是語言模型的 “老祖宗” 了。它基于統計學,用鏈式法則來建模句子序列。比如,要計算 “我愛學習” 這句話出現的概率,就得算出 “我” 出現的概率、“愛” 在 “我” 后面出現的概率、“學習” 在 “愛” 后面出現的概率,然后把這些概率乘起來。
用公式表示就是: p ( I , a m , f i n e ) = p ( I ∣ S T A R T ) ? p ( a m ∣ I ) ? p ( f i n e ∣ I , a m ) p(I,am,fine) = p(I|START) * p(am|I) * p(fine|I,am) p(I,am,fine)=p(I∣START)?p(am∣I)?p(fine∣I,am)
但有個麻煩,就是如果有些詞組合在訓練數據里沒出現過,概率就算不出來。這時候就得用 “平滑” 和 “回退” 來解決。平滑就像是給沒見過的詞也分一點概率,回退則是當高階模型算不出來時,用低階模型來代替。
案例:假設我們有 “學生打開書”、“學生打開筆記本” 這兩句話,如果要算 “學生打開考試” 這句話的概率,發現 “打開考試” 這個組合沒出現過,那就可以用平滑方法,給 “打開考試” 也分配一點概率。
(二)神經語言模型(NLM)
隨著深度學習的發展,神經語言模型登場了。它用神經網絡來學習詞向量,然后預測當前詞。比如,用多層感知機(MLP)把單詞映射到詞向量,再由神經網絡預測當前時刻詞匯。
它的訓練目標函數是:
1 N ∑ i = 1 N log ? p ( w i ∣ w i ? n , … , w i ? 1 ) \frac{1}{N}\sum_{i=1}^{N}\log p\left(w_{i} \mid w_{i-n}, \ldots, w_{i-1}\right) N1?i=1∑N?logp(wi?∣wi?n?,…,wi?1?)
循環神經網絡(RNN)也是神經語言模型的一種。它的基本單元是:
h t = σ ( W h x x t + W h h h t ? 1 + b ) h_t = \sigma(W_{hx} x_t + W_{hh} h_{t-1} + b) ht?=σ(Whx?xt?+Whh?ht?1?+b)
y t = W h y h t + c y_t = W_{hy} h_t + c yt?=Why?ht?+c
它能處理序列數據,就像咱們看文章一樣,前面的詞會影響后面的詞。不過,RNN 有 “短記性”,對離得很遠的詞的記憶會變弱。
案例:用 RNN 來預測下一個詞。比如輸入 “我今天吃了一頓”,它會根據前面的詞來預測下一個詞可能是 “飯”、“美食” 之類的。
(三)預訓練語言模型(PLM)
預訓練語言模型是在大量語料上進行無監督預訓練,然后在特定任務上微調的模型。比如,GPT 系列是自回歸語言模型,它能根據前面的詞生成后面的詞;BERT 是自編碼語言模型,它能理解詞在句子中的含義。
GPT 的目標函數是:
L = ? ∑ i = 1 n log ? p ( w i ∣ w 1 , … , w i ? 1 ) \mathcal{L} = -\sum_{i=1}^{n} \log p\left(w_{i} \mid w_{1}, \ldots, w_{i-1}\right) L=?i=1∑n?logp(wi?∣w1?,…,wi?1?)
BERT 的目標函數是:
L = ? ∑ i = 1 n ( y i log ? p ( w i ) + ( 1 ? y i ) log ? ( 1 ? p ( w i ) ) ) \mathcal{L} = -\sum_{i=1}^{n} \left( y_{i} \log p\left(w_{i}\right) + (1 - y_{i}) \log \left(1 - p\left(w_{i}\right)\right) \right) L=?i=1∑n?(yi?logp(wi?)+(1?yi?)log(1?p(wi?)))
案例:GPT-3 有 1750 億參數,經過海量文本預訓練,能生成各種文本,像寫文章、寫代碼都不在話下。
(四)大語言模型(LLM)
大語言模型是參數規模更大、經過海量數據預訓練的模型。它的特點就是 “大力出奇跡”,能處理各種復雜任務,像問答、生成、翻譯等。
案例:ChatGPT 是大語言模型的代表,它能和人進行多輪對話,回答各種問題,還能寫故事、寫詩。
三、語言模型的 “秘密武器”
(一)模型參數規模
參數規模越大,模型能學到的知識就越多。就像一個學生,讀書越多,知識就越豐富。比如,Chinchilla 模型有 700 億參數,經過 1.4 萬億個詞訓練,雖然比一些大模型參數少,但性能卻很不錯。
(二)數據數量和質量
數據就是模型的 “糧食”,沒有足夠的數據,模型就學不會東西。而且,數據質量也很重要。如果數據里有很多錯誤,那模型學到的東西也會有問題。
案例:有些語言模型用維基百科、新聞文章這些高質量數據來訓練,所以能生成比較準確的文本。
四、未來展望
大語言模型還在不斷發展,未來可能會更智能、更高效。它可能會在更多領域發揮作用,像教育、醫療、金融等。