@toc
項目地址
https://github.com/datawhalechina/learn-nlp-with-transformers/
- 2017年,Attention Is All You Need論文(Google Brain)首次提出了Transformer模型結構并在機器翻譯任務上取得了The State of the Art(SOTA, 最好)的效果。
- 2018年,BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (Google AI Language lab)使用Transformer模型結構進行大規模語言模型(language model)預訓練(Pre-train),再在多個NLP下游(downstream)任務中進行微調(Finetune),一舉刷新了各大NLP任務的榜單最高分,轟動一時。
- 2019年-2021年,研究人員將Transformer這種模型結構和預訓練+微調這種訓練方式相結合,提出了一系列Transformer模型結構、訓練方式的改進(比如transformer-xl,XLnet,Roberta等等)。如下圖所示,各類Transformer的改進不斷涌現。
現在較為流行的基于transformer模型,基本你都可以在hugging/transformer庫中找到并直接使用。
2.1 圖解attention
問題:Attention出現的原因是什么? 潛在的答案:基于循環神經網絡(RNN)一類的seq2seq模型,在處理長文本時遇到了挑戰,而對長文本中不同位置的信息進行attention有助于提升RNN的模型效果。
于是學習的問題就拆解為:1. 什么是seq2seq模型?2. 基于RNN的seq2seq模型如何處理文本/長文本序列?3. seq2seq模型處理長文本序列時遇到了什么問題?4.基于RNN的seq2seq模型如何結合attention來改善模型效果?
2.1.1 Seq2seq框架
seq2seq是一種常見的NLP模型結構,全稱是:sequence to sequence,翻譯為“序列到序列”。顧名思義:從一個文本序列得到一個新的文本序列。
典型的任務有:機器翻譯任務,文本摘要任務。谷歌翻譯在2016年末開始使用seq2seq模型,并發表了2篇開創性的論文。
首先看seq2seq干了什么事情?seq2seq模型的輸入可以是一個(單詞、字母或者圖像特征)序列,輸出是另外一個(單詞、字母或者圖像特征)序列。一個訓練好的seq2seq模型如下圖所示(注釋:將鼠標放在圖上,圖就會動起來):