$30 off During Our Annual Pro Sale. View Details »

言語モデルにおける推論パラメータと小説生成への適用について

 言語モデルにおける推論パラメータと小説生成への適用について

23/4/6の社内勉強会で使用した資料です。

MIZUTANI RYOTA

May 01, 2023
Tweet

More Decks by MIZUTANI RYOTA

Other Decks in Programming

Transcript

  1. AI 5 手法名 手法概略 長所 短所 マルコフ連鎖 ある単語の出現が、その 1つ前の単語に依存する と仮定し、文の生成を行う

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

    とこで 5.69% 習慣 5.41% 。 3.86% encoder decorder 出力は全単語候補に対する確率 Transformerにおける単語生成イメージ
  3. AI 11 Transformerにおける推論パラメータ(抜粋) • 文章生成戦略を制御するパラメータ ◦ num_beams ◦ num_beam_groups ◦

    penalty_alpha ◦ do_sample • モデルの出力ロジットを制御するパラメータ ◦ temperature ◦ top-k ◦ top-p • その他 ◦ no_repeat_ngram_size ◦ repetition_penalty
  4. 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% 魚 を 食べる と 、 その
  5. 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より長期的な視点での確率を 考慮できるので、より自然の文が生 成される可能性が高い。
  6. AI 15 contrastive search (penalty_alpha>0 and top_k>1) https://arxiv.org/pdf/2210.14140.pdf • 生成済みの単語とは性質の異なる単語が出力されやすくなり、一貫性を保ちつつ流暢な文が生

    成できる • (話が飛びやすくなる気もするが、そういうものはそもそも候補に上がってこないか?) 生成済みの単語列とは類似度が低い単語を生成する手法 生成される単語 候補の集合 生成候補vに対する モデルの出力確率 縮退ペナルティ 候補となる単語と生成済みの単語 の類似度の最大値
  7. 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 文脈に沿わない単語を入れると末尾にそ の単語が含まれるだけの文になることも
  8. AI 17 確率が最も高い単語が生成される方法では入力に対して必ず同じ文が生成され る。それでは不自然なため単語の生成を確率分布を用いて選択する sampling p と 12.2% の 7.66%

    とこで 5.69% 魚を食べる モデルの出力xに対しsoftmaxをかけたものが確率 この確率をそのまま選択される確率とする。
  9. AI 18 確率分布に重みをつけるパラメータ。出力の多様性に寄与する。 temperture T → ∞ :確率が均一になる T →

    0 :確率の傾斜がより大きくなる。0だとサンプリングなしと等価 https://arxiv.org/pdf/1909.05858.pdf
  10. 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の対象となる
  11. 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の対象となる
  12. AI 23 ▪ 海外 ▪ NovelAI ▪ AI Dungeon ▪

    国内 ▪ AIのべりすと ▪ AI BunCho 言語モデルを用いて文の生成を行うサービスの例 モデルはGPT2又は3をweb上にある小説等で用途に合うよう fine tuningしているケースが多い。
  13. AI 24 ▪ モデルに入力できる文量に制限がある ▪ 文章量が制限を超えると書いた内容が反映されなくなり、設定が変わっ たり矛盾した行動が発生したりする ▪ 大局的な視点を持たない ▪

    都度確率的に単語を生成するだけなので、文章としては破綻はしない が、所謂面白い文になりにくい 言語モデルで小説を生成する際の課題
  14. 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
  15. AI 26 ▪ AI Dungeon の例 ▪ 主要な情報は別枠で作成し入力に加える ▪ Momory

    ▪ 記述した内容が本文の先頭に追加される ▪ 全体的なストーリー(要約) ▪ 登場キャラクター ▪ Author’s Note ▪ 記述した内容が本文の末尾近くに追加される ▪ 物語のジャンル ▪ 好ましい文体 ▪ 何が起こっているかの一般的なプロット ▪ 入力は末尾の方が参照されやすい 入力制約に対する工夫 https://help.aidungeon.io/faq/what-is-the-authors-note
  16. AI 27 ▪ 現状だと人間がコントロールするしかない ▪ 登場人物やシーンを人間が指定して、良さげな文章が出てくるまでtry and error ▪ 生成したい内容にあったパラメータも探索した方が良い

    ▪ tempertureやtop-k等のパラメータはそのとき記述したい内容によって最適 なものが変わるためそこも探索した方が良い。 ▪ 現状はGPTによる小説生成サービスは自動生成というより執筆支援とい う意味合いが強い。 大局的な視点をもたないことへの対策