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

299 Views

November 07, 24

スライド概要

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

2024年後期輪読会#6 (11/7) 第七章 要約生成 京都大学 理学部 2回 千葉 一世 0

2.

アジェンダ ◼ 要約生成の種類 ◼ T5のファインチューニング ◼ 評価指標 ◼ 生成手法 1

3.

要約生成の種類 「今日はそういう日だったのか!Googleロゴが変わっている理由」で紹介したように、 Googleはたまにトップページのロゴを変える。今、Googleにアクセスすると、トップ ページのGoogleロゴが変わっているのに気づくだろう。 Googleロゴは、折り紙に見える。 クリックすると、「吉澤章」という言葉が検索される。今日(3月14日)は、折り紙作家 吉澤章の誕生日だからだ。 吉澤章は、栃木県出身の折り紙作家だ。日本の創作折り紙の第 一人者であるとともに、折り紙の世界的な普及に尽力したことで知られる。 興味を持った 人は、インターネットで検索してみては如何だろうか。 要約 なるほど、そういうことか! Googleロゴが折り紙である理由 要約生成タスクは、入力・出力・生成条件などによって分けられる ◼ 出力形式 ⚫ 抽出型要約(extractive summarization) ・本文中から要約に含める重要な語・文を抽出して生成する。 ・各語を要約に含むべきかの二値分類としてモデル化する。 ・本文を切り取って生成するので、事実と異なる内容になる事は少ないが、自然な文にするのが難しい ⚫ 生成型要約(abstractive summarization) ・本文の情報から新たに要約文を生成する。 ・エンコーダ・デコーダモデルを用いて本文の処理と生成を行う。 ・自然な要約文を生成できるが、事実と異なる内容を含む可能性がある。 2

4.

要約生成の種類 ◼ 入力文書数 ⚫ 単一文書要約(single document summarization) 一つの入力文を要約する。単純な系列変換としてモデル化できる 例:ニュースや論文の要約など ⚫ 複数文書要約(multi document summarization) 複数の文書を合わせて要約する。文書間の関係なども考慮したモデル化が必要 例:商品レビューや、SNSの投稿などの要約 ◼ クエリ指向 ⚫ クエリ指向型要約(query-focused summarization) クエリを指定して、入力文の特定の部分を要約する 例:検索エンジンのスニペット生成・論文の要約 ⚫ 非クエリ指向型要約(generic summarization) 3

5.

T5のファインチューニング T5を用いて、シンプルな単一文書・生成型要約のファインチューニングを行う この場合は、系列変換の学習になるので Seq2Seq用のモデル・collate関数・引数・trainerを使う データセットは、ライブドアニュースの記事と見出しを使用し、 事前学習モデルは、”retrieva-jp/t5-base-long”を用いる ・前処理・後処理は単にTokenizerを用いて トークンとidを変換する 4

6.

評価指標 要約生成モデルをどのように評価するか? N-gramの一致度による評価指標・別の言語モデルを利用した意味の一致度による評価指標がある 語 彙 意 味 ROUGE ・N-gramを用いて単語レベルの一致度を適合率・再現率・F値で評価 BLEU ・複数のN-gramの適合率を合わせて評価 METEOR ・同義語や語形変化を考慮し、語順の一致度などで補正したF値で評価 BERTScore ・BERTを用いて埋め込み列の類似度から評価 QAEval ・質問応答タスクを用いて、どれだけ情報を保持しているかを評価する 5

7.

評価指標 ◼ ROUGE(Recall-Oriented Understudy for Gisting Evaluation) 適合率・再現率・F値で一致度を評価する指標 ROUGE-N・ROUGE-L・ROUGE-S・ROUGE-W…などの多くの種類がある ⚫ ROUGE-N N-gramを用いて一致度を測る ⚫ ROUGE-L 参照文と生成文の最大共通部分列(LCS)を用いる LCS:順序が一致した共通する部分列の最大長 ⚫ ROUGE-W 連続している語に重みを付けたLCSを用いる ⚫ ROUGE-S Skip-gramを用いて一致度を測る 6

8.

評価指標 ROUGEの計算例 7

9.

評価指標 ◼ BLEU(BiLingual Evaluation Understudy) ・複数のN-グラムの適合率を合わせて評価する。0~1の値を取るが、100倍して0~100で表す。 ・スコア40以上で高品質な要約を生成できている ・N=4が多く、1-gramで単語の一致度・2,3,4-gramで語順を評価している。 ・𝑚𝑛 は補正した適合率のための計算 1対1という制限により、同一単語の 繰り返しによるスコアアップを防ぐ ・𝑚𝑛 が0になるとlogが計算できないで、 exponential decayで補正する ・BPは生成文の短さに対するペナティ 生成文が短いほど適合率が高くなるを 防ぎ、正しく評価する 1 ・ 𝜔𝑛 は場合によるが、 が良く用いられる 𝑁 この時は単に幾何平均になる 8

10.

評価指標 1対1の適合率 Exponentialy decay min(参照文のn-gram数, 生成文のn-gram数) 参照文:the cat is on the mat 生成分:the the the the the the the 7 通常の適合率は と高くなるが、 7 2 1対1に制限すると となる 7 𝑚𝑛 が0になると、 𝑚𝑛+1 , 𝑚𝑛+2 , … も0となる 1 1 1 2 4 8 始めに0になった所から順に , , , … と補正する BLEUの計算例 参照文:日本語 T 5 モデル の 公開 生成文:日本語 T 5 を リリース 9

11.

評価指標 ◼ BERTScore 事前学習済みのBERTからトークン埋め込みを計算し、埋め込み間のコサイン類似度を測る ROUGE・BLEUと異なり、語ではなく意味を見るので多様な生成をよく評価できる 参照文・生成分の埋め込み列をそれぞれ と として、 BERTScoreの計算例 参照文:日本語T5モデルの公開 生成分:JapaneseT5を発表 10

12.

評価指標 評価指標の実装 本のGoogle Colabの実装は一部動かない datesetsのload_metrics()で各評価指標を実装しているが、バージョン3以降で廃止され、 evaluateというライブラリに役割を移行した。 datasetsのインストール時に「==v2」とバージョン指定するか、 evaluateのevaluate.load()の使用する 基本的には、右の3行で実装でき、 単語に分割した文を渡すと計算できる。 分割にはMeCabとIPAdicを用いる 各評価指標毎の設定 ・ROUGE:日本語対応していないのでidに変換して渡す ROUGE-N,L,S,…などの種類を指定して用いる datasetsでは適合率・再現率・F値を計算するが、 evaluateではF値のみ ・BERTScore:言語の指定が必要 11

13.

評価指標 参照文 :日本語 T 5 モデル の 公開 生成文1:T 5 モデル の 日本語 を 公開 生成文2:日本語 T 5 を リリース 生成文3:Japanese T 5 を 発表 ⚫ ROUGE F値 ⚫ BLEU ⚫ BERTScore BERTScoreは生成文3をよく評価できている 12

14.

生成手法 言語モデルから得られた各トークンの確率から、どのように文を生成するか 探 索 ア ル ゴ リ ズ ム サ ン プ リ ン グ 全探索 ・全トークン列の確率を求めて最大のものを選ぶ 貪欲法 ・1トークンずつ確率が最大のトークンを選んでいく ビームサーチ ・各時刻毎に上位N個を選択し、最終的に確率最大の文を選ぶ ランダム サンプリング ・各トークンの生成確率を用いて単純にサンプリング Top-k サンプリング ・確率の上位k個の中からサンプリング Top-p サンプリング ・確率の高い順に累積確率がpを超えるまでのトークンでサンプリング 13

15.

生成手法 ◼ 探索アルゴリズム 貪欲法(Gready search) ・各時刻で最も確率が高いトークンを選択する ・例の「私は」などの低確率の後に高確率がくる 場合を見逃してしまう ・各時刻時点の確率最大のものを選ぶので、 重要な語を繰り返し選択してしまう ビームサーチ(Beam search) ・各時刻毎に上位N個を保持しながら生成し、 最終的に最も確率の高い文を選択する ・最適なものを生成する保証はないが、貪欲法 よりは見逃しにくく、全探索より圧倒的に 少ない計算量で済む ビーム幅:3 同じn-gramの生成確率を0にして繰り返しを防ぐ 「私は」: 0.32 「彼女は」: 0.25 貪欲法で見逃していた 「私は」を考えられている 14

16.

生成手法 ◼ サンプリング 探索アルゴリズムでは、確率が最大のものを選ぶので多様性に欠ける 確率分布としてサンプリングすることにより、探索アルゴリズムでは本来選ばれない トークンが選ばれ、多様な生成が可能で複数の異なる文を生成できる。 さらに、温度付きソフトマックス関数を用いて多様性と一貫性を調整できる 温度付きソフトマックス関数 exp(𝑐𝑚 /𝜏) 𝑠𝑜𝑓𝑡𝑚𝑎𝑥𝑚 = 𝐾 σ𝑘=1 exp(𝑐𝑘 /𝜏) τが0に近いほど分布が極端になり、大きいほどなだらかになる 貪欲法: 梅雨のヘアスタイルは簡単アレンジで!簡単ヘアアレンジテクニック【ビューティー特集】 𝜏 = 0.5: 梅雨のヘアアレンジは簡単!簡単アレンジで梅雨を乗り切る【ビューティー特集 𝜏 = 1 : うっすらパーマで崩れにくい 梅雨入りを涼しくパチリ! 𝜏 = 1.3: 梅雨の自然といえば~ セルフアレンジでボディメイク正解トレンドチェック【レポート】 15

17.

生成手法 単純にサンプリングするだけでは確率の低い不自然なものまで選んでしまう 確率に基づいてサンプリング候補を制限することにより安定した生成が可能になる Top-kサンプリング ・確率の上位k個の中からサンプリングする ・確率分布を考慮していないため、確率がほとんど 同じものを切り捨てたり、確率が低いものを 含めたりしてしまう。 Top-pサンプリング ・確率の高い物から順に、累積確率がpを超えるまでの 中でサンプリングを行う ・確率分布を考慮して候補を選ぶため、top-kでの 問題を軽減できる。 これらを組み合わせて、上位k個を選んで確率分布を考慮してさらに絞る手法もある 16

18.

生成手法 ・TransformersのPipelineに引数を渡すことで、簡単に生成手法を変えられる ・Pipelineを使わなくても、model.generate()で生成時に直接指定することができる 17