【大規模言語モデル入門】 1章

0.9K Views

October 10, 24

スライド概要

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

Kaira 後期輪読会 大規模言語モデル入門 2024/10/10 第1章 はじめに 京都大学 工学部 電気電子工学科 B1 根本 想良 0

2.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 1

3.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 2

4.

◼1.1 transformersを使って自然言語処理を解いてみよう ここでは、本書でのちに学習するモデルについて実際にこれらを起動し、動作のイメージを掴ん でもらいたい。(ソースコードは link : https://github.com/ghmagazine/llm-book) • 文書分類 • 自然言語推論 • 意味的類似度計算 • 固有表現認識 • 要約生成 3

5.

◼1.1 transformersを使って自然言語処理を解いてみよう • 文書分類(document classification) テキストをあらかじめ定められたラベルに分類するタスク。例えば、ニュース 記事を「スポーツ」「国際」「ビジネス」などに分類することなど。 ここでは5.1節で出てくる感情分析モデルllm-book/bertbase-Japanese-v3-marc_jaを実行してみる 4

6.

◼1.1 transformersを使って自然言語処理を解いてみよう • 文書分類(document classification) Output このモデルは通販サイトのレビュー記事をもとに訓練されており、テキストが肯定的 (“positive”)であるか否定的(“negative”)であるかを予測している。 ”score”はその正確性を表す指標である。(ここでは99%の高い確率で妥当なラベルを予測して いる) 5

7.

◼1.1 transformersを使って自然言語処理を解いてみよう • 自然言語推論(natural language inference; NLI) 2つの論理関係を予測するタスク。このモデルでは、2つの文を入力として与え、この論理関係 として、「含意(“entailment”)」「矛盾(“contradiction”)」「中立(“neutral”)」を与える。 ここでは5.4.1節で出てくる感情分析モデルllm-book/bertbase-japanese-v3-jnli を実行してみる 6

8.

◼1.1 transformersを使って自然言語処理を解いてみよう • 自然言語推論(natural language inference; NLI) Output それぞれの出力の意味は以下の通り • “entailment” : 片方の文が成立するならばもう片方も成立する • “contradiction” : 2つの文は矛盾している • ”neutral” : 上の2つのどちらとも判別がつかない ’score’の意味は先ほどと同じ 7

9.

◼1.1 transformersを使って自然言語処理を解いてみよう • 意味的類似度計算(semantic textual similarity; STS) 2つのテキストの意味が似ている度合いをスコアとして予測するタスク。 ここでは5.4.2節で出てくる意味的類似度計算のモデルllmbook/bert-base-japanese-v3-jsts を実行してみる 8

10.

◼1.1 transformersを使って自然言語処理を解いてみよう • 意味的類似度計算(semantic textual similarity; STS) Output 意味的類似度は0から5までの範囲で予測される。 なお、2つのテキストの意味をベクトルで表現し、そのコサイン類似度をとる方法もある。 9

11.

◼1.1 transformersを使って自然言語処理を解いてみよう • 固有表現認識(named entity recognition; NER) テキストに含まれる固有表現を抽出するタスク。さまざまな分野で利用される。 ここでは6章で作成する llm-book/bert-base-japanese-v3ner-wikipedia-dataset を実行してみる 10

12.

◼1.1 transformersを使って自然言語処理を解いてみよう • 固有表現認識(named entity recognition; NER) Output 出力の”word”は抽出した固有表現の語句、 ”entity_group”は固有表現の種類、”score”はラベルの予 測スコア、“start”と“end”は固有表現の開始位置と終了位 置を表している。 11

13.

◼1.1 transformersを使って自然言語処理を解いてみよう • 要約生成(summarization generation) 比較的長い文章から短い要約を生成するタスク。こちらもさまざまな場面で使われる ここでは7章で作成する llm-book/t5-base-long-livedoornews-corpus を実行してみる 12

14.

◼1.1 transformersを使って自然言語処理を解いてみよう • 要約生成(summarization generation) Output 記事の内容を反映した妥当な見出しが作成されている。自然言語処理には以上で紹介した以外 にも非常に多くのタスクが含まれる。 13

15.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 14

16.

◼1.2 Transformersの基本的な使い方 • Auto Classes Transformersで提供されている非常に多くの種類のモデルから適切な実装を選択して くれるというもの。 Auto Classではモデルを表すAutoModelと入力テキストを分割するAutoTokenizerを主 に使用する。これらのクラスにはfrom_pretrainedというメソッドが用意されており、 このメソッドにHugging Face Hubのモデルの名称やモデルが保存されているフォルダ を渡すことでクラスのインスタンスを作成する。 15

17.

◼1.2 Transformersの基本的な使い方 • Auto Classes Output 大規模言語モデルを含む多くの自然言語処理のモデルでは、テキストを細かい単位に 分割してからモデルに入力する。この単位をトークンといい、文章をトークンに分割 する処理のことをトークナイゼーション、これを行う実装をトークナイザと呼ぶ。 このように分割したトークンを後続のテキストを予測するモデルに入れると、後続の テキストが予測される。 Output 16

18.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 17

19.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語埋め込み(word embedding) 2013年に発表されたword2vecというニューラルネットワークに使われた技術で、大規 模なテキストから学習された単語の意味を表現したベクトルのこと。 Word2vecは「ある単語の意味は周辺に出現する単語によって表せる」と考える分布仮 説に基づいて設計されている。 埋め込みとは、タスクを解く際に有用な情報を表現したベクトルのこと。 18

20.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語埋め込み(word embedding) 簡単にするために先ほどまで5次元だった埋め込みを簡略のために3次元にし、図にして みよう。 多義語についても1つの単語につき 1つのベクトルを持つ 似た意味を持つ言葉のベクトルは近 くに配置される 19

21.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語の意味の学習 では、どのようにしてこのベクトル分布を作り出すのだろうか。 既存の文を用いて、あらかじめ設定したwindowでその単語の「両側」の単語を「予測 できるように」学習を行なっていく。(上図の場合のwindowは2) 20

22.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語の意味の学習 word2vec では、単語 𝑤 ∈ 𝑉 に対して、D 次元の埋め込み x𝜔 と u𝜔 を割り当てる。こ こで、集合 𝑉のことを語彙と呼ぶ。語彙に含まれる単語数を 𝑉 とすると、全ての埋め 込みは のように表すことができる。 21

23.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語の意味の学習 Word2vecでは、単語の予測確率はソフトマックス関数を用いて計算される。ここで、 中央単語𝜔𝑡 が与えられた際に周辺単語𝜔𝑐 が出現する確率は以下のように計算できる。 さらに、訓練で用いる損失関数には交差エントロピーを用いる。 𝜃はモデルに含まれるすべてのパラメータを表し、pはwindowを表す。 22

24.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語の意味の学習 さて、先ほどの損失関数を最小化するには中央単語の埋め込みx𝜔𝑡 と周辺単語の埋め込 みu𝜔𝑡 の内積を最大化する必要がある。これを目指してパラメータを更新していく。 更新の仕方は で表され、𝛼は学習率、∇𝜃 ℒ 𝜃 は該当するパラメータの勾配である。勾配の導出には誤 差逆伝播法が用いられる。 実際の学習では、モデルに含まれるすべての単語について勾配を求めるのは計算不可が 大きいため、ミニバッチを作って学習が行われる。 23

25.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語埋め込みの有効性 Word2vecの提案後、単語埋め込みは幅広い自然言語処理のタスクに適用されていき、 その有効性が確認された。また、さまざまなタスク用に設計されたタスク固有のニュー ラルネットワークへの入力として、word2vecで訓練した単語埋め込みを使うことで性 能が大きく改善した。 Word2vecのように、実際に解きたいタスクを解く前に、モデルをあらかじめ別のタス クで訓 練することを事前学習(pre-training)、事前学習したモデルを適用する先のタス クのことを下流タスク(downstream task)と呼ぶ。 24

26.

◼1.3 単語埋め込みとニューラルネットワークの基礎 ◼単語埋め込みの有効性 Word2vecによる単語埋め込みを下流タスクに適用するときのように、あ る解きたいタスクに対して別の方法で学習したモデルを転用する方式の ことを転移学習と呼ぶ。 単語埋め込みによって、入力から自動的に予測するラベルを生成して学 習を行う自己教師あり学習が可能になり、従来は人手でのデータセット 作成コストが大規模学習の大きな制約となっていたところを、ウェブか ら簡単かつ大量に入手できる大規模なコーパスをそのまま使用してモデ ルの学習を行うことが可能になったのだ。 25

27.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 26

28.

◼1.4 大規模言語モデルとは ◼文脈化単語埋め込み(contextualized word embedding) 文脈を考慮した単語埋め込みのこと。大規模なコーパスから自己教師あり学習をして獲 得する。 単語1つ1つに埋め込みが割り当てられるword2vecと異なり、文脈化単語埋め込みを扱 うモデルでは入力テキスト周辺の文脈を加味して動的に単語埋め込みが計算される。 また、これと同時期に機械翻訳のモデルとしてこれから扱うTransformerという優れた ニューラルネットワークが提案された。 27

29.

◼1.4 大規模言語モデルとは ◼現在の自然言語処理の標準的な手法 • 文脈化単語埋め込みを計算する Transformerを大規模コーパスで事前 学習(これを事前学習済みモデルという ) • 事前学習したモデルを下流タスクのデ ータセットを使って微調整(これをファ インチューニングと呼ぶ) (灰色の部分が事前学習されている) 28

30.

◼1.4 大規模言語モデルとは ◼現在の自然言語処理の標準的な手法 word2vecの利用 ファインチューニングによる解決 近年主流のファインチューニングでは、word2vecの時(左図)とは異なり、「タスク固有の予 測器」は少量のパラメータで構成される単純な構造であることがほとんど。 →モデルに含まれるほとんどのパラメータが事前学習の対象 29

31.

◼1.4 大規模言語モデルとは ◼大規模言語モデルによるタスクの解決 また、ファインチューニングは行わずに、事前学習された大規模言語モデルをプロンプ トと呼ばれるテキストを通じて制御することで下流タスクを解く方法もある。 30

32.

アジェンダ ◼ 1.1 transformersを使って自然言語処理 を解いてみよう ◼ 1.2 Transformersの基本的な使い方 ◼ 1.3 単語埋め込みとニューラルネット ワークの基礎 ◼ 1.4 大規模言語モデルとは 31

33.

◼参考文献・引用 今田育矢, 鈴木正敏, 山田康輔, 李凌寒. 大規模言語モデル入門. 技術評論社. 2023年 Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv Xin Rong. (2016). word2vec Parameter Learning Explained. arXiv 32

34.

Kaira 後期輪読会 大規模言語モデル入門 2024/10/10 第1章 はじめに 京都大学 工学部 電気電子工学科 B1 根本 想良 33