見出し画像

gpt2-japaneseの使い方 (3) - largeモデルによる日本語テキスト生成

gpt2-japanese」の「largeモデル」が公開されたので、AIによる日本語テキスト生成を試してみました。

前回

1. gpt2-japaneseのモデル

「gpt2-japanese」のモデルは3つあります。各モデルのパラメータ数は次のとおりです。

・smallモデル : 117M
・mediumモデル : 345M
・largeモデル : 774M

2. ランダムな日本語テキストの生成

はじめに、ランダムな日本語テキストの生成を試してみます。
手順は前々回と同様です。

モデル名を「medium」から「large」に変更して実行します。

# largeモデルのダウンロード
!wget https://www.nama.ne.jp/models/gpt2ja-large.tar.bz2
!tar xvfj gpt2ja-large.tar.bz2
# ランダムな日本語テキストの生成
!python gpt2-generate.py --model=gpt2ja-large --num_generate=1

結果は次のとおりです。

GMOインターネット株式会社(本社:東京都渋谷区、代表取締役社長:石野アキコ)のグループ会社、株式会社 GMOクリエイションは、当社の運営するオンラインゲームシミュレーション「ラグナロクオンライン」を<DATE> 日(月)より配信いたしました。

ラグナロクオンラインでは、「超強運の戦士“神威”と神威の戦い」を題材とした、「戦国の時代」と“戦国時代”を舞台とするシミュレーションが人気です。
                        
■「ラグナロクオンライン~神威の戦場編~」:<URL>
■「ラグナロクオンライン~神威の戦い編~」:<URL>
 

■ラグナロクオンラインについて
ラグナロクオンラインは、オンラインゲームやスマートフォン向けアプリで、誰でも簡単に遊ぶことができるゲームです。

・iOS版: <URL>
・Android版: <URL>

・Android版アプリ専用ダウンロード
App Store Urge のダウンロード専用ダウンロードページから、
<URL>

ダウンロードしたアプリを開くと、「無料」や「新規追加」、「無料」などの「追加」が可能です。

元の学習データそのままな雰囲気です。

3. 開始テキストに続く日本語テキストの生成

次に、開始テキストに続く日本語テキストの生成を試してみます。
これも手順は前々回と同様です。

モデル名を「medium」から「large」に変更して実行します。

#開始テキストに続く日本語テキストの生成
!python gpt2-generate.py --model=gpt2ja-medium --context="むかし、むかし、あるところに、おじいさんとおばあさんがいました。おじいさんは山へ刈かりに、おばあさんは川へ洗濯に行きました。"

結果は次のとおりです。

しかし、いつしか、おじいさんとおばあさんは別のところで、そのようになってきました。そして、あるときのこと、もうそれは、おじいさん、おばあさんのなかは、どういうわけか、死んじゃったのです」
「生きている」
「死んだあなただからか、いま起こったときなど、今このときはどこにあったのか、忘れてしまったり、したがりました」
「生きてる」
「あなたひとりではないです。あなたは、あなたひとりのために、誰かを傷つけるわけではありません。すべては、あなたでした。すべては、あなただけのためにして、あなたその人は、生きていたんです」

smallモデルより目に見えて良くなってるわけでもなさそうな雰囲気です。

4. ファインチューニング

最後にファインチューニングを試してみます。
手順は前回と同様です。

「Google Colab」ではメモリが足りなかったので、ローカルでGPUなしでゆっくりと300エポック学習させました。

[1 | 60.16] loss=3.68 avg=3.68
[2 | 131.09] loss=3.78 avg=3.73
[3 | 194.80] loss=3.48 avg=3.65
   :
[298 | 11568.98] loss=0.03 avg=0.13
[299 | 11605.43] loss=0.02 avg=0.13
[300 | 11641.42] loss=0.07 avg=0.13

ランダムな日本語テキスト生成は、次のとおりです。

# ランダムな日本語テキストの生成
$ python gpt2-generate.py --model=checkpoint/gpr2ja-finetune_run1-large
ぶく太っち…。…お兄ちゃんだって、いつも運動しながらだったら問題ないよね?
========
ちぃ、おぼえた。アフガニスたん(;´Д`)ハアハアパキスたん(;´Д`)ハアハアウズベキスたん(;´Д`)ハアハアトルクメニスたん(;´Д`)ハアハア・・・・・・(;´Д`)…ハアハア・・・・・・な~んて嘘だよ、お兄ちゃん(;´Д`)
========
ハソン カショ ガ アリマス...ERROR 4gtbkM1_Check...OkM2_Check...OkM3_Check...OkM4_Check...FailureM5_Check...Okシバラクオマチクダサイ.......…な~んて嘘だよ、お兄ちゃん(ニヤソ今日はエイプリルフールなのでした~♪
========
も~♪もないなら、こちらがいいんだから♪
========​
ちぃ、おぼえた。アフガニスたん(;´Д)ハアハアパキスたん(;´Д)ハアハアウズベキスたん(;´Д)ハアハアトルクメニスたん(;´Д)ハアハア・・・・・・。…ちぃ、物知り?
========​

開始テキストに続く日本語テキスト生成は、次のとおりです。

# 開始テキストに続く日本語テキストの生成
$ python gpt2-generate.py --model=checkpoint/gpr2ja-finetune_run1-large --context=おはよう、お兄ちゃん。
これからどうなるのかなぁ?今日、実はね…。今度うちの学校で女子○学生の赤の群集が襲ってきたんだけど…。どうなったと思う?…どうなったと思う?…どうしょうね…?お兄ちゃん、明日、なんだか変わった人に噂になってるけど、何か意味あるのかな?
========
今日も今日とてアキハバラァ~ン♪秋葉原へ行ったことある人も無い人も、心の中には秋葉原。特典目当てで複数買って、実用性の無いグッズに金銭投入。日本経済を影で支えるそんなお兄ちゃんたちに、笑顔でエールを送りたいな♪
========
今日、実はね…、妹キャラクター連盟でお馴染みの声優さんの人たちに、「夏コミ2日目は一緒に行きましょう」って誘われてね…。…曖昧に返事したんだけど、私、断ろうかなぁ…。
========
今日も今日とてアキハバラァ~ン♪………。わ、私からしたら、この国の文化って、こんな感じかな?
========
この間、お兄ちゃんの耳からちょっと脳を覗いたんだけど、それ系の願望が見えたから今日はサービスしてきたのに…。
========

元の学習データに近すぎる雰囲気です。

5. おわりに

残念ながらlargeモデルは期待のテキストはあまりできませんでした。

smallモデルの方が期待のテキストができてた気がします。

ファインチューニングのデータセットがあまりに小さすぎるのも原因にありそうなので、大きな対話データセットを用意して再挑戦してみようと思います。



この記事が気に入ったらサポートをしてみませんか?