「NLP」GPT:第一個引入Transformer的預訓練模型
目前兩種最重要的預訓練語言模型,一種是前面介紹過的BERT,另外一種就是GPT。
GPT出了兩個版本,GPT1.0和GPT2.0,GPT2.0相對於GPT1.0差別不大,可以認為是它的增強版。本篇介紹GPT1.0和GPT2.0,看看它於BERT有什麼不一樣。
作者 | 小Dream哥
編輯 | 言有三
1 GPT是什麼
General Pre-Training(GPT),即通用預訓練語言模型,是一種利用Transformer作為特徵抽取器,基於語言模型進行訓練的預訓練語言模型。
所以,理解GPT主要熟悉兩個方面即可,即語言模型和其由Transformer組成的結構。
2 語言模型
一個語言模型通常構建為一句話的機率分佈p(W),這裡的p(W)實際上反映的是W作為一個句子出現的機率。 說成大白話, 語言模型就是計算某個句子出現的機率。
對於一個由T個詞按順序構成的句子,P(W)實際上求解的是字串的聯合機率,利用貝葉斯公式,鏈式分解如下:
從上面可以看到,一個統計語言模型可以表示成,給定前面的的詞,求後面一個詞出現的條件機率。
我們在求P(W)時實際上就已經建立了一個模型,這裡的諸多條件機率就是模型的引數。如果能夠透過語料,將這些引數都學習到,就能夠計算出一個句子出現機率。
GPT的預訓練過程就是利用語料,構造訓練資料,利用上述語言模型,不斷預測,學習引數的過程。
3 GPT模型結構
上述介紹了GPT如何利用無監督語料和語言模型構建任務進行訓練。那麼GPT的網路模型結構長什麼樣呢?訓練過程最佳化的網路,是個怎麼樣的網路呢?我們來看看。
GPT中引入的是Transformer中的解碼器部分,結構如下圖所示:
解碼器與編碼器的差異在於self-attention層上,解碼器加了一層掩碼,這是為了 在自注意力計算的時候遮蔽了來自當前計算位置右邊所有單詞的資訊。試想一下,在上述語言模型中,如果在預測下一個詞時,已經知道下一個詞的資訊了,這不是作弊嗎?這一點是與BERT這種雙向結構不同的地方。
如上圖所示,GPT就是由12個這樣的解碼器堆疊而成,如果看過之前我們分析BERT文章的同學,對這種結構的理解,應該會遊刃有餘了。
這裡還值得一說的是下游任務如何基於GPT預訓練之後進行Finetune。以分類為例,只需在樣本前後分別加上Start和Extract符號,然後輸入GPT,再接上分類器即可進行Finetune或者預測了。怎麼樣?是不是非常的省心?
4 GPT2.0
其實相對於GPT1.0在模型結構和訓練模式上並沒有本質的區別,GPT2.0僅僅是加大了模型結構和訓練語料的規模。
GPT2.0使用了約 1000 萬篇文章的資料集,文字集合達 40GB。這樣訓練出來的語言模型優勢很明顯,比使用專有資料集來的通用性更強,更能理解語言和知識邏輯,可以用於任意領域的下游任務。
還有一個變化是,在GPT2.0中,OpenAI沒有再強調Finetune,也就說,OpenAI認為,只要模型能力夠強,語料夠好覆蓋面夠廣,Finetune的過程其實不是必要的。
5 總結
GPT,特別是GPT2.0是一個大型無監督語言模型,能夠生產連貫的文字段落,在許多語言建模基準上取得了 SOTA 表現。而且該模型在沒有任務特定訓練的情況下,能夠做到初步的閱讀理解、機器翻譯、問答和自動摘要。
OpenAI非常的倔強,一直沿用單向語言模型的思路。這個特點讓GPT2.0的語言生成能力令人驚歎。GPT和BERT是目前為止影響力最大的兩種預訓練語言模型,至今為止,勝負還沒有定論,我們且關注。
GPT是一種非常重要而且成功的預訓練語言模型,後續openAI肯定還會繼續更新他們的工作,對NLP從業者來說,這是非常值得期待的事情,我們拭目以待。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655034/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 加入Transformer-XL,這個PyTorch包能呼叫各種NLP預訓練模型ORMPyTorch模型
- NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASSGPT微軟模型
- 【預訓練語言模型】使用Transformers庫進行GPT2預訓練模型ORMGPT
- NLP領域預訓練模型的現狀及分析模型
- NLP與深度學習(五)BERT預訓練模型深度學習模型
- [Python急救站]基於Transformer Models模型完成GPT2的學生AIGC學習訓練模型PythonORM模型GPTAIGC
- 多項NLP任務新SOTA,Facebook提出預訓練模型BART模型
- 完勝 BERT,谷歌最佳 NLP 預訓練模型開源,單卡訓練僅需 4 天谷歌模型
- 最強NLP預訓練模型!谷歌BERT橫掃11項NLP任務記錄模型谷歌
- 基於Mindspore2.0的GPT2預訓練模型遷移教程GPT模型
- PyTorch預訓練Bert模型PyTorch模型
- 自訓練 + 預訓練 = 更好的自然語言理解模型模型
- 什麼是LLM大模型訓練,詳解Transformer結構模型大模型ORM
- 預訓練模型 & Fine-tuning模型
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- 【預訓練語言模型】 使用Transformers庫進行BERT預訓練模型ORM
- MxNet預訓練模型到Pytorch模型的轉換模型PyTorch
- 文件智慧:通用文件預訓練模型與資料集,推動NLP落地升級模型
- 中文任務全面超越 BERT:百度正式釋出NLP預訓練模型ERNIE模型
- 00 預訓練語言模型的前世今生(全文 24854 個詞)模型
- 讓預訓練語言模型讀懂數字:超對稱技術釋出 10 億引數 BigBang Transformer [乾元]金融大規模預訓練語言模型模型ORM
- CV之後,純MLP架構又來搞NLP了,效能媲美預訓練大模型架構大模型
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- TorchVision 預訓練模型進行推斷模型
- TensorFlow 呼叫預訓練好的模型—— Python 實現模型Python
- keras中VGG19預訓練模型的使用Keras模型
- 預測蛋白質共調控和功能,哈佛&MIT訓練含19層transformer的基因組語言模型MITORM模型
- 新型大語言模型的預訓練與後訓練正規化,谷歌的Gemma 2語言模型模型谷歌Gemma
- 新型大語言模型的預訓練與後訓練正規化,Meta的Llama 3.1語言模型模型
- 新型大語言模型的預訓練與後訓練正規化,阿里Qwen模型阿里
- RoBERTa中文預訓練模型,你離中文任務的「SOTA」只差個它模型
- 「四大模型」革新NLP技術應用,揭秘百度文心ERNIE最新開源預訓練模型大模型
- 模型訓練:資料預處理和預載入模型
- 簡單介紹GPT-3背後的Transformer概念和NLP世界 - towardsdatascienceGPTORM
- 常見預訓練語言模型簡述模型
- Findings | 中文預訓練語言模型回顧模型
- 取出預訓練模型中間層的輸出(pytorch)模型PyTorch
- COLING 2020 | CharBERT:字元敏感的預訓練語言模型字元模型