Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Let's generate sentences with BERT
Search
payanotty
January 06, 2022
0
450
Let's generate sentences with BERT
connpassで実施したセミナーの資料になります。
https://studyco.connpass.com/event/234519/
payanotty
January 06, 2022
Tweet
Share
More Decks by payanotty
See All by payanotty
トークナイザー入門
payanotty
2
1.2k
LLM_Prompt_Recovery
payanotty
3
820
Embeddingモデルを使ったベクトル化のしくみ、fine-tuning手法を解説
payanotty
14
4.1k
Transformerによるテキストベクトル化を解説
payanotty
4
2.2k
Kaggle_LLMコンペの攻略法を解説.pdf
payanotty
1
1.3k
ManimMLでイケてるアニメーションを作ろう
payanotty
0
640
Lets Finetune LLM
payanotty
3
1.2k
Stable Diffusion Web UI, Let Your Fave Eat Ramen
payanotty
1
970
Lets Finetune Stable Diffusion
payanotty
0
1.2k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Visualization
eitanlees
145
15k
Building an army of robots
kneath
302
43k
Writing Fast Ruby
sferik
627
61k
Navigating Team Friction
lara
183
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Ruby is Unlike a Banana
tanoku
97
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Code Reviewing Like a Champion
maltzj
520
39k
Transcript
BERTで文章生成してみよう ~なろう風タイトル生成モデル~ 早野康太
自己紹介 • 名前 ◦ 早野 康太 • お仕事 ◦ 自然言語モデルの改善
• 趣味 ◦ 猫、犬 ▪ YouTube ◦ ゲーム ▪ 音ゲ、ウマ娘、ギャルゲ ◦ アニメ ▪ 幅広く
アジェンダ • BERT紹介 ◦ 自然言語処理とは ◦ Transformer ◦ TransformerからBERTへ
• なろう風タイトル生成モデル
BERT紹介
自然言語処理 • 深層学習で「ことば」を処理する ◦ 翻訳 ▪ Google翻訳 ▪ DeepL ◦
質問応答 ▪ Alexa ◦ 文章生成 ▪ AIのべりすと BERT紹介
最近のAIはすごい • AIのべりすと ◦ 入力した文章の続きをAIが 書いてくれる 出典: https://ai-novel.com 吾輩は猫である。名前はまだない。
BERT紹介
最近のAIはすごい • AIのべりすと ◦ 入力した文章の続きをAIが 書いてくれる 出典: https://ai-novel.com
吾輩は猫である。名前はまだない。 そんな冗談が脳裏をよぎるほど、その日、俺の 気分は沈んでいた。 「……」 時刻は午前十一時。場所は近所の公園だ。休 日なだけあってそれなりに人通りもあるが、遊 具で遊ぶ子供の姿はない。皆一様にベンチに 腰掛けて、何やら物思いに耽っているようだ。 BERT紹介
Transformer • Attention Is All You Need (Łukasz Kaiser
et al., 2017) ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで 自然言語処理モデルの性能が大きく向上 BERT紹介
• Attention Is All You Need (Łukasz Kaiser et al.,
2017) ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで 自然言語処理モデルの性能が大きく向上 Transformer チノ ちゃん かわいい 推し は 誰 ? 入 力 文 参考情報 チノ ちゃん 以外 ありえん BERT紹介
• Attention Is All You Need (Łukasz Kaiser et al.,
2017) ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで 自然言語処理モデルの性能が大きく向上 Transformer チノ ちゃん かわいい 推し は 誰 ? 入 力 文 参考情報 チノ ちゃん 以外 ありえん BERT紹介
• What is 関連度? ◦ 単語をベクトルで表した時の内積 ◦ ベクトルの向いている「方向の近さ」を表す Transformer
チ ノ かわいい θ チノ・かわいい = |チノ||かわいい|cosθ 【Character】チノ - 「ご注文はうさぎですか?」シリーズサイト チノちゃんって誰だよ? BERT紹介
• Attention Is All You Need (Łukasz Kaiser et al.,
2017) ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで 自然言語処理モデルの性能が大きく向上 チノ ちゃん かわいい 推し は 誰 ? 入 力 文 参考情報 チノ ちゃん 以外 ありえん Transformer BERT紹介 Query Target
Transformer BERT紹介 • Query (Q)は行列 • Key (K), Value
(V) はいずれもベクトルを並べて行列にしたもの Key, Value: { key1: value1, key2: value2, … }
Transformer BERT紹介 • クエリを元に 辞書から 索引しているイメージ • 特にQ, K,
Vにすべて同じ値を用 いるSelf-Attention が用いられる 汚い手書きでゴメンナサイ
• Bidirectional Encoder Representations from Transformers ◦ BERT: Pre-training of
Deep Bidirectional Transformers for Language Understanding ◦ Transformerによる双方向のエンコード表現 ▪ Transformerモデルの一部分を利用したモデル ◦ Googleが2018年に発表 • 当時の自然言語処理タスクの最高記録を軒並み塗り替えた • 転移学習 (finetuning) により あらゆる自然言語処理タスクに応用可能な汎用性の高さ TransformerからBERTへ BERT紹介
BERTのアーキテクチャ BERT紹介 Embedding Attention Attention Output Sentence トークナイズされた文章 固定長のベクトルに埋め込み ×12層のSelf-Attention
固定長のベクトル
BERTのアーキテクチャ BERT紹介 Embedding Attention Attention Output Sentence トークナイズされた文章 固定長のベクトルに埋め込み ×12層のSelf-Attention
固定長のベクトル ご注文はうさぎですか? ご, 注文, は, うさぎ, ですか, ? 0, 1, 2, 3, 4, 5 形態素解析 トークンID化 E 0 , E 1 , E 2 , E 3 , E 4 , E 5 ベクトル化
双方向の意味 BERT紹介 ご 注文 は うさぎ ですか ? T 1
双方向の文脈を見て 埋め込みを出力する
双方向の意味 BERT紹介 ご 注文 は うさぎ ですか ? 注文 の
多い 料理 店 T 1 T 2 双方向の文脈を見て 埋め込みを出力する
• Masked Languege Model ◦ 単語単位での文脈理解 ◦ ランダムに文章の一部をマスクして学習する BERTの事前学習
(pretraining) チノ ちゃん かわい すぎて 川 に なった [MASK] ちゃん かわい すぎて [MASK] に なった [MASK]に入る単語を予測 BERT紹介
• Masked Languege Model ◦ 単語単位での文脈理解 • Next Sentence Prediction
◦ 文章単位での文脈理解 BERTの事前学習 (pretraining) チノ ちゃん かわい すぎて 川 に なった そう は ならん やろ 2つの文章が連続するかどうかを予測 BERT紹介
• 事前学習モデルを、解きたいタスクに合わせてチューニング BERTの転移学習 (finetuning) Pretrained BERT Model Question Answering Named
Entity Recognition Sentiment Analysis Text Summarization BERT紹介
なろう風タイトル生成モデル
• 文章を入力したら なろう風のタイトルを生成してみたい ◦ BERTを転移学習(fine-tuning)して文章生成モデルを作ってみる やりたいこと BERTで あそんでみた
• 「小説家になろう」にありがちなタイトル ◦ 異世界転生しがち ▪ 無職転生~異世界行ったら本気出す ◦ 魔王とか勇者とか入りがち ▪
盾の勇者の成り上がり ▪ 魔王様、リトライ! ◦ めっちゃ説明してくれるじゃん ▪ (この世界はもう俺が救って富と権力を手に入れたし、女騎士や女 魔王と城で楽しく暮らしてるから、俺以外の勇者は)もう異世界に 来ないでください。 なろう風とは? BERTで あそんでみた
• 日本語BERT ◦ 東北大の乾研究室が公開している事前学習済みモデル ▪ 日本語Wikipediaの約1700万テキストで学習したもの ▪ https://huggingface.co/cl-tohoku
モデル BERTで あそんでみた Encoder BERT Input ご注文は うさぎですか? Decoder BERT Output うさぎを注文したら 異世界に 転生した件について
BERTのアーキテクチャ Embedding Attention Attention Output Sentence トークナイズされた文章 固定長のベクトルに埋め込み 固定長のベクトル BERTで
あそんでみた ×12層のSelf-Attention
• 「小説家になろう」からAPIで取得したタイトルとあらすじのペア ◦ 合計約10万件 • あらすじを入力として、タイトルをラベルとして使用した 学習データ
BERTで あそんでみた Input 女の子たちの 日常を描く Model Output きんいろ モザイク ご注文は うさぎですか? Label Loss
• 実行環境 ◦ Windows(WSL2) ◦ CPU: ▪ AMD Ryzen9 3900
▪ メモリ: 32GB ◦ GPU: ▪ NVIDIA GeForce RTX 3070 ▪ メモリ: 8GB • 16GB以上あった方がいい • 学習時間 ◦ 50 hour (/13エポック) 実行環境や学習パラメータなど BERTで あそんでみた ハイパーパラメータ 値 Epochs 13 Learning rate 5e-5 Batch size 4 Gradient Accumulation Steps 16 Scheduler Linear Warmup fraction 0.06
タイトル生成してみる BERTで あそんでみた あらすじ かつてこの世の全てを手に入れた男、海賊王ゴールド・ロジャー。 彼が遺した「ひとつなぎの大秘宝(ワンピース)」をめぐり、 幾多の海賊達が覇権を賭けて争う「大海賊時代」が到来した。 ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた あらすじ かつてこの世の全てを手に入れた男、海賊王ゴールド・ロジャー。 彼が遺した「ひとつなぎの大秘宝(ワンピース)」をめぐり、 幾多の海賊達が覇権を賭けて争う「大海賊時代」が到来した。 生成されたタイトル ゴールド・オーク
~1億年かけてワンピースを作ろうとしたら、 いつのまにか大海賊時代に巻き込まれました!?~ ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた あらすじ 時は大正。竈門炭治郎は、家族とともに山でつつましくも幸せな日々をおくって いた。ある日、町で炭を売りに出かけた炭治郎が山に戻ると、家族は鬼に襲わ れ血だまりの中で絶命していた。 ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた あらすじ 時は大正。竈門炭治郎は、家族とともに山でつつましくも幸せな日々をおくって いた。ある日、町で炭を売りに出かけた炭治郎が山に戻ると、家族は鬼に襲わ れ血だまりの中で絶命していた。 生成されたタイトル
炭治郎の異世界血風録(三十と一夜短編第60回) ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた あらすじ 推理作家の父と元女優の母を持ち、シャーロック・ホームズを敬愛する高校生 探偵工藤新一は、大人顔負けの推理力と洞察力を併せ持ち、「日本警察の救 世主」と言われるまでの活躍をみせていた。 ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた あらすじ 推理作家の父と元女優の母を持ち、シャーロック・ホームズを敬愛する高校生 探偵工藤新一は、大人顔負けの推理力と洞察力を併せ持ち、「日本警察の救 世主」と言われるまでの活躍をみせていた。 生成されたタイトル
探偵新一郎の事件簿 ~第一次大戦は狂信的な雰囲気を持っていたので、とりあえず自由に生きよ うと思います!!~ ※Wikipediaより引用
タイトル生成してみる BERTで あそんでみた タイトル 名探偵コナン
タイトル生成してみる BERTで あそんでみた タイトル 名探偵コナン 生成されたタイトル 名探偵コナン 第36話「あたらしいバレンタイン」 ~推理小説を投稿していたらいつのまにか美少女に一目惚れされた件~
タイトル生成してみる BERTで あそんでみた タイトル 呪術廻戦
タイトル生成してみる BERTで あそんでみた タイトル 呪術廻戦 生成されたタイトル 呪われて廻った魔弾使い(エクスプローラー)【第二次世界大戦編】
タイトル生成してみる BERTで あそんでみた タイトル ウマ娘 プリティーダービー
タイトル生成してみる BERTで あそんでみた タイトル ウマ娘 プリティーダービー 生成されたタイトル ウマ娘 プリティーダービー 優勝馬に転生したので、とりあえず競馬で勝つことを目指します!
まとめ • BERT ◦ 汎用的なタスクに応用可能な事前学習済みモデル • BERTを利用した「なろう風」タイトル生成 ◦ 日本語的に自然な文章
◦ なろうテイストを反映したタイトルを生成できていた ◦ 入力文の文意をあまり解釈できていないことが課題