Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
言語モデルにおける推論パラメータと小説生成への適用について
Search
MIZUTANI RYOTA
May 01, 2023
Programming
840
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
言語モデルにおける推論パラメータと小説生成への適用について
23/4/6の社内勉強会で使用した資料です。
MIZUTANI RYOTA
May 01, 2023
More Decks by MIZUTANI RYOTA
See All by MIZUTANI RYOTA
Claude Codeのログから 学びを得る
rmizuta3
5
7.1k
JPEGの仕組みと圧縮品質が CV性能に与える影響について
rmizuta3
1
1.4k
PythonユーザによるRust入門
rmizuta3
15
8.6k
プロテニスにおいて疲れが勝敗に与える影響を定量化してみる
rmizuta3
2
1.4k
Other Decks in Programming
See All in Programming
Hono + Inertia + React で LP を構築した話
oukayuka
2
220
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
App Intentsのビルドプロセスを支える技術
kntkymt
0
140
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
37k
自分的「カンファレンスの楽しみ方」
syumai
0
200
Foundry Localでエージェント開発
seosoft
0
160
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
6
3.4k
Building an Out-of-Order CPU
latte72
1
740
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
490
XHTMLが残したもの
yosuke_furukawa
PRO
2
620
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
190
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Test your architecture with Archunit
thirion
2
2.4k
The Curse of the Amulet
leimatthew05
2
14k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
The Pragmatic Product Professional
lauravandoore
37
7.4k
30 Presentation Tips
portentint
PRO
1
390
Design in an AI World
tapps
1
310
Faster Mobile Websites
deanohume
310
32k
Transcript
AI 2023.04.06 水谷 亮太 株式会社ディー・エヌ・エー + GO株式会社 言語モデルにおける推論パラメー タと小説生成への適用について
AI 2 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について
AI 3 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について
AI ▪ ある文を入力としたときに、その次の単語を予測するモデル 4 言語モデルとは 最も単純なマルコフモデルもGPTもこの確率の計算をしているのは同じ。 赤い 魚 を 食べる Y ↑ここに出現する単語を予測 ▪ Yに入る単語は、以下のような条件付き確率の式において、最も確率
が大きくなるものが選択される
AI 5 手法名 手法概略 長所 短所 マルコフ連鎖 ある単語の出現が、その 1つ前の単語に依存する と仮定し、文の生成を行う
手法 - 簡単に実装できる - シンプルで解釈しやすい - 生成された文章が単調 - 長期的な文脈を考慮できないため、文 章の流れが不自然になることがある n-gram マルコフ連鎖で考慮する 文字をn個に拡張したも の - マルコフ連鎖よりも長期的な文脈を 考慮できる - nが大きくなると学習コストが指数的に増 大する - nが小さいと生成された文章が不自然に なることがある RNN RNNを利用したモデル - n-gramより長期的な文脈を考慮でき るため、より自然な文章を生成できる - 勾配消失問題により文が長くなると依存 関係が取得できない。 - 並列計算ができず、学習に時間がかか る Transformer Transformerを利用した モデル - RNNよりも高速に学習できる - 長期的な文脈を考慮できる - 解釈性が低い これまでの言語モデルの概略
AI 6 魚 を 食べる Transformer と 12.2% の 7.66%
とこで 5.69% 習慣 5.41% 。 3.86% encoder decorder 出力は全単語候補に対する確率 Transformerにおける単語生成イメージ
AI 7 ▪ 最も確率の高いものを選択するだけだと単調 ▪ 前後の文を考慮した確率の評価をする ▪ 繰り返しを発生しにくくする ▪ 自然な文になるよう確率値が低い単語も取り入れる
出力される確率をどう調整して文を生成する? パラメータを用いて調整 と 12.2% の 7.66% とこで 5.69% 習慣 5.41% 。 3.86%
8 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について
AI 9 ▪ ここで紹介するパラメータは下記に記載のあるtransformerのgenerate関数で使用で きるもの ▪ https://huggingface.co/docs/transformers/main_classes/text_generation 紹介するパラメータについて 文章生成コード例(GPT2)
AI 10 ▪ WebのGUI版は設定不可 ▪ 固定値が割り当てられてる? ▪ APIだと設定可能なものもある ▪ https://platform.openai.com/docs/api-reference/chat/create
ChatGPTだとどうなの? ChatGPTでも極端な設定にすると回答が壊れる。
AI 11 Transformerにおける推論パラメータ(抜粋) • 文章生成戦略を制御するパラメータ ◦ num_beams ◦ num_beam_groups ◦
penalty_alpha ◦ do_sample • モデルの出力ロジットを制御するパラメータ ◦ temperature ◦ top-k ◦ top-p • その他 ◦ no_repeat_ngram_size ◦ repetition_penalty
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% 魚 を 食べる と 、 その
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より長期的な視点での確率を 考慮できるので、より自然の文が生 成される可能性が高い。
AI 14 通常のbeam searchだと似たような文が複数生成されるため、groupを作り、 group毎に共起がある場合はペナルティが発生するようにする。 group beam search(num_beam_groups>1) https://arxiv.org/pdf/1610.02424.pdf
AI 15 contrastive search (penalty_alpha>0 and top_k>1) https://arxiv.org/pdf/2210.14140.pdf • 生成済みの単語とは性質の異なる単語が出力されやすくなり、一貫性を保ちつつ流暢な文が生
成できる • (話が飛びやすくなる気もするが、そういうものはそもそも候補に上がってこないか?) 生成済みの単語列とは類似度が低い単語を生成する手法 生成される単語 候補の集合 生成候補vに対する モデルの出力確率 縮退ペナルティ 候補となる単語と生成済みの単語 の類似度の最大値
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 文脈に沿わない単語を入れると末尾にそ の単語が含まれるだけの文になることも
AI 17 確率が最も高い単語が生成される方法では入力に対して必ず同じ文が生成され る。それでは不自然なため単語の生成を確率分布を用いて選択する sampling p と 12.2% の 7.66%
とこで 5.69% 魚を食べる モデルの出力xに対しsoftmaxをかけたものが確率 この確率をそのまま選択される確率とする。
AI 18 確率分布に重みをつけるパラメータ。出力の多様性に寄与する。 temperture T → ∞ :確率が均一になる T →
0 :確率の傾斜がより大きくなる。0だとサンプリングなしと等価 https://arxiv.org/pdf/1909.05858.pdf
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の対象となる
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の対象となる
AI 21 ▪ no_repeat_ngram_size ▪ 指定した数以上のngramに対し、生成を一回までに制限する ▪ repetition_penalty ▪ 生成済みの単語に対し、ペナルティをかける
繰り返しを防ぐためのパラメータ θ : repetation penalty https://arxiv.org/pdf/1909.05858.pdf
AI 22 目次 1. 言語モデルについて 2. Transformerにおける推論パラメータ 3. 言語モデルを用いた小説生成について
AI 23 ▪ 海外 ▪ NovelAI ▪ AI Dungeon ▪
国内 ▪ AIのべりすと ▪ AI BunCho 言語モデルを用いて文の生成を行うサービスの例 モデルはGPT2又は3をweb上にある小説等で用途に合うよう fine tuningしているケースが多い。
AI 24 ▪ モデルに入力できる文量に制限がある ▪ 文章量が制限を超えると書いた内容が反映されなくなり、設定が変わっ たり矛盾した行動が発生したりする ▪ 大局的な視点を持たない ▪
都度確率的に単語を生成するだけなので、文章としては破綻はしない が、所謂面白い文になりにくい 言語モデルで小説を生成する際の課題
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
AI 26 ▪ AI Dungeon の例 ▪ 主要な情報は別枠で作成し入力に加える ▪ Momory
▪ 記述した内容が本文の先頭に追加される ▪ 全体的なストーリー(要約) ▪ 登場キャラクター ▪ Author’s Note ▪ 記述した内容が本文の末尾近くに追加される ▪ 物語のジャンル ▪ 好ましい文体 ▪ 何が起こっているかの一般的なプロット ▪ 入力は末尾の方が参照されやすい 入力制約に対する工夫 https://help.aidungeon.io/faq/what-is-the-authors-note
AI 27 ▪ 現状だと人間がコントロールするしかない ▪ 登場人物やシーンを人間が指定して、良さげな文章が出てくるまでtry and error ▪ 生成したい内容にあったパラメータも探索した方が良い
▪ tempertureやtop-k等のパラメータはそのとき記述したい内容によって最適 なものが変わるためそこも探索した方が良い。 ▪ 現状はGPTによる小説生成サービスは自動生成というより執筆支援とい う意味合いが強い。 大局的な視点をもたないことへの対策
AI 28 ▪ 言語モデルは推論時に複数のパラメータを用いて文章の生成を制御し ている。またそのパラメータにより傾向に変化をつけることが可能 ▪ 現状の言語モデルでは一定以上の長さの小説を自動生成することはで きない(できなくもないが異常につまらないものができる) ▪ ChatGPTの学習では出力の好ましさを人間が評価して強化学習を行
う工程が存在するが、その部分を小説に特化して設定できればもう少 し良いものがつくれるかも?(文章による人間の感情のhack) まとめと感想