見出し画像

Twitter bot「AI小説家」ができるまで①

GPT-2を使って何か面白いアプリが作れないかを考えていたとき、Twitterのbot機能に着目しました。Bot特有の一定期間内に、ツイートをする特徴と、GPT-2で生成した小説の1フレーズを組み合わせることで、勝手に小説が生み出されるという状況を作ってみたいな、と思いさくっと作ってみた過程を紹介します。

はじめに

GPT-2は、テスラやスペースXなどで知られるイーロン・マスク氏も設立に関わったOpenAI社が開発した大規模トランスベースの言語モデルです。

https://openai.com/blog/better-language-models/(引用:OpenAI)

簡単に説明すると、GPT-2は、前の単語を踏まえて、次に来る単語を予測します。つまり、歌詞や、小説なども、データを流し込めば、膨大なパラメーターによって、その続きを自動生成できるのです。それを使って、ツイートのストックを貯める作業を行います。

今回は、この「ツイートのストックを貯める作業」についてまとめます。
早速作ってみましょう!!、、、と言いたいところですが、GPT-2をTwitter用にチューニングした人がGit hubにあったのでその方のコードを1部使ってやります。

参考:https://github.com/minimaxir/gpt-2-simple
Twitter:@minimaxir MaxWoolf氏

必要な物

・学習データ(csvファイル)
・Googleアカウント
・エラーに挫けない強い気持ち

csvファイルを作る際は、文字化けや、ルビを削除するなど調整を行ってください。また、Colabを使うので、Googleアカウントだけは事前に用意してください。機械学習は地道な作業が大半です。がんばりましょう。

工程

① Gdrive をマウントします

from google.colab import drive
drive.mount('/content/drive')

② ディレクトリに移動します

!cd drive/MyDrive/**

③ Tensorflow他、データセットをインストールします

!pip install tensorflow==1.15

!pip install -q gpt-2-simple
import gpt_2_simple as gpt2
from datetime import datetime
from google.colab import files

④ GPT-2をダウンロードします(最小モデルの124Mモデルを選択)

gpt2.download_gpt2(model_name="124M")

⑤各自で用意した学習データ(csvファイル)をGdriveにアップロードします

⑥ アップロードしたファイルを指定します

file_name = "**.csv"

⑦ 学習させます

!gpt_2_simple generate --temperature 1.0 --nsamples 20 --batch_size 20 --length 50 --prefix " <| startoftext |> " --truncate " <| endoftext |> " --include_prefix False --nfiles 5

⑧ 調整したオリジナルの学習モデルをもとに、文章を生成します

!gpt_2_simple generate --nsamples 500


以上で、GPT-2を使った、文章生成の軸は終わりです。ファイル内に、 .txt 形式で出力されたファイルを何パターンか実行し、ツイート用のストックを貯めましょう。

次回予告

次の note では、今回生成した .txt データをもとに、webサーバーにbotのプログラムを上げて、運用できるようにする話を書きます。

著作権切れの作品なので、学習済みモデルを配布しようかなーとか思っていたり、いなかったり、、、

Twitter 上で、運用しているので、参考までによかったら

では、また~。


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