Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
言語モデルにおける推論パラメータと小説生成への適用について
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
MIZUTANI RYOTA
May 01, 2023
Programming
830
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
7k
JPEGの仕組みと圧縮品質が CV性能に与える影響について
rmizuta3
1
1.3k
PythonユーザによるRust入門
rmizuta3
15
8.5k
プロテニスにおいて疲れが勝敗に与える影響を定量化してみる
rmizuta3
2
1.4k
Other Decks in Programming
See All in Programming
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
100
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
120
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
160
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
140
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
510
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
140
Building a Meta Ray-Ban display app
akkeylab
0
180
メールのエイリアス機能を履き違えない
isshinfunada
0
250
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
280
プロポーザルを書いてもらう
pvcresin
0
570
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Featured
See All Featured
Done Done
chrislema
186
16k
Un-Boring Meetings
codingconduct
0
390
Statistics for Hackers
jakevdp
799
230k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
What's in a price? How to price your products and services
michaelherold
247
13k
The Curious Case for Waylosing
cassininazir
1
480
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
550
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
380
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
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) まとめと感想