EMNLP 2020 High Performance NLP Tutorial メモ

2 min読了の目安(約1900字IDEAアイデア記事

書きかけメモ。
スライドは


で公開されています。

Introduction

  • なぜ High Performance NLP が必要なのか?
    • データ数がどんどん増えてるから(SNSなど)
    • サイズが増えても効率的にリアルタイムで動かす必要がある
  • 具体例
    • ニュース記事の見出しの要約
    • Facts Extraction
    • 感情分析

Recent years...

  • モデルが指数的に大きくなっている

  • naive scaling (単純にモデルサイズを大きくすること)のよくない点

    • 実用システムで使いづらい
    • 費用がかかる
    • GPU にはなかなかアクセスしづらい...
  • 効率性を追求する必要がある!→この Tutorial のテーマ

    • core techniques
      • Knowledge Distillation
      • Quantization
      • Pruning
    • efficient attention
    • ケーススタディ
    • 実用的なスケーリング

Fundamentals

  • seq2seq
    • 系列から系列への変換
      • 機械翻訳
      • 感情分析
      • 言語モデル
      • 音声認識
  • RNN
    • 任意の長さの系列を入力に取れる
    • encoders and decoders
    • encoders の出力のベクトルだけを使って decode するのには限界がある
  • Attention
    • encoders の各状態も見ることができる
    • 入力 i0,...ini_0, ... i_n とクエリ qq から重み付きの出力を得る
    • 入力とクエリの内積を取って softmax を取ったものを attention weight にする
  • Transformers
    • sequential な計算から parallel な計算へ
    • self-attention
      • K,V,QK, V, Q を入力に取る
      • QQKK の内積を取って softmax を取ったもので VV を重み付けする
      • ただし、次元の dd の平方根で重みをスケーリングする(数値安定のために)
      • 計算量は、系列の長さを ll として、l×ll \times l 必要
    • multi-head attention
      • attention head の数で分割する
      • いずれにしろ系列の長さの二乗の計算量が必要になる
    • positional encodings
      • 固定することも学習することもある
    • The transformer encoder & decoder
      • decoder では masked multi-head attnetion を使う
      • まだ出力していない部分に注目しないため
    • 非常に幅広い分野でうまくいっている(最近では Vision Transformer も)
    • 3つのユースケースがある
      • Pre-training
        • 大きなコーパスで教師無しで学習(MLM など)
        • GPU や TPU で学習
      • Fine-tuning
        • より小さなコーパスで教師ありで学習
        • GPU や TPU で学習
      • Production
        • 推論用に使う
        • CPU やモバイルデバイスで動かす

Core Techniques

  • Knowledge Distillation
    • Teacher(大きなモデル)から Student(小さなモデル)へ
    • Teacher の出力を Student の教師として使う
    • いつ使うか?
      • Pre-training
        • DistilBERT
          • student は layer の数が小さい
        • MobileBERT
          • layer の数は同じだが埋め込み次元が小さい
      • Fine-Tuning
      • 双方のタイミングで
  • Quantization
    • 量子化
    • 直線量子化
    • Q8BERT, Q-BERT
  • Quantization with Distillation