從BERT到GPT模型帶您綜觀大型語言模型(LLM):編碼器(Encoder-only),編碼器解碼器(Encoder-Decoder),解碼器方法(Decoder)

為什麼要介紹此篇文章?

現今大家關注的是GPT的模型,GPT模型是大型語言模型發展數年之後逐漸較確定的結果,事實上大型語言模型是有一定的開發歷史脈絡,大家分別用不同方法進行開發,有些方法逐漸變熱門變成主流,而其他有些方法逐漸沒落,本篇文章欲提供簡單與全面的角度,讓大家快速對大型語言模型發展的整體脈絡有一定的認識。

大型語言模型開發方法

大型語言模型在開發的過程中,存在有三種方法,分別是基於編碼器(encoder-only)、基於編碼與解碼器(encoder-decoder)、基於解碼器(decoder-only)的方法,各自有各自的特色,基本上研究人員就是各自基於這些方法去做開發,整個發展脈絡就會從早期較有名的BERT模型到現在最有名的GPT模型,這些模型背後基於的方法也都大不相同,以下帶您了解這三種方法的介紹。

對於大型語言模型而言,存在三種開發方法,分別是基於編碼器
(encoder-only)、基於編碼與解碼器(encoder-decoder)、基於解碼器(decoder-only)。

編碼器(Encoder-only)

首先,大型語言模型基於編碼器(encoder-only)的方法,主要就是接受來自於原始資料(如文字),編碼後進行特徵萃取,最終可得到文字嵌入表示法(word embedding),文字嵌入表示法就代表這個原始資料的關鍵特徵。這個好處是機器不懂文字,若有文字嵌入表示法,則可讓機器更了解文字的意義為何?之後再將此表示法使用到後續的應用當中。

大型語言模型的編碼器(encoder-only)主要是在做特徵萃取,也就是將文字萃取成文字嵌入表示法(word embedding),文字嵌入表示法就代表這個文字的關鍵特徵。

例如: 針對文字分類任務,給定一段文字,像是這部電影非常好看,直接給機器看這段文字,機器是沒有辦法了解這段文字的意思,但是透過編碼器方法,就能萃取出相對應的文字嵌入表示法(也就是一串數字),此表示法代表這段文字的關鍵特徵,換句話說,就是可讓機器了解這段文字的意義,然後就可提供給下游任務進行微調,像是可以結合分類器去辨別文字是正面或負面評價。

例如: 針對文字分類任務,給定一段文字,編碼器就能萃取出相對應的文字嵌入表示法,此表示法代表這段文字的關鍵特徵,可提供給下游任務進行應用,像是可以結合分類器去辨別文字是正面或負面評價。

編碼器解碼器(Encoder-Decoder)

第二種是大型語言模型的編碼器解碼器方法,同時存在編碼器與解碼器就可以將原始資料做特徵萃取後,再將這個特徵還原成原始資料。換句話說,作法上是輸入一段文字後,待機器藉由編碼器理解之後,再用解碼器生成相對應的文字描述。

同時有編碼器與解碼器就可以將文字做特徵萃取後,再將這個特徵還原成文字。

例如在機器翻譯裡面,給定一段中文,在編碼器中機器會先做特徵萃取,理解中文的意思,理解完之後,再將這段文字轉換成英文。

例如在機器翻譯裡面,給一定中文,機器會先做特徵萃取,理解中文的意思,理解完之後再去還原成文字本身,像是可輸出英文。

解碼器方法(Decoder)

第三種是大型語言模型的解碼器方法,主要做法是給定提示,根據這個提示產生相對應文字。有點像是在玩文字接龍,給一定文字輸入,機器就想辦法給定另一段文字回應。

主要作法為給定提示,根據這個提示產生相對應文字。

例如,在輸入給定一段提示,像是幫我寫一首戰爭的詩,最終就會產生一首戰爭的詩。

例如,在輸入給定提示,像是給我一首戰爭的詩,最終就會產生一首戰爭的詩。

綜合比較

以下為總體的比較表格

1.對於模型輸出而言,編碼器為文字嵌入表示法,其他兩種則是輸出皆為文字。

2.對於編碼器而言,他必須搭配下游的任務進行微調才能看到具體的應用成果。

3. 對於編碼器解碼器,主要是處理較複雜的文字對文字的任務,就像翻譯任務,機器如果沒有真正理解文字的意義,就會很難翻譯的好。

4.對於解碼器而言,在做的事情較像文字接龍,給定一段描述,生成另一段文字描述。

5.在發展情形的部分,基於編碼器方法發展就較為停滯,目前持續有在發展的是編碼器解碼器與解碼器方法,其中又以解碼器為主流。

1.對於模型輸出而言,編碼器為文字嵌入表示法,其他兩種則是輸出皆為文字。
2.對於編碼器而言,他必須搭配下游的任務進行微調才能看到具體的應用成果。
3. 對於編碼器解碼器,主要是處理較複雜的文字對文字的任務,就像翻譯任務,機器如果沒有真正理解文字的意義,就會很難翻譯的好。
4.對於解碼器而言,在做的事情較像文字接龍,給定一段描述,生成另一段文字描述。
5.在發展情形的部分,基於編碼器方法發展就較為停滯,目前持續有在發展的是編碼器解碼器與解碼器方法,其中又以解碼器為主流。

[參考資料]:

1.Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

[類神經網路基礎系列專文]:

1.類神經網路(Deep neural network, DNN)介紹

2.類神經網路—揭開網路架構調整秘辛

3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?

4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索

5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理

6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握

7.類神經網路—前向傳播法

8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法

9.類神經網路—反向傳播法(二): 淺談梯度

10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法

11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗

12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感

[機器學習基礎系列專文]:

1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

2.機器學習面臨的問題種類介紹:回歸與分類

[類神經網路延伸介紹]:

1.卷積類神經網路(Convolution neural network,CNN)介紹

2.遞迴類神經網路(Recurrent neural network,RNN)介紹

[ChatGPT系列專文]:

1.淺談最近非常火紅的ChatGPT背後可能原理機制為何?

2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧