Slide 1

Slide 1 text

AI 2023.04.06 水谷 亮太 株式会社ディー・エヌ・エー + GO株式会社 言語モデルにおける推論パラメー タと小説生成への適用について

Slide 2

Slide 2 text

AI 2 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について

Slide 3

Slide 3 text

AI 3 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について

Slide 4

Slide 4 text

AI ■ ある文を入力としたときに、その次の単語を予測するモデル 4 言語モデルとは 最も単純なマルコフモデルもGPTもこの確率の計算をしているのは同じ。 赤い 魚 を 食べる Y ↑ここに出現する単語を予測 ■ Yに入る単語は、以下のような条件付き確率の式において、最も確率 が大きくなるものが選択される

Slide 5

Slide 5 text

AI 5 手法名 手法概略 長所 短所 マルコフ連鎖 ある単語の出現が、その 1つ前の単語に依存する と仮定し、文の生成を行う 手法 - 簡単に実装できる - シンプルで解釈しやすい - 生成された文章が単調 - 長期的な文脈を考慮できないため、文 章の流れが不自然になることがある n-gram マルコフ連鎖で考慮する 文字をn個に拡張したも の - マルコフ連鎖よりも長期的な文脈を 考慮できる - nが大きくなると学習コストが指数的に増 大する - nが小さいと生成された文章が不自然に なることがある RNN RNNを利用したモデル - n-gramより長期的な文脈を考慮でき るため、より自然な文章を生成できる - 勾配消失問題により文が長くなると依存 関係が取得できない。 - 並列計算ができず、学習に時間がかか る Transformer Transformerを利用した モデル - RNNよりも高速に学習できる - 長期的な文脈を考慮できる - 解釈性が低い これまでの言語モデルの概略

Slide 6

Slide 6 text

AI 6 魚 を 食べる Transformer と 12.2% の 7.66% とこで 5.69% 習慣 5.41% 。 3.86% encoder decorder 出力は全単語候補に対する確率 Transformerにおける単語生成イメージ

Slide 7

Slide 7 text

AI 7 ▪ 最も確率の高いものを選択するだけだと単調 ▪ 前後の文を考慮した確率の評価をする ▪ 繰り返しを発生しにくくする ▪ 自然な文になるよう確率値が低い単語も取り入れる 出力される確率をどう調整して文を生成する? パラメータを用いて調整 と 12.2% の 7.66% とこで 5.69% 習慣 5.41% 。 3.86%

Slide 8

Slide 8 text

8 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について

Slide 9

Slide 9 text

AI 9 ▪ ここで紹介するパラメータは下記に記載のあるtransformerのgenerate関数で使用で きるもの ▪ https://huggingface.co/docs/transformers/main_classes/text_generation 紹介するパラメータについて 文章生成コード例(GPT2)

Slide 10

Slide 10 text

AI 10 ▪ WebのGUI版は設定不可 ▪ 固定値が割り当てられてる? ▪ APIだと設定可能なものもある ▪ https://platform.openai.com/docs/api-reference/chat/create ChatGPTだとどうなの? ChatGPTでも極端な設定にすると回答が壊れる。

Slide 11

Slide 11 text

AI 11 Transformerにおける推論パラメータ(抜粋) ● 文章生成戦略を制御するパラメータ ○ num_beams ○ num_beam_groups ○ penalty_alpha ○ do_sample ● モデルの出力ロジットを制御するパラメータ ○ temperature ○ top-k ○ top-p ● その他 ○ no_repeat_ngram_size ○ repetition_penalty

Slide 12

Slide 12 text

AI 12 greedy search (num_beams=1 and do_sample=False) 出力された確率が最も高いものを常に選択する手法 と 12.2% の 7.66% とこで 5.69% 、 14.04% 幸せ 1.95% 胃 1.52% その 8.82% 魚 2.47% 胃 1.61% 魚 を 食べる と 、 その

Slide 13

Slide 13 text

AI 13 beam search (num_beams>1) 魚 を 食べる と の ことで 、 胃 幸せ が は が好き 12.2 7.66 5.69 27.0 24.4 7.90 14.04 1.95 1.52 選択されたnum_beamsの数だけ累計確率の高い経路を保持する手法 赤線がnum_beams=2とした場合に 各ステップで保持される経路。 greedyより長期的な視点での確率を 考慮できるので、より自然の文が生 成される可能性が高い。

Slide 14

Slide 14 text

AI 14 通常のbeam searchだと似たような文が複数生成されるため、groupを作り、 group毎に共起がある場合はペナルティが発生するようにする。 group beam search(num_beam_groups>1) https://arxiv.org/pdf/1610.02424.pdf

Slide 15

Slide 15 text

AI 15 contrastive search (penalty_alpha>0 and top_k>1) https://arxiv.org/pdf/2210.14140.pdf ● 生成済みの単語とは性質の異なる単語が出力されやすくなり、一貫性を保ちつつ流暢な文が生 成できる ● (話が飛びやすくなる気もするが、そういうものはそもそも候補に上がってこないか?) 生成済みの単語列とは類似度が低い単語を生成する手法 生成される単語 候補の集合 生成候補vに対する モデルの出力確率 縮退ペナルティ 候補となる単語と生成済みの単語 の類似度の最大値

Slide 16

Slide 16 text

AI 16 ある指定の単語を出力に含めたい場合に用いる制約付きのビームサーチ。各ス テップで残したい単語を含む候補を必ず残すようにする。 constrained beam search(force_words!=None) 魚 を 食べる と の 猫 、 胃 幸せ 12.2 7.66 11.5 10.6 14.04 1.95 1.52 例:beam数2で”猫”を出力に含めたい場合 猫 0.05 15.1 は の が 0.06 文脈に沿わない単語を入れると末尾にそ の単語が含まれるだけの文になることも

Slide 17

Slide 17 text

AI 17 確率が最も高い単語が生成される方法では入力に対して必ず同じ文が生成され る。それでは不自然なため単語の生成を確率分布を用いて選択する sampling p と 12.2% の 7.66% とこで 5.69% 魚を食べる モデルの出力xに対しsoftmaxをかけたものが確率 この確率をそのまま選択される確率とする。

Slide 18

Slide 18 text

AI 18 確率分布に重みをつけるパラメータ。出力の多様性に寄与する。 temperture T → ∞ :確率が均一になる T → 0 :確率の傾斜がより大きくなる。0だとサンプリングなしと等価 https://arxiv.org/pdf/1909.05858.pdf

Slide 19

Slide 19 text

AI 19 Top-k sampling 確率の高いものからk個を選択されるターゲットとする方法 魚 を 食べる と 12.2% の 7.66% とこで 5.69% 習慣 5.41% 。 3.86% 魚 2.09% ことは 2.02% こと 1.89% k=3の場合、上位3つがsamplingの対象となる

Slide 20

Slide 20 text

AI 20 Top-p (nucleus) sampling 確率の高いものから累計してp%のものまでを選択されるターゲットとする方法 魚 を 食べる と 12.2% の 7.66% とこで 5.69% 習慣 5.41% 。 3.86% 魚 2.09% ことは 2.02% こと 1.89% p=0.3の場合、累計確率が30%を超える最小集 合である上位4つがsamplingの対象となる

Slide 21

Slide 21 text

AI 21 ▪ no_repeat_ngram_size ▪ 指定した数以上のngramに対し、生成を一回までに制限する ▪ repetition_penalty ▪ 生成済みの単語に対し、ペナルティをかける 繰り返しを防ぐためのパラメータ θ : repetation penalty https://arxiv.org/pdf/1909.05858.pdf

Slide 22

Slide 22 text

AI 22 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について

Slide 23

Slide 23 text

AI 23 ▪ 海外 ▪ NovelAI ▪ AI Dungeon ▪ 国内 ▪ AIのべりすと ▪ AI BunCho 言語モデルを用いて文の生成を行うサービスの例 モデルはGPT2又は3をweb上にある小説等で用途に合うよう fine tuningしているケースが多い。

Slide 24

Slide 24 text

AI 24 ▪ モデルに入力できる文量に制限がある ▪ 文章量が制限を超えると書いた内容が反映されなくなり、設定が変わっ たり矛盾した行動が発生したりする ▪ 大局的な視点を持たない ▪ 都度確率的に単語を生成するだけなので、文章としては破綻はしない が、所謂面白い文になりにくい 言語モデルで小説を生成する際の課題

Slide 25

Slide 25 text

AI 25 ▪ GPTではtokenという単位が使用される。 ▪ token数の制限 ▪ gpt-3: 4097token ▪ gpt-4: 8000 or 32000token ▪ この制限は入力と出力を足したもの ▪ 漢字一文字で2~3token消費するので日本語は不利 ▪ 「メロスは激怒した」→10token ▪ 「Melos was enraged」→4token 文量の制限についての補足 https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them https://help.openai.com/en/articles/7127966-what-is-the-difference-between-the-gpt-4-models

Slide 26

Slide 26 text

AI 26 ▪ AI Dungeon の例 ▪ 主要な情報は別枠で作成し入力に加える ▪ Momory ▪ 記述した内容が本文の先頭に追加される ▪ 全体的なストーリー(要約) ▪ 登場キャラクター ▪ Author’s Note ▪ 記述した内容が本文の末尾近くに追加される ▪ 物語のジャンル ▪ 好ましい文体 ▪ 何が起こっているかの一般的なプロット ▪ 入力は末尾の方が参照されやすい 入力制約に対する工夫 https://help.aidungeon.io/faq/what-is-the-authors-note

Slide 27

Slide 27 text

AI 27 ▪ 現状だと人間がコントロールするしかない ▪ 登場人物やシーンを人間が指定して、良さげな文章が出てくるまでtry and error ▪ 生成したい内容にあったパラメータも探索した方が良い ▪ tempertureやtop-k等のパラメータはそのとき記述したい内容によって最適 なものが変わるためそこも探索した方が良い。 ▪ 現状はGPTによる小説生成サービスは自動生成というより執筆支援とい う意味合いが強い。 大局的な視点をもたないことへの対策

Slide 28

Slide 28 text

AI 28 ▪ 言語モデルは推論時に複数のパラメータを用いて文章の生成を制御し ている。またそのパラメータにより傾向に変化をつけることが可能 ▪ 現状の言語モデルでは一定以上の長さの小説を自動生成することはで きない(できなくもないが異常につまらないものができる) ▪ ChatGPTの学習では出力の好ましさを人間が評価して強化学習を行 う工程が存在するが、その部分を小説に特化して設定できればもう少 し良いものがつくれるかも?(文章による人間の感情のhack) まとめと感想