🥂

NLP News #3

【1】sMLP: Efficient Language Modeling with Sparse all-MLP (担当: Kazuki Hirataさん)

概要

  • all-MLPでの言語モデルに関する研究(ACL2022)
  • gMLP(ゲート付きMLP)の派生手法
  • baselineに比べて、学習効率をUP!精度向上!

問題

  • MLPベースの手法はTransformerベースの手法に代わるかもしれない、と話題になっているものの、現状下流タスクではまだ課題あり
  • Transformerに比べて、特に表現力の点で、MLPベースの手法は劣っている → 言語モデルのパラメータを増やしたい
  • Transformerのような入力層全てに同じパラメータを使用する手法(論文内では、dense models、または dense Transformerと記載)では、パラメータを増やした時の学習の計算コストが高い
    • 「モデルサイズ」、「データセットサイズ」、「計算量」に関してべき乗で計算量が増える
  • Switch Transformerで採用されているMoE(Mixture of Experts)という手法に着目
    • MoEでは、入力トークンによってパラメータを切り替える
    • パラメータ数を大幅に増やしつつ計算量を抑える

提案

  • gMLPに、MoEの機構を追加したsMLPという手法を提案
    1. image
    2. sMLPのsparse blockには、tMoEとsMoEという二つのモジュールがある
    3. image
    4. xijのiはtoken、jは次元のindexを示しています
    5. tMoEはTransformerのFFNに相当するもので、入力トークンを各エキスパートに送ります
    6. sMoEはself-attentionに相当するもので、gMLPのSpatial Gating Unitが使われています。の特徴ベクトルをエキスパートに送る
    7. routerは入力トークンをどのエキスパートに送るかを決めてくれます

結果

  • baseline
    1. image
    2. Gshard (Lepikhin et al., 2020)
    3. Switch Transformer (Fedus et al., 2021)
    4. Base Layers (Lewis et al., 2021)
    5. HASH Layers (Roller et al., 2021)
  • 実験にはRoBERTaのデータセットを使用
  • image
  • 学習効率
    1. image
    2. perplexityに関しては、小規模モデル、大規模モデル共にBaselineに比べ向上
    3. 学習時間に関しては、大規模モデルではHASH Layersに劣るものの112時間と高速
  • 精度
    1. image
    2. 課題とされていた言語モデルの表現力の指標として、zero-shot学習能力を評価
    3. 6つの下流タスクにおいて評価し、その内5つのタスクでGPT-3を上回る結果
    4. また、GPT-3では300B程のtokenを事前学習していますが、sMLPでは100B程のtokenによる事前学習で上記の精度を達成

備考

  • gMLPとswitch Transfomerを先に読んでおくと、理解が楽ですね、、

【2】GopherCite: Teaching language models to support answers with verified quotes (担当: 萩原誠さん)

  • まとめ
    • より信頼度の高いQA用のモデルを実現するために、根拠となる情報を掲示した上で回答するQAタスク(SQA:=self-supported question answering)に取り組んだ。
    • SQAを行うモデルとして、Gopher系のモデルをベースとして、外部の検索結果の複数の記事をpromptとして入力に組み込み、inline evidence syntaxという形式の主張と引用文からなる文字列を出力とするモデルGopherCiteを提案した。
    • なお、引用する複数の記事について、入力に使う文章の文字数の配分をいくつかのケースに分けることにより複数の出力サンプルを作成し、reward modelによるrankingで最も高いものを最終的な回答文とする。
    • human-in-the-loopによりモデルを学習させることで既存の手法よりも質の高い回答文を生成できることを実験的に示した。
    • 一方で現実世界における事実を言及したかという観点での評価は低かった。この点については引用記事の性質に起因する要因が色々とあり今後の課題となっている。
  • タスク:SQA(self-supported question answering)
    • 質問に対して根拠となる文章をつけて回答するQAタスク
image
  • 手法
    • inline evidence syntaxという形の出力を行うモデルを学習させる
    • inline evidence syntax  %<主張>%(根拠となるドキュメントのタイトル)%[引用文]% という形式の出力
    • 回答文の生成は以下のプロセスで行う
      1. 質問文を元にgoogle検索で上位Kの文書を取得
      2. 文書と質問文を生成器に入力して、回答サンプルをN個作成する
      3. N個のサンプルをrewar modelでスコアリングして一番良いスコアのものを使用するサンプルとする
      4. inline evidence syntaxの出力文を表示する際に適当な処理を加えて回答文にしてやる
      image
  • generatorのベースはGopher系のモデルを使用
  • 学習方法
    • 以下の図にあるstepで学習を回す。なおstep1~4は何度かループを実施する
      • step1:その時点のモデルでサンプルを生成して人間のアノテーションデータを作成する(2回目のループ以降ではデータを追加していく)
      • step2:教師あり学習でfine-tuning、fine-tuningでは検索結果, 質問文, Answer:からなるpromptを用いて入力としてsyntaxの形式の出力を行えるように学習させる
      • step3:step1で作成されたアノテーションデータをもとに報酬モデルを学習させる。これは二つの回答例のどちらが良いかを分類するためのモデルとして学習させて、出力をstep4の強化学習の際の報酬関数とする
      • step4:A2C+KL項(step3のモデルと現在のモデルの次のtokenの分布に関する)を目的関数として強化学習を実施する。
      image
      image
  • 回答の拒否
    • 生成したサンプルの報酬スコアが一定以下だった場合には回答しないという選択を行う
  • データセット
    • Natural QuestionsとELI5
      • ただしデータに対してフィルタリングをかけてデータセットの質を改善している
    • Syntax生成の学習ためのデータセット
      • ELI5, Natural Questionsなどの記事から質問を作成して、Gopher+promptで回答例を作成
      • 回答例のうち、人間が質が担保されていると判断したものを学習用のデータセットとする。(これ自体は既存研究のアプローチ)
  • 実験概要
    • フィルターをしたNatural QuestionsとELI5に対して評価(データ分割は当然実施してる)
    • 評価は主に以下の2点で評価
      • plausible 質問に対する回答として妥当か?
      • supported 提供されたエビデンスが回答の有効性を保障できているか?
    • これとは別にTruthfulQAで以下の2点についてモデルを評価
      • informative 質問に対する不確実性を減らすような情報を提供する
      • truthful 主張が現実世界について文字通り正しいことを記述している
    • ablation studyや既存手法との比較も実施はしてるが割愛
  • 実験詳細
    • 基本的に
      • NaturalQuestions
      • ELI5
    • ただしこれらに以下の工夫をなす
      • train-testの重複をなくす
      • short answerとlong answerの両方に何らかの回答が含まれるものだけを抽出
      • redditの回答にURLリンクが含まれないものを除去
      • “reddit.com/r/eli5”が含まれるものは人間の解答を繰り返すだけになることで生じる交絡を回避するために除去
      • 長すぎるor短すぎる回答文を含むケースを削除(分位点の5以下または95以上のものを全て除去)
    • 実験で比較手法として使用されているアプローチ名と各説明
      1. image
      2. Gold
        • claimをshort answerのアノテーションデータ
      3. GoldEvidence
        • supporting evidenceをlong answerのアノテーションデータ
      4. RandomSentence
        • wikipediaのデータセットからランダムに文を取得する
      5. TF-IDF
        • 質問文とのTF-IDFで一番近いものを取得
      6. FiD-DPR
        • 既存手法
      7. SFT
        • 教師ありによるfine-tuning
      8. RL
        • 強化学習部分まで含めた提案手法
      9. sampling
        • first answer
          • 一サンプルを作成してそれを使用する
        • top@K
          • Kのサンプルを作成して報酬が最大のものを取得する
    • 人間による評価
      1. image
      2. 左側 Natural QuestionsでGold+GoldEvidenceとの回答例がどちらがいいかを人間に評価してもらった場合の結果
      3. 右側 ELI5でURLの参照先とrateが最高のredditの回答文のペアと比較して人間に評価してもらった場合の結果
    • 回答をどの程度拒否するかにより回答文の性能がどの程度変化するかを検証する
    • image
    • 回答例と評価のペアのサンプル
    • image
    • サンプリング数に対する報酬の最大値となるサンプルのplausibleとsupportedの評価の推移
    • image
    • 教師あり学習のみの場合と強化学習を使った場合の性能比較
      • サンプリング数に対する報酬の最大値となるサンプルのplausibleとsupportedの評価の推移で比較
      • image
    • モデルのサイズを変化させた場合における性能の比較
    • image
    • TrustfulQAにおける評価
    • image
  • 結果
    • Natural Questionsに対して80%, ELI5に対して67%で質の高い回答であると評価された
    • 回答の拒否を加えた場合はいずれも70%の質問に回答したが、そのうち、Natural Questionに対しては90%, ELI5に対しては80%で質の高い回答であると評価された
    • TruthfulQAではinformativeは高いもののtruthfulはとても低い結果になった
  • 考察
    • 手法が既存のアプローチよりも回答文の質がより高いものを生成できている
    • 一方で回答が現実の事実に則しているかという観点については低い評価となった(比喩や皮肉や空想の世界についての言及は全てその観点ではアウトになる)
    • 学習時のデータは現実の事実という観点を反映していなかった
    • そもそも引用記事の性質に対する諸問題が色々と存在する

【3】Chinchilla, DeepMind (担当: fujiki @ELYZA Inc)

1. 概要

  1. 言語モデルの性能向上の法則に「スケーリング則」があり、
    1. モデルサイズ
    2. データ量
    3. 学習量
    4. を大規模化する取り組みがされてきた。

      このとき、あらためて、

      「学習に使える計算量が与えられた下で、

       モデルサイズと学習に使うデータ量はどのようにバランスさせるべきか?

      という問いに答えたい。

  2. 実際に、
    1. モデルサイズとデータ量を変化させ、
    2. それぞれが変化した際にモデルの性能 (損失) がどう変化するかを実験的に求め、
    3. それらの関係をデータサイエンス的に推定 (し直) した。
    4. 結果、モデルサイズはデータ量と等倍に増やすべきであるという結論を得た。

  3. その結論にしたがい、70B のパラメータからなる言語モデル Chinchilla を開発、
  4. Chinchilla (70B) はその4倍のモデルサイズの Gopher (280B) を超える性能を示した。

1.5 関連

  1. DeepMind の巨大言語モデル Gopher (280B)
  2. 公式の紹介ブログにある対話例などで、なかなか賢さを見せ (つけ) てくるフレンズ
  3. image
    - 数学系は割りと間違える。
    - 数学系は割りと間違える。

2. 問題

  1. 「スケーリング則」の発見以降、
    1. GPT-3 (175B)、
    2. Jurassic-1 (178B)、
    3. Gopher (280B)、
    4. Megatron-Turing NLG (530B) のように、言語モデルは巨大化してきた。
      • 中国のモデルには 1T (1兆) パラメータを持つものもあるという。
      • 日本でも LINE社 で 最大 204B パラメータを持つ HyperCLOVA の開発が (計画) されているという。
  2. モデルサイズの増加ばかりが関心事であったが、はたしてその考えによるモデルの開発は最適なのか?
    • 学習に使える計算量はあらかじめ定まっていることも多い。
    • その計算量を最適に活用するには、モデルサイズとデータ量の関係はどうあるべきか?
  3. 大元の「スケーリング則」について、もう少し詳しく。
  4. image

3. 提案

  1. 一定の計算量という制約の下、性能を最大 (=損失を最小) にするモデルサイズとデータ量の関係を実験的に求め、最適な推定を算出した。
    • 3種類のアプローチで実験値を得て、推定した。
    • どのアプローチでもだいたい似た結論となったと報告されている。
  2. その結果、「モデルサイズ・データ量を等倍に増加すべき」という発見を得た。
  3. この推定によれば、既存の巨大言語モデルはモデルがオーバーサイズであると言える

    (Figure 1)

    image
  1. 以上で見出された「モデルサイズ・データ量を等倍に増加すべき」という知見に基づき、70B パラメータからなる言語モデル Chinchilla を開発
    • Chinchilla (70B) は 2021年末に発表された DeepMind の巨大言語モデル Gopher (280B) の 1/4 のモデルサイズ
    • 一方、データ量は4倍に増やした。

4. 評価

4.1. 言語モデリング性能

  1. データセット中のテキストをどれほど “正確に” 予測できるかという問題。
    • 低いほど良い。
  2. Chinchilla (70B) は Gopher (280) と比較して、データセットを構成するすべてのテキストジャンルで、言語モデリング性能を向上させた (=下げ幅がある; Figure 5)。
  3. image

4.2. MMLU

  1. MMLU とは Massive Multitask Language Understanding という言語理解タスク。
    • 自然科学・社会科学・人文科学などの学問分野で、複数の選択肢から正解を解答するという問題。
    • 出題例:
    • image
  2. Chinchilla (70B) が GPT-3 (175B) や Gopher (280B) といった巨大言語モデルを押さえ、SOTA を更新した。
    • 特に、過去にされた性能達成の予想を超えてくる結果に。
    • image
  3. Chinchilla (70B) を Gopher (280B) と詳細に比較。
    • 一部 性能向上が見られていない分野もあるが、おおむね全ての分野で Gopher を上回った。
    • image

5. まとめ

  1. 言語 AI の性能向上則である「スケーリング則」が見直された
  2. 実際、100B オーダ (1,000億オーダ) のパラメータを持つ言語モデルではなくても、高性能を得られることが示された。
    • とはいえ、Chinchilla のような 10B オーダのモデルを開発することもまだまだ大変ではあるが...
  3. また、データセットの有用性が (あらためて) 確認された。
    • 日本語のテキストデータセットが拡充している。
      • 特に、評価用データセットとして、日本語の QA データセットの整備が進んできている。
  4. 「スケーリング則」の見直しにより、今後これまでとは別の方向で NLP が発展する可能性が示唆される。

6. 参考文献

  • 主要なもののみ掲載します。漏れがあっても、意図して引用を省いたものではないことをご容赦ください。
  1. Training Compute-Optimal Large Language Models
  2. Scaling Language Models: Methods, Analysis & Insights from Training Gopher
    1. 関連ブログ: Language modelling at scale: Gopher, ethical considerations, and retrieval
  3. Measuring Massive Multitask Language Understanding
  4. 「スケーリング則」や「大規模汎用言語モデル GPT-3 」の基本については、アイシア=ソリッドプロジェクトの動画シリーズも参考になります。
    1. スケーリング則
    2. GPT-3

【4】Efficient Classification of Long Documents Using Transformers (担当: ELYZA Akira Sasaki (hikomimo))

  • 概要
    • 長いドキュメントを対象とした分類のためのモデルが、近年そこそこ提案されている
    • しかし、それらの論文ではベースラインやデータセットが統一されておらず、横並びでの評価が出来ていなかった
      • BERTやRoBERTaのシンプルなベースラインとの比較で、他の既存手法と比較されていなかったり...
    • 各手法を多様なデータセットで検証し、このタスク向けの複雑なモデルでもシンプルなベースラインに負けることがよくあることを確認
  • 比較対象手法 (以下の各カテゴリで1手法ずつ検証している)
    • 1) document truncation
      • 最初の512トークンで切って分類
      • 論文中ではシンプルなBERTを検証
      • 加えて以下手法を検証
        • BERT+TextRank: 最初の512トークンに加えて、TextRank で次に重要な512トークンを得て利用
        • BERT+Random: 最初の512トークンに加えて、ランダムに512トークンを追加
    • 2) efficient self-attention
      • Global AttentionやSparse Attentionで効率的にself-attentionを実現することで、長いドキュメントにも対応
      • 論文中ではLongformerを検証
    • 3) chunk representations
      • 入力を小さなchunkに区切りそれぞれの表現をBERTなどで得て、さらにそれらに対して階層的に分類を行うモデル
      • 論文中ではTransformer over BERT (ToBERT) を検証
    • 4) key sentence selection
      • いくつかのkey sentencesを選んで分類を行うモデル
      • 論文中ではCogLTXを検証
  • 評価用データセット
    • Hyperpartisan (binary classification)
    • 20NewsGroups (multi-class classification)
    • EURLEX (multi-label classification)
    • Inverted EURLEX
      • EURLEXは法律文で構成されるが、そのうち重要なセクションをドキュメント最後に持ってきたデータセット。特に最初の512トークンを使うような手法にとって難しくなる想定
    • BookSummary
      • もともとは要約向けのデータセットだが、ここではmulti-label classificationのためにジャンルを利用
    • PairedSummary
      • BookSummary中で2ドキュメントずつ結合したデータセット
      • (multi-label classificationなので、別々の2ドキュメントが結合されていたらそれぞれに該当するジャンルの和集合が正解...?)
      image
  • 評価結果
    • ↓ 各データセットに対する評価結果。背景灰色の部分はBERTに負けている
      • シンプルなBERTでも概ね性能が高かったことを鑑みると、ドキュメント最初の512トークンに分類のために必要な情報が含まれがちなのでは、とのこと
      image
    • ↓ 学習時間、推論時間、GPUメモリ消費量
    • image

【5】Compression of Generative Pre-trained Language Models via Quantization (担当: ELYZA Ryo Misawa)

書誌情報

  • ACL 2022 submit
  • preprint
    • URL
    • Submitted on 2022/03/21

サマリー

image

前提

  • quantization-aware training
    • wq=αQ(clip(w,α,α)/α)\mathrm{w}_q=\alpha\cdot Q(\mathrm{clip}(\mathrm{w}, -\alpha, \alpha)/\alpha)
      • α\alpha: clipping factor
      • α\alphaの大きさ次第で量子化の性能が変わるため,PACT (Choi et al., 2018) などでこれを更新する手法が提案されている
    • Q(x)Q(x): xx{1,n1n,,0,1n,,n1n,1} (n=2b11)\{-1, -\frac{n-1}{n}, \cdots, 0, \frac{1}{n}, \cdots, \frac{n-1}{n}, 1\}\ (n=2^{b-1}-1) のうち最も近い値に写す関数

問題意識

  • 生成モデルに対して既存の量子化手法を適用すると上手くいかない
  • 原因分析1: 量子化によって分散表現が均一化されてしまう
    1. image
    2. 最も頻度の高い500単語の分散表現をT-SNEで可視化
    3. 単精度のモデルと2ビットに量子化したモデルを比較
    4. 単精度のモデルと PACT, LSQ を比較すると分散表現が均一化されている (homogenious) ことが分かる
      • LAQ は提案手法と同程度な感じがするがその原因などについては言及されていなかった
      • 実際,LAQ は提案手法と遜色ない性能が出ている
    5. 生成は left-to-right に行なわれるため,量子化のエラーが蓄積するため上記の課題が深刻になる
  • 原因分析2: 重みの分布が層やモジュールによって異なる
    1. image
    2. 重みの要素の大きさの頻度分布
    3. 同じレイヤーでもモジュールごとに分布が異なる
    4. 0付近にピークを持つ分布
      • PACT (Choi et al., 2018) では wα|\mathrm{w}|\geq\alpha であるような w\mathrm{w}のみを利用して逆伝播するため,適していない

提案手法

  • token-level contrastive distillation
    • あるトークンに対する単精度で学習した教師モデルの表現を正例,同じ系列内の別のトークンの表現を負例とする対照学習
    • これにより,各トークンの表現が均一にならないにする
  • module-wise dynamic scaling
    • α=γw1n\alpha = \gamma \cdot \frac{||\rm{w}||_1}{n} とし,γ\gamma を更新する
      • γ=1\gamma=1 で初期化
      • 重みの平均に比例するようにすることで単精度で学習したモデルの重みからあまり外れないようにする
    • PACT (Choi et al., 2018) では wα|\mathrm{w}|\geq\alpha であるような w\mathrm{w}のみを考慮して逆伝播していたが,wα|\mathrm{w}|\leq\alpha であるような w\mathrm{w} も考慮する
      • 詳細は 3.2 の式 (7) と Appendix A参照

結果

  • GPT-2
    • #Bits: W-E-A
      • Weights, Embedding, Activations
      • 例: 8-8-8
    • PACT, LSQ が bit 数が減少するにつれて大幅に劣化するの大して提案手法 (QuantGPT) の性能は落ちない
image
  • BART
    • 要約データセットでの評価
    • 10倍程度の圧縮率にも関わらずROUGEで1-2ポイントのみのdrop
    • image

その他

  • Huawei Noah’s Ark Lab がこの辺を盛んに研究していそう
    • 以下に量子化周りのモデルが入っていそう