見出し画像

GPT-2にAランクサンダーの続きを書いてもらう

gpt2-japanese」がワード単位で学習させたv2モデル(117Mパラメーター)が公開されてたので軽く試してみました。

1. gpt-2japaneseの使い方

使い方は前回と同じで、モデル名の最後に「_v2」を付けることでv2モデルが使えます。

2. 実験

メガCDの名作「Aランクサンダー」の導入部分の続きを、GTP-2に書いてもらいます。​

【コンテキスト】
男は改造後始めて眼を覚ます。ここは平内新島。地下二百メートルにある、秘密結社「ブルズ・アイ」基地内。

<<省略>>

「いいかげんにしてくれ! 俺には何がなんだかさっぱりわからない! それにあんた、何者だ?」
「ふん…。Aランクっていうのは、どうしてどいつもこいつも、こんなに扱い辛いんだ…。ああ…。言い忘れてた、俺の名は陣八。よろしくなサンダー。」"

◎ 実験1
「--top_k=40 --top_p=0」で試してみました。

!python gpt2-generate.py --model ja-117M_novel_v2 --top_k=40 --top_p=0 --temperature=1 --context="<省略>"

出力結果1

陣八は、白衣の下のポケットから、赤いリボンのついた白い紙を取り出し、男の前に置いた。
「これは?」
「これは、この研究所の所長の陣八だ。」
「陣八。」
男は陣八に紙を差し出す。
「これは、君の研究成果だ。」
陣八は紙を受け取ると、男の目の前に差し出した。
「これは?」
「研究成果。」
陣八は紙を受け取り、紙から目を上げて、
「これは、君らの実験の被験体だ。」
「被験体の実験。」
「実験...。実験...。実験...。実験...。実験。」

【出力結果2

お前はAランクだ。
「ああ...。俺は、Dランクだ。」
これは、もう、だめだ。
「なあ、サンダーくん。俺は、何なのか?」
「ん?さあ、俺は...。ああ、俺は...。俺は、...俺は、」「
「ん?どうしたんだ?サンダーくん。」
「俺は、...」
「俺がどうかしたか?俺は、俺は...。」
「どうしたんだ?サンダーくん。」
「俺も、俺は...、いや、何でもない。」
そうだ、何も感じず、ただ、ただ、俺は、

出力結果3

「...」
「おい、サンダー!」
「なんだ、お前は!」
「あっ、兄貴!」
「兄貴じゃないぜ?俺は陣八だ。今日は、お前が来なきゃ、俺がここに滞在するところだったんだよ。...」
「おい、兄貴!」
「兄貴じゃねえ!」
「兄貴じゃないってなんだよ!」
「兄貴じゃねえじゃねえ!」
「兄貴じゃない!兄貴じゃない!」
「兄貴じゃない!」
「兄貴じゃない!」
「兄貴じゃない兄貴じゃない兄貴じゃない!」
...。
俺は、自分がおかしいことを全く自覚してなかった。
兄貴じゃない兄貴じゃない兄貴じゃない兄貴じゃない兄貴じゃない兄貴の思いを知ってしまった。

出力結果4

「はぁー。」
再びの診察を終え、医師達が退出するのを確認した後、男は再びベッドに寝転がり横になると、静かに目を閉じた。しばらくして目を開けると、そこには見知らぬ顔が、ベッドの真ん中で寝ていた。そして、彼はある女性医師に話しかける。
「おい、君!君は誰だ?」
「君は?君は?」
「そうだ、今私の質問に答えると...。君は私ではない...。」
「そうか...。じゃあ、君の名前は?」
「そう...。君が名乗れ。」
そう言って、医師は患者の目の前に座ると、彼の名に反応した。
「おおい、君はもしや、その、名乗れ?」
「...」
医師の眉がぴくりと動く。
医師は「名乗るまでもないだろう。」そう言った。
「名乗れ。」
彼は医師の答えに不満をあらわにした。
そうは言ったものの、名乗れない理由はその女性医師の口から、名前を聞いたせいだ。
「名前?」
「そうだ。」と答える。
彼の名前を聞いた医師は突然顔を強張らせ、しばらく沈黙した後、口を開いた。
「私は、このバーのマスターで、名を陣八と言う。君とは、その、知り合いなの?」
「知っている。」
そう言って、彼は再び自分の頬をつねってみた。
すると今度は、自分の頬をつねるのをやめた。
彼が、顔をつねったときの痛みを思い出しているのか、それとも、別の感情なのか...。そのどちらも自分の頭にはなかった。

◎ 実験1
「--top_k=0 --top_p=1.0」で試してみました。

!python gpt2-generate.py --model ja-117M_novel_v2 --top_k=0 --top_p=1.0 --temperature=0.7 --context="<省略>"

出力結果1

「陣八、か...。まぁいいか。」
「なぜだ?どうして俺たちのボスがそんなに俺をだますんだ?人間じゃないと思う。」
「どういうことだ?俺たちのボスは超人じゃないか。俺たちのボスは何だ?まだ何もわかっていないぞ。」
「それはどういうことだ?」
「...その...、マスターに頼まれてな...。この世界の全てをこんな目にばかり!俺の世界は、人間の欲望で満ちているんだ!だから俺たちは、そんな世界全部が、この俺なんかに明け渡してしまいたいんだ!だから俺は、この人生に終止符を打つことにした。」
「ほう...。これはなかなか男前な顔をしよるな。」
「俺たちは、人間なんてどうでもいい。俺たちは、俺の人生に終止符を刻めればいい。」
「それは、俺とマスターが、これからもともに生きようということだな...。」
「ああ、これが俺の答えだ!」
「俺たちは、こんな世界全部を、好きにしていいんだ。」
「そうか...。俺たちは、この先もずっと、人間らしく生きていこう。」
「お前は、人間らしいな。」
「...、お前は、ほんと、人間らしいな。」
「俺たちなら、この人生も、きっと、俺なんかのように、人間らしく生きていけます。」
「ああ、楽しいな...。俺は、こんな世界全部が、心から生きてるんだから...。」
「お前は、俺のものになれるように、生きていこう。」
「ああ、お前も、また、人間らしく生きていこう。」

出力結果2

「陣八...、そうだ。俺は、陣八だ。」
「おい、サンダー。」
「なんだ、君か?なんだ、この変な人...。お前は、俺の仲間か?」
「いいえ。仲間は仲間です。」
「なんだ、なんだ、その変な人は。」
「あいつもか...。だが、まぁいい。じゃあ、俺はまた会おう。」
「ああ...、またね...。」
その時、陣八の頭上に、300人の女性が現れた。
「サンダー、あんた...。あんたもか?この方は例の怪しい奴か!?違う、違うぞ!代われ!無礼講だ!俺とて、この人たちには用がある。」
「だれだ、その人たちは?!お、俺たちと、その...。知り合いか?」
「...」
「どうじゃ、どうじゃ?俺たちと、その...。おまえら、俺の仲間か?」
「俺は、仲間だ。」
「なら、おい、お前は何者だ?」
「俺は、俺の...、俺たちの仲間だ。」
「それ、は...。あんた、何か用か?」
「ああ、そうだ。俺は、サンダー。」
「なんだ、俺たちは、おまえらの仲間か?」
「違う、俺は、俺達は、俺の仲間だ。」
「おい、サンダー、お前、本当なのか?俺達は、おまえらの仲間なのか?」「ああ、そうだ。俺たち、俺は、お前らの仲間だ。」
「ふん、ふざけるな!俺たちは、俺の仲間だ。」

◎ 実験3
「--top_k=10 --top_p=0」で試してみました。

!python gpt2-generate.py --model ja-117M_novel_v2 --top_k=10 --top_p=0 --temperature=0.7 --context="<省略>"

ランダムさが少ないせいか繰り返しばかり。

あの時、兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴ではない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない兄貴でもない
<省略>

◎ 実験4
「--top_k=0 --top_p=0.1」で試してみました。

!python gpt2-generate.py --model ja-117M_novel_v2 --top_k=0 --top_p=0.1 --temperature=0.7 --context="<省略>"

ランダムさが少ないせいか繰り返しばかり。

「陣八...。俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、俺は、
<省略>

3. モデルのパラメータ数

今回のモデルは、日本語を学習させた117Mパラメータのモデルです。最近、恐るべき実力と話題の「GPT-3」は1.5Bパラメータ(177Mの1400倍)を持ちます。

OpenAIから大きなモデルも提供されていますが、英語で学習されています。

◎ GPT-2
・124Mパラメータモデル(ディスク 500MB)
・355Mパラメータモデル(ディスク 1.5GB)
・774Mパラメータモデル(ディスク 3GB)
・1.5Bパラメータモデル

◎ GPT-3
・175Bパラメータモデル

より大きな日本語のモデルの訓練費用をクラウドファウンディングで募集されてます。締切は9/20日。


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