【大規模言語モデル入門】3章 3.1~3.3

>100 Views

October 17, 24

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

大規模言語モデル入門 2024/10/16 第3章 大規模言語モデルの基礎(3.1~3.3) 京都大学 理学部 B2 東野 幹大 0

2.

アジェンダ ◼ 3.1 単語の予測から学習できること ◼ 3.2 GPT(デコーダ) ◼ 3.3 BERT・RoBERTa(エンコーダ) 1

3.

アジェンダ ◼ 3.1 単語の予測から学習できること ◼ 3.2 GPT(デコーダ) ◼ 3.3 BERT・RoBERTa(エンコーダ) 2

4.

3.1 単語の予測から学習できること 単語予測でいろいろ問われる 日本で最も高い山は??である。 日本で最も??山は富士山である。 日本??最も高い山は富士山である。 日本で最も高い山??富士山である。 外食せずに自炊すればよかった。レストランの料理は??だった。 鉛筆を1ダース買って10本使ったので、残りは??本になった。 単語予測だけで自然言語処理に必要な文法、知識、感情、推論など、いろいろなことが問われ る。単語予測できることを目標にしてモデルを訓練するというのが基本的なアイデア。 3

5.

アジェンダ ◼ 3.1 単語の予測から学習できること ◼ 3.2 GPT(デコーダ) ◼ 3.3 BERT・RoBERTa(エンコーダ) 4

6.

3.2 GPT(デコーダ) GPTって何? ざっくりとした説明: • Generative Pre-trained Transformer • 2018年にOpenAIの研究者らが提案 “Improving Language Understanding by Generative Pre-Training” • このモデル1つだけで自然言語処理の多様なタスクで従来モデルを上 回る性能。 • 特徴 デコーダ構成のTransformer 事前学習とファインチューニング 大規模なモデルと大規模なデータセット 5

7.

3.2 GPT(デコーダ) GPTへの入力埋め込みは、トークン埋め込みと位置埋め込みの和 ◼ 入力表現 • 入力トークン長をKとし、トークン列 𝑤1 , 𝑤2 , ⋯ , 𝑤𝐾 のトークン 𝑤𝑖 の埋め込みを 𝒆𝑖 、位置埋 め込みを 𝒑𝑖 として、入力埋め込み 𝒙𝑖 は 𝒙𝑖 = 𝒆𝑖 + 𝒑𝑖 と計算され、GPTには 𝒙1 , 𝒙2 , ⋯ , 𝒙𝐾 が入力される。 6

8.

3.2 GPT(デコーダ) 事前学習ではトークン列から次のトークンが何かを予測するように訓練。大規模なデータセットを用いる。 ◼ 事前学習 • データセットとして、BookCorpusを使用。インターネットから収集された7000冊以上の 書籍で構成される、大規模なデータセット。 • 事前学習では、トークン列から次のトークンが何かを予測するように訓練する。このよう なモデルを言語モデル(language model)という。 • トークン列 𝑤1 , 𝑤2 , ⋯ , 𝑤𝑁 とし、損失関数 ℒpt 𝜃 = − ෍ log𝑃(𝑤𝑖 |𝑤𝑖−𝐾 , ⋯ , 𝑤𝑖−1 , 𝜃) 𝑖 を最小化するように学習。注意機構ではマスク処理が導入されており、並列に計算 されている。なお、2章での説明の通り、 𝑃 𝑤𝑖 𝑤𝑖−𝐾 , ⋯ , 𝑤𝑖−1 = softmax𝑤𝑖 𝑬𝒉𝑖−1 𝑬:入力トークン埋め込み行列 𝒉𝑖−1 :位置 𝑖-1の出力埋め込み 7

9.

3.2 GPT(デコーダ) 下流タスクを解く際には、特殊トークンで入力テキストを拡張し、ヘッドを追加して出力を調整する ◼ ファインチューニング • 下流タスクを解く際には、特殊トークン(special token)を入力テキストに追加する。 <s>、<e>、$ など 例:<s>こたつでみかんを食べる$こたつでテレビを見る<e> • 事前学習済みのモデルに追加して、モデルの出力を下流タスクに合わせて変換する層を ヘッド(head)という。ファインチューニングはデータや計算資源が少なくても学習できる。 →応用が進む 8

10.

3.2 GPT(デコーダ) ファインチューニングの例:文書分類 例として、文書分類タスクをみてみる トークン列 𝑤1 , 𝑤2 , ⋯ , 𝑤𝐾 と正解ラベル 𝑦 ∈ Y の組のデータセットについて、損失関数 ℒft 𝜃 = − ෍ log𝑃(𝑦|𝑤1 , ⋯ , 𝑤𝐾 , 𝜃) 𝑖 𝑃 𝑦 𝑤1 , ⋯ , 𝑤𝐾 = softmax𝑦 𝐖ft 𝒉𝐾 を最小化するように学習。 文書分類では、位置Kにおける出力埋め込み𝒉𝐾 に対して、ヘッド𝐖ft 追加される。ファインチューニング開始時には乱数によって初期化されている。 9

11.

3.2 GPT(デコーダ) 事前学習とファインチューニングの損失関数を同時に最適化すると性能が向上し、収束も高速化 また、事前学習の損失関数ℒ𝑝𝑡 𝜃 =とファインチューニングの損失関数ℒ ft 𝜃 =を同時に最適化 することによって、モデルの性能が向上し、収束も高速化 ℒft+𝑝𝑡 𝜃 = ℒft 𝜃 + λ ∙ ℒpt 𝜃 として、 ℒft+𝑝𝑡 𝜃 を最小化。 λはハイパーパラメータ。 10

12.

アジェンダ ◼ 3.1 単語の予測から学習できること ◼ 3.2 GPT(デコーダ) ◼ 3.3 BERT・RoBERTa(エンコーダ) 11

13.

3.3 BERT・RoBERTa(エンコーダ) BERT・RoBERTa って何? ざっくりとした説明: • Bidirectional Encoder Representations from Transformers 2018年にGoogleの研究者らが提案 GPTの4か月後に提案。GPTが打ち立てた記録を塗り替える性能 • Robustly optimized BERT approach 2019年にFacebook AI Research(現Meta Research)の研究者らが提案 BERTの10倍のデータセット • 特徴 双方向のエンコーダ構成のTransformer 2つの事前学習タスク 12

14.

3.3 BERT・RoBERTa(エンコーダ) 事前学習の入力として、特殊記号とセグメント埋め込みを導入 ◼ 入力表現 • GPTとは異なり、事前学習の時点で特殊記号を導入。[CLS]、[SEP]、[MASK]、[UNK]など • セグメント埋め込み(segment embedding)を導入。トークンが入力テキストの1つ目と2つ 目のどちらに属するかを表す。 • 入力トークン長をKとし、トークン列 𝑤1 , 𝑤2 , ⋯ , 𝑤𝐾 のトークン 𝑤𝑖 が入力テキスト𝑚 ∈ {1,2}に 属するとき、トークン埋め込みを 𝒆𝑖 、位置埋め込みを 𝒑𝑖 、セグメント埋め込みを 𝒔𝑚 とすると、入力埋め込み 𝒙𝑖 は 𝒙𝑖 = 𝒆𝑖 + 𝒑𝑖 + 𝒔𝑚 と計算される。なお、RoBERTaではセグメント埋め込みなし。 13

15.

3.3 BERT・RoBERTa(エンコーダ) 事前学習タスクは2つ ー マスク言語モデリングと次予測 ◼ 事前学習 • データセットとして、BookCorpusとWikipediaを使用し、GPT より大規模。 • BERTの事前学習タスクは2つ。 マスク言語モデリング(masked language modeling; MLM)と 次文予測(next sentence prediction; NSP) 14

16.

3.3 BERT・RoBERTa(エンコーダ) マスク言語モデリング:ランダムにマスクされたトークンを双方向から予測 マスク言語モデリング(MLM) • テキストの15%のトークンを選び、以下のように変換 1. 80%を[MASK]トークンに置換 2. 10%を語彙に含まれるランダムなトークンに置換 3. 10%は置換せずそのまま すべて[MASK]で置換しないのは、ファインチューニングでは使用しない[MASK]の影響を低減 させるためらしい。 15

17.

3.3 BERT・RoBERTa(エンコーダ) マスク言語モデリング:ランダムにマスクされたトークンを双方向から予測 マスク言語モデリング(MLM) トークン列 𝑤1 , 𝑤2 , ⋯ , 𝑤𝑁 とし、 𝐡i を位置 𝑖 での出力埋め込みとすると、 𝐡෡i = layernorm gelu 𝐖mlm 𝐡i 𝑃 𝑤𝑖 𝑤1 , ⋯ , 𝑤𝑖−1 , 𝑤𝑖+1 , ⋯ , 𝑤𝐾 = softmax 𝐄𝐡෡i + 𝐛 ℒmlm 𝜃 = − ෍ log𝑃(𝑤𝑖 |𝑤𝑖−𝐾 , ⋯ 𝑤𝑖−1 , 𝑤𝑖+1 , ⋯ , 𝑤𝐾 , 𝜃) 𝑖 として、損失関数を最小化するように学習。 16

18.

3.3 BERT・RoBERTa(エンコーダ) マスク言語モデリング:ランダムにマスクされたトークンを双方向から予測 次文予測(NSP) • データセットから取り出した2つのテキストを[SEP]で連結して入力。このとき、50%で同一の文 書から、50%で異なる2つの文書からテキストを取り出す。 • 次文予測は、入力された2つのテキストが同じ文書のものかどうかを判定する2値分類タスク • [CLS]の出力埋め込みを𝐡cls として、 𝐡pool = tanh(𝐖pool 𝐡cls ) P y w1 , ⋯ , wK = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥𝑦 (𝐖nsp 𝐡pool ) ℒ𝑛𝑠𝑝 𝜃 = − ෍ log𝑃(𝑦|𝑤1 , ⋯ 𝑤𝐾 , 𝜃) 𝑖 を最小化するように学習。ここで𝐖pool はD×D行列、分類結果 𝑦 = {𝑡𝑟𝑢𝑒, 𝑓𝑎𝑙𝑠𝑒}、 𝐖𝑛𝑠𝑝 は2×D行列。 17

19.

3.3 BERT・RoBERTa(エンコーダ) ファインチューニングはGPTとほぼ同じ ◼ ファインチューニング • GPTとほぼ同じ。文書分類では、 𝐡cls をヘッドに入力する。また、事 前学習で用いた𝐡pool を𝐡cls の代わり に使うこともある。 18

20.

参考文献等 今田育矢, 鈴木正敏, 山田康輔, 李凌寒. 大規模言語モデル入門. 技術評論社. 2023年 https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf https://arxiv.org/pdf/1810.04805 19