AIがnoteを書いてくれるかも?文章を生成してくれるAIモデル「GPT-2」を使って自分のnoteを学習させてみた
こんにちは!ナガメ研究所です。今流行の文章生成AIモデル”GPT-2”の日本語版を使って遊んでみたので、その内容を書いていきます。GPT-2の詳しい仕組みやアルゴリズムやインストール方法については触れていないのでご了承ください。よろしくお願いします。
はじめに
GPT-2って何?って方へ、簡単な説明をします。GPT-2とは、これまでたくさんの人が書いてきた大量の文章を学習したモデルです。単語、もしくは文章を入力として(これをプロンプトという)、次に来るであろう単語を予測し、予測を繰り返すことで文章が生成されます。例としては
(入力)おはよう
↓
(出力)おはようございます。本日、関東地方も梅雨明けしましたね。暑い...体調管理に気を付けたいですね。
上記の文章は実際にGPT-2の日本語版モデルにおはようと入力したときの返答になります。このように、沢山の文章を見てきたモデルは、自然な文章を生成できます。 このモデルは、最大13億というパラメータと大量のデータセットで数ヶ月以上学習を行っています。とても一般人の計算リソースでは終わりそうにありませんが、これが無料で公開されているとなれば使わない手はありません。早速、いろいろな文章を生成してみましょう。意味不明な文章も生成されますが、とりあえず筆者の方でそれっぽいのをチョイスしてみます。
GPT-2で入力の続きの文章を生成してみた結果
入力) 今日の夜ご飯は
出力) 鶏モモ肉の味噌焼きと、 ゆでたゴボウとキクラゲのナムルのスープです。 鶏モモ肉の味噌焼きは、初めて食べたのでビックリしちゃいましたが
考察:前の文章の鶏モモ肉が再度出てきています。文章が繋がっていて分かりやすいですね。ゆでたごぼうとキクラゲのナムルのスープとは一体・・・?
入力) 昨日の件について
出力) 僕からそのお詫びをし、みなさんに謝罪する所存です。 ) 何人と一緒になってもこうゆう場にたたずむと思うとちょっと怖いですよね・・
考察:僕は何か失敗をしてしまったようです笑
人間が見ても、入力の文章の出だしは謝罪の場合が多い感じがするので、納得ですね
入力) アイドルとは
出力) >歌手、タレント、バラエティ番組出演者、作家、作家、音楽家、スポーツ関係者、芸能人のことである。 とりわけ、吉本興業をはじめとするメディア業界の業界・芸術業界に関係したタレントを指すことが多い。 広義には、映画、
考察:アイドルについてのイメージをAIに聞いてみました。吉本興業などの名称がタレント関連の単語と結びついていますね。
入力) ポーカーの将来は
出力) ポーカーのゲームとして純粋に新しいものを作り出すことに焦点が当てられています。ポーカープレイヤーが新しいゲームやゲームシステムを作り出す時、一番の課題は、彼らのゲームプレイをより良くすること です
考察:ポーカーの将来をAIに語ってもらいました。ポーカーに新しいもの・・・もしかしてポーカーAIのナガメのこと?!(←自意識過剰)
これって何の役に立つの?
かなり自然な文章が生成できているようです。しかし、これってなんの役に立つのでしょうか?
一つは、サービスのQ&A対応に応用できるでしょう。質問の内容を分析し、適切な回答をする状況で効果を発揮しそうです。
他に、スポーツなどの実況・解説に使えそうです。筆者のポーカーAI開発 part3 〜AIがポーカーを実況・解説する第一歩〜でも書きましたが、こういった場面でAIが解説するのは面白そうです。
他にも様々な入力を試しましたが、専門用語には弱いようで、うまく文章を生成してくれませんでした。そこで、新たな知識・文章を与える再学習(ファインチューニング)と呼ばれる手法が有効になります。もともと、GPT-2は事前学習モデルと言い、いわば文章生成の基礎を持ったモデルという位置付けです。文法や単語の意味はある程度理解してくれているので、そこから様々なケースに対応させるため、データを用意して再度学習させます。これが再学習となります。
再学習が必要→じゃあデータはどこから?
頑張って集めるしかありません。筆者が普段、ポーカーAIの開発をメインに行っていますが、解説するAIを作るには文章データの確保が死活問題です。将来的には、プロが解説するくらい深い文章を書けるAIを作りたいですが、まだ先は長そうです。
とりあえず、そこそこ文章があって自由に使えるデータとして、これまで筆者が書いてきたポーカーに関しての記事をデータに再学習してみることにしました!
自分の記事を学習してもらう
これまでの文章を全てtxtファイルにコピペして、再学習してみます。全部で10886文字でした。(何気に、1万文字超えてたんですね。。。これからも頑張って書きます!)
学習に時間がかかるので、今回はgpt2-mediumという、2番目に大きなモデルを使います。恐らく1万文字でもデータとしては少ないくらいですが、とりあえずやってみます。
再学習した結果
入力) ポーカーの実況・解説は、
元のモデルの出力) プレイヤー1人に対して1プレイヤーがポーカーの試合を実況・解説。 ゲストプレイヤーは全員がプレイする。 それぞれのプレイは、視聴者・視聴者ごとにルールが違う。
筆者のnoteを学習したモデルの出力) コンピュータが実況・解説を行うのが一般的。 中国語では、主にコンピュータが実況・解説を行うが、まれに手話を使う実況・解説を行う
考察:コンピュータが実況・解説を行うのが一般的な世界線のようです。けど、これって将来的にはスゴク有り得そうな光景ですよね!
入力の文章が、学習した記事の内容に触れているので文章がそれっぽくなってしまってずるいですが、元のモデルよりは欲しい文章が生成できています。
入力) ポーカー人工知能のナガメは、
元のモデルの出力) 自らの才能への疑問を抱いていた。 さらなる宇宙と人類への貢献を目指し、 ポーカーチップを作りながら自らの才能について考えるのだった。
筆者のnoteを学習したモデルの出力) 自分のプレイスタイルをコンピュータに学習させて、高いプレイ技術をもつ子供を作ることに取り組んでいるそうです。うまく学習させれば、人間ができないようなプレイをする
考察:AIという単語が日本語版モデルでうまく入力できないので、人工知能に置き換えました。出力された文章は、筆者がやっていることをうまく反映できていますね。ちょっと感動~
ただ、元モデルの文章は意味不明で面白いため、どっちがいいかは意見が分かれそうです。
おわりに
日本語版GPT-2を使って遊んでみました。筆者のこれまでの記事を学習したモデルは、かなりそれっぽい文章を書けていたんじゃないでしょうか?
今後の記事はAIが書いてるかも・・・?いや、もしかしたらこの記事も実は・・・?
今後もAI関連の記事を書いていきますので、ぜひnoteとツイッターのフォロー、スキをお願いします!