Share
Embed
事前学習済言語モデルの動向 (2) / Survey of Pretrained Language Models
@東工大・産総研 勉強会
Kyosuke Nishida
February 28, 2020
Transcript
66 slides
-
• 質問に対してテキストを読み解いて回答するタスク 3 BERTが優れた性能を達成したタスクの例︓ SQuAD 1.1 [Rajupurkar (Stanford)+, EMNLP16] ⼊⼒︓テキスト
⼊⼒︓質問 出⼒︓回答 Wikipediaの段落(平均140単語) 無料で公開 クラウドソーシングで作成した 100,000件以上の質問・回答ペア テキスト中の任意の 範囲を抽出して回答 -
• このタスクに特化したニューラルネット構造を持たずに、 ⼈間の質問応答スコアを⼤きく超える性能を達成 4 機械読解 (SQuAD 1.1) で⼈間超え 完全⼀致 部分⼀致
⼈間のスコア 82.304 BERTのスコア 87.433 Jacob Devlin et al.: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. CoRR abs/1810.04805 (2018) https://rajpurkar.github.io/SQuAD-explorer/ -
6 ⾔語モデル研究の加速 https://github.com/thunlp/PLMpapers に追加 ALBERT ICLR 2020 ACL 2019 NeurIPS
2019 EMNLP 2019 T5 BART 2019/10〜 Pegasus ERNIE-GEN ProphetNet Turing-NLG DistillBERT Q8BERT MegatronLM CTRL -
時系列とモデルサイズ [Microsoft, 2020/02/10] https://medium.com/huggingface/distilbert-8cf3380435b5 モデルのパラメータ数 (x1M) BERT-LARGE 340M=3.4億個のfloat値 7 Turing-NLG
17B=170億個のfloat値 https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft/ -
• イントロダクション • モデルの分類とタスク • 初期のモデルについて(〜BERT) • その後のモデルについて(BERT〜) – Bidirectional
LM(BERTタイプ) – Autoregressive LM(GPTタイプ) – Prefix LM(UniLMタイプ) – Encoder-Decoder(T5タイプ) • 今後の展望 8 ⽬次 -
タイプ 主タスク 代表モデル Bi-directional LM NLU BERT, RoBERTa, ALBERT Autoregressive
LM NLU/LM GPT, Turing-NLG Prefix LM NLU/Seq2Seq UniLM Encoder-Decoder NLU/Seq2Seq MASS, BART, T5 9 モデルの分類 " # Bi-directional LM Prefix LM Autoregressive LM " # $ $ " # # $ & $ " # " # " # # $ " # Encoder-Decoder " # $ • 事前学習モデルの構造と適⽤タスクが多様化してきた -
• GLUE – ⽂分類、⽂ペア類似度、⾔い換え、NLI • SuperGLUE – QA、NLI、語義曖昧性解消、共参照解析 • 抽出/選択型の機械読解
– SQuAD 1.0/2.0, RACE • Winograd Schema Challenge NLUの主なタスク " # Bi-directional LM " # $ $ -
• ⾔語モデリング – WikiText-103 – LAMBDA – CBT (Children’s Book
Test) – Enwiki8 – One Billion Word – PTB • Autoregressive LMではZero-shot QA, NMTなども多い 11 Language Modelingの主なタスク Autoregressive LM " # # $ & $ -
• ⽣成型要約: CNN/DM, Xsum, Gigaword, etc. • 機械翻訳: WMT •
⽣成型QA: CoQA • 質問⽣成: SQuAD QG • 応答⽣成: Persona-chat 12 Sequence-to-Sequenceの主なタスク Prefix LM " # " # " # # $ " # Encoder-Decoder " # $ -
• LSTMによる系列分類に、⾃⼰回帰⾔語モデルあるいは系列 オートエンコーダを事前学習して初期値として利⽤ • IMDB、DBPediaのテキスト分類、CIFAR-10の画像分類 14 Semi-supervised Sequence Learning [Dai(Google)+,
NIPS’15, arXiv’15/11] 被引⽤数548 https://papers.nips.cc/paper/5949-semi-supervised- sequence-learning -
• エンコーダとデコーダを⾔語モデルとして個別に事前学習 – アテンション等はFine-tuning時に計算 – Fine-tuning時にも⾔語モデリングの損失で制約を付ける • 翻訳︓News Crawl English
(Encoder) / German (Decoder)(>1B tokens) • 要約︓English Gigaword (Encoder/Decoder) 15 Pretrained Seq2Seq [Ramachandran(Google)+, EMNLP’17, arXiv’16/11] 被引⽤数 131 https://www.aclweb.org/anthology/D17-1039 -
• 3段階の学習︓汎⽤ドメインで事前学習、ターゲットタスクで⾔語モデル をfine-tuning、テキスト分類器として最終のfine-tuning • Fine-tuning時に忘却を防ぐため徐々にunfreezing 16 ULMFit [Howard(fast.ai)+, ACL’18, arXiv’18/01]
被引⽤数 640 https://www.aclweb.org/anthology/P18-1031 -
• ⽂字レベルの双⽅向LSTM⾔語モデル(left-to-rightとright-to-left) • 1B Word Benchmark で学習 • ELMoを特徴ベクトルとしてニューラルモデルで使いSQuAD等で⾼精度 17
ELMo [Peters(AI2)+, EMNLP’18, arxiv’18/02] 被引⽤数2412←1538(※11⽉) https://www.aclweb.org/anthology/N18-1202.pdf ※図はBert論⽂から -
• 12層Transformerの⾃⼰回帰⾔語モデル (left-to-right) – LSTMからTransformerへ、ワードからサブワードへ • BookCorpus (5.5GB程度; 800M words)で学習
18 GPT [Radford(OpenAI)+, TechRep’18/06] 被引⽤数662←382 https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language- unsupervised/language_understanding_paper.pdf -
• Transformerの24層双⽅向⾔語モデル • Wikipedia + BookCorpus (16GB, 3300M words) で学習
– 巨⼤なモデル・多数のデータの流れができる • GLUE, SQuAD等の注⽬タスクで劇的な精度向上 20 BERT [Devlin(Google)+, NAACL’19, arxiv’18/11] 被引⽤数3871←1997 https://www.aclweb.org/anthology/N19-1423.pdf -
• ⽳埋め問題(Masked Language Model) • 次の⽂予測(Next Sentence Prediction)の2タスクで学習 21 BERT
[Devlin(Google)+, NAACL’19, arxiv’18/11] 被引⽤数3871←1997 [CLS] my dog is cute [SEP] he likes play [MASK] [SEP] 2⽂⽬ 1⽂⽬ IsNext my dog is cute [SEP] he likes play piano [SEP] 分類 ⽳埋め 双⽅向 -
• BERTの上にマルチタスク層を追加してファインチューニング することでBERTがより良い表現を獲得 • Scratchから作るのではなく、既存の⾔語モデルをベースにし た研究 23 MT-DNN [Liu(MS)+, ACL’19,
arxiv’19/01] 被引⽤数139←65 https://www.aclweb.org/anthology/P19-1441.pdf 単⽂の分類, 2⽂の分類 など -
• パラレル翻訳コーパスを⽤いて、クロスリンガルに⽳埋めを学習 • エンコーダとデコーダのそれぞれの事前学習として⽤いて(?)、教師無し 翻訳、教師あり翻訳に利⽤ 24 XLM [Lample(Facebook)+, NeurIPS’19, arxiv’19/01]
被引⽤数131←69 英語 フランス語 https://papers.nips.cc/paper/8928-cross- lingual-language-model-pretraining.pdf -
• バイオドメインに特化したBERTを作成 • BERTのweightを初期値として,PubMed, PMCのコーパスにより学習 • バイオ関連のNERやQAにて通常のBERTより⾼い性能 25 BioBERT [Lee(Korea
U)+, BioInfomatics (2020), arxiv’19/01/25] 被引⽤数140 https://academic.oup.com/bioinformatics/arti cle/36/4/1234/5566506 -
• エンティティとフレーズの外部知識を使ってマスクに利⽤ • 中国語タスクで評価 • Whole word masking [google 5/31
on github] に近いイメージ 26 ERNIE 1.0 (Baidu) [Sun+, arXiv’19/04] 被引⽤数30<-19 https://arxiv.org/abs/1904.09223 -
• 知識グラフ(エンティティ)の情報をfusion • GLUEではBERTと同程度だが,知識が必要となるEntity Typing などのタスクでSOTA 27 ERNIE (Tsinghua) [Zhang+,
ACL’19, arxiv’19/05] 被引⽤数36←17 https://arxiv.org/pdf/1905.07129 -
• ⾃⼰回帰(単⽅向)モデルと双⽅向の両⽅の利点を得ることを⽬指す • モデルに⼊⼒するトークンの順序を permutation する • GLUEなどでBERTを超える精度を達成 28 XLNet
[Yang(CMU)+, NeurIPS’19, arxiv’19/06] 被引⽤数325←112 https://papers.nips.cc/paper/8812-xlnet-generalized-autoregressive-pretraining- for-language-understanding -
• i.i.d.ではなく範囲でマスクし,同時に範囲の境界も予測する • 1セグメントにして次⽂予測(NSP)を廃⽌ • 通常のBERTに⽐べて精度向上を確認 29 SpanBERT [Joshi(Washington U,
Facebook)+, arXiv’19/07] 被引⽤数30←11 https://arxiv.org/abs/1907.10529 -
• マルチタスク事前学習 – 単語レベル(知識マスク,⼤⽂字,単語が他のセグメントで出るか) – 構造レベル(⽂の順序,出現場所) – 意味レベル(談話構造,検索) • GLUEでBERT、XLNetを超えてSOTA(リーダーボードには載ってない)
30 ERNIE 2.0 [Sun(Baidu)+, arxiv’19/07] 被引⽤数13←5 https://arxiv.org/abs/1907.12412 -
• BERTと同じ構造で、いろいろな⼯夫を盛り込むことで⼤幅な精度向上 – より⼤きなバッチサイズを使う(256から8192) – より多くのデータを使う(16GBから160GB) – より⻑いステップ数の学習をする(BERT換算で16倍程度) – 次⽂予測(NSP)は不要
• GLUEでBERT、XLNetを超える精度 31 RoBERTa [Liu(Facebook)+, ICLR’20(rejected), arxiv’19/07] 被引⽤数84←22 https://arxiv.org/abs/1907.11692 -
• NSPに変わる学習の⽬的関数を⼯夫 – マスクした上で単語の順番をシャッフルして元に戻す – ランダム・正順・逆順の3種類を分類 • BERTと同サイズ、同データでGLUEでRoBERTa超え 32 StructBERT
(ALICE) [Wang(Alibaba)+, arxiv’19/08] 被引⽤数2←1 https://arxiv.org/abs/1908.04577 -
• テキスト中のエンティティ表現について知識ベースのエン ティティベクトル表現により拡張する – エンティティリンキングも同時学習可能 • エンティティ集合/ベクトルは、Wikipediaコーパスのタイト ルとそのWord2Vecベクトル 33 KnowBERT
[Peters(AI2)+, EMNLP’19, arXiv’19/09] 被引⽤数4 https://www.aclweb.org/anthology/D19-1005.pdf -
• 蒸留により12層BERTを6層に⼩型化(40%減) – BERTの出⼒を教師として、⽣徒(⼩型モデル)が同じ出⼒を出すように学習 – 幅(隠れ層)のサイズを減らすと、層数を減らすよりも悪化 • 推論は60%⾼速化、精度は95%程度保持 34 DistilBERT
[Sanh(Huggingface)+, NeurIPS WS’19, arxiv’19/10] 被引⽤数10←2 https://arxiv.org/pdf/1910.01108.pdf https://medium.com/huggingface/distilbert-8cf3380435b5 -
• 精度を落とさずfine-tuning時にBERTを8bit整数に量⼦化 – Embedding, FCは8bit化,softmax, Lnorm, GELUはFP32をキープ • モデルサイズ1/4, 速度
3.7x 35 Q8BERT [Zafrir(Intel)+, NeurIPS WS’19, arXiv’19/10] 被引⽤数3←1 https://arxiv.org/abs/1910.06188 -
• BERTの層のパラメータをすべて共有することで学習を⾼速化 – Largeを超えたモデルは学習が難しいため、表現⼒は落ちるが学習し易くした • 単語埋め込みを低次元にすることでパラメータ削減 • 次⽂予測を、⽂の順序⼊れ替え判定に変更 • GLUE,
RACE, SQuADでSOTAを更新 36 ALBERT [Lan(Google)+, ICLR’20, arxiv’19/09/26] 被引⽤数48←3 https://arxiv.org/abs/1909.11942 -
パラメータ共有 • BERT base (110M) の場合,12層のパラメータ数は85M • 各層で共有すれば,7.08Mまで削減 37 ALBERT
[Lan(Google)+, ICLR’20, arxiv’19/09/26] 被引⽤数48←3 ALBERTでは 各層でパラメータを 共有する -
Embedding Factorization • BERT base (110M) の場合,単語埋込のパラメータ数は24.5M • ALBERTではBottleneck構造することで3.93Mまで削減 38
ALBERT [Lan(Google)+, ICLR’20, arxiv’19/09/26] 被引⽤数48←3 V = 30000 H=768 E=128 -
Sentence Order Prediction (SOP) • BERTの次⽂予測(NSP)は,他の⽂書から負例を持ってくる ので,トピック判定に近く,問題が簡単になっている • 同⽂書の中の連続するセグメントの順序の⼊替え判定をする 39
ALBERT [Lan(Google)+, ICLR’20, arxiv’19/09/26] 被引⽤数48←3 [CLS] my dog is cute [SEP] he likes play [MASK] [SEP] 2⽂⽬ 1⽂⽬ 正順? my dog is cute [SEP] he likes play piano [SEP] 分類 ⽳埋め -
• ⼊⼒形式: 1系列2セグメント.画像領域表現+キャプション単語 • ⾔語表現モデル: BERT (base or large) •
画像表現+領域検出モデル: Faster-RCNN • 事前学習データ: COCO, Visual Genome, Conceptual Captions, SBU Captions • 事前学習タスク: Masked LM,Masked ROI 特徴回帰&意味クラス分類(KL最⼩化), テキスト-画像マッチング • 評価: VCR, VQA, Flicker30k, NLVR, SNLI-VE, RefCOCO+(全タスクで現在のSOTA) UNITER [Chen(Microsoft) +, ICLR20(rejected), arXiv19/09/25] 被引⽤数12←3 https://arxiv.org/abs/1909.11740 40 -
• 系列⻑に制限のあった既存モデルに対して、セグメントレベルの再帰を ⼊れることにより⻑い系列を扱えるように改善 • 24層Transformer、アテンション可能な範囲は学習時384〜784, 評価時1600 〜3800程度に設定して実験 43 Transformer XL
[Dai(CMU) +,ACL’19, arxiv’19/01] 被引⽤数226←112 https://arxiv.org/pdf/1901.02860.pdf -
• 48層Transformerの⾃⼰回帰⾔語モデル(構造はGPTと同じ) • WebText (40GB程度)で学習 • 特別な訓練なしに(zero-shot)翻訳,QAが可能 44 GPT-2 [Radford(OpenAI)+,
TechRep’19/02] 被引⽤数317←153 https://d4mucfpksywv.cloudfront.net/better-language- models/language_models_are_unsupervised_multitask_learners.pdf -
• ドメイン、⽇付、著者などを条件とした⽣成を可能にした GPT(トークンで条件付け) • フィールドτの情報は<start-τ><end-τ>で囲んで系列に追加して 与える • Common Crawlから収集したRealNewsデータセット(120GB) で学習
46 Glover [Zellers(Washington U)+, NeurIPS’19, arxiv’19/05] 被引⽤数34←10 https://papers.nips.cc/paper/9106-defending- against-neural-fake-news -
• 条件付⾔語モデル.条件となる制御テキストを本⽂の前に与 えて学習. • 48層/1280次元Transformer(パラメータ数1.6B) 48 CTRL [Keskar(Salesforce)+, Tech.Rep’19/09] 被引⽤数14←3
https://einstein.ai/presentations/ctrl.pdf -
• 72層、隠れ状態サイズ3072、⻑さ1024(パラメータ数8.3B; BERTの24倍の サイズ) • モデル並列化を使って174GBのテキストを512GPUで9.3⽇で学習 • 数⾏のPyTorchコード追加で8モデル並列、64データ並列を実現 49 MegatronLM
[Shoeybi(NVIDIA)+, arxiv’19/10] 被引⽤数7←3 https://arxiv.org/pdf/1909.08053.pdf -
• TransformerにおいてMLPとSelf-Attentionをモデルを分割して並列化する – MLP: レイヤーの重みA, Bを分割する – Self-Attention: Query, Key,
Valueをヘッドに沿って分割する 50 MegatronLM [Shoeybi(NVIDIA)+, arxiv’19/10] 被引⽤数7←3 https://arxiv.org/pdf/1909.08053.pdf -
• 対話応答⽣成に特化した事前学習.マルチターン対話を⻑い1テキストと して,その後に続く発話を⽣成 • GPT-2をベースにし,Redditコメント対話147万件(1.8B単語)で追加学習. • DSTC-7では⾃動評価で⼈間より⾼いスコア 51 DialoGPT [
Zhang(Microsoft)+, arxiv’19/11] 被引⽤数3 https://arxiv.org/abs/1911.00536 -
• 78層、4256次元Transformer。パラメータ数17B • 学習にDeepSpeedライブラリを利⽤。オプティマイザZeRO [NeurIPS’19] のデータ並列化とMegatronLMのモデル並列化を 併⽤ 52 Turing-NLG [Rosset(Microsoft)+,
blog’20/02/10] https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft/ https://www.microsoft.com/en-us/research/blog/zero-deepspeed-new-system-optimizations-enable-training-models-with-over-100-billion-parameters/ -
• ZeROはオプティマイザ状態、勾配、パラメータの3つを分割してメモリ 量を削減 – GPU数に応じて線形にメモリ削減が可能 • 7.5Bモデルを64GPU/Adamで学習する際、120GB→1.9GBまで削減 53 Turing-NLG [Rosset(Microsoft)+,
blog’20/02/10] https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft/ https://www.microsoft.com/en-us/research/blog/zero-deepspeed-new-system-optimizations-enable-training-models-with-over-100-billion-parameters/ -
• アテンションのマスクの⼊れ⽅で単⽅向・双⽅向・Seq2Seq を1モデルで制御 • CNN/DMなどでSOTA 55 UniLM [Dong(Microsoft)+, NeurIPS’19, arxiv’19/05]
被引⽤数36←16 https://arxiv.org/abs/1905.03197 -
• Seq2seq事前学習.複数Fragmentの⽳埋め学習.WordとSpanの両レベルを 考慮.⼈⼯トークンを使ってexposure biasを軽減. • 16GBの事前学習のみで,CNN/DM, GigawordsなどでSOTAに近い精度を達 成.QGやPersona chatでもSOTA 56
ERNIE-GEN [Xiao (Baidu)+, arXiv’20/02/04] 被引⽤数0 https://arxiv.org/abs/2001.11314 -
• Targetと同じ⻑さの⼈⼯トークン系列を利⽤.アテンション のQueryに⼈⼯トークンを使うことで,直前のトークンに注 視しすぎるのを防ぐ. • Decode時も⼈⼯トークンを利⽤して⽣成 57 ERNIE-GEN [Xiao (Baidu)+,
arXiv’20/02/04] 被引⽤数0 https://arxiv.org/abs/2001.11314 -
• Encoder-Decoder型の⽣成モデルのための事前学習 • ⼊⼒から1つの範囲をマスクして,decoder側ではマスクされ た部分を予測 • 教師なし翻訳 newstest2014 En-FrなどでSOTA 59
MASS [Song(Microsoft)+, ICML’19, arXiv’19/05] 被引⽤数56←26 http://proceedings.mlr.press/v97/song19d/song19d.pdf -
• NLPタスクを全てText-to-Textとして扱い,Enc-Dec Transformer を745GBのコーパスで事前学習して転移する(Text-To-Text Transfer Transformer) • モデルはEncoder-decoderのTransformer 60 T5
[Raffel(Google)+, arXiv’19/10/23] 被引⽤数37←0 https://arxiv.org/abs/1910.10683 -
• 学習タスクをエンコーダデコーダに合わせて変更 • エンコーダ側で範囲を⽋落させて,デコーダ側で予測 • GLUE, SuperGLUE, SQuAD 1.1, CNN/DMでSOTA更新
61 T5 [Raffel(Google)+, arXiv’19/10/23] 被引⽤数37←0 https://arxiv.org/abs/1910.10683 -
• Seq2Seq事前学習として,トークンマスク・削除,範囲マス ク,⽂の⼊替,⽂書の回転の複数タスクで学習. • CNN/DMでT5超え,WMT’16 RO-ENで逆翻訳を超えてSOTA 62 BART [Lewis(Facebook)+, arXiv’19/10/29]
被引⽤数7←0 http://arxiv.org/abs/1910.13461 -
• Seq2seq事前学習モデル.各時刻でn-gramを予測.セルフア テンションをn-gramの各要素ごとに⽤意したstreamで実施 • CNN/DM, GigawordsなどでPegasus LARGEと同程度 66 ProphetNet [Yan(Microsoft)+,
arXiv’20/01/13] 被引⽤数0 https://arxiv.org/abs/2001.04063