rinnaの日本語GPTモデルを使って文章を自動生成してみる

文章の自動生成ってAIでできるよね?
そうだね、今や文章もAIで記述可能だね。

今回はrinnaの日本語に特化したGPTモデルを使って文章を自動生成するっていうことをやってみます。前にGPT-2を使って同じようなことをしましたね。

今回はそれとは別のモデルを使って文章を生成してみます。

記事の内容
  • rinnaの日本語GPTモデルを使って文章を自動生成する

どんな文章を生成することができるのか気になる方は参考にしてみてください。

文章を生成してくれるサービスに関しては以下の記事でまとめているから、他のサービスが気になったら目を通してみてくださね。

rinnaの日本語モデルどんなものだろうか

簡単にrinnaの日本語GPTモデルを試してみる

HuggingFaceのページの右側からテキストを入力すると、それに続くテキストを生成してくれます。

 

ただ実行してもモデルのローディングが終わらないですね・・・普通にコード実行してやってみましょう。

コードを実行してrinnaのGPTモデルで文章を生成する

GoogleColaboratoryからコードを実行します。

transformersとsentencepieceが必要なのでインストールします。バージョン指定しないで入れたら、コード実行時にエラーが起きたのでバージョンを指定して入れます。

!pip install transformers==4.4.2
!pip install sentencepiece==0.1.91
import torch
from transformers import T5Tokenizer, AutoModelForCausalLM

tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt-1b")
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-1b")

if torch.cuda.is_available():
    model = model.to("cuda")

text = "今日は雨だ。こんな日は家にこもって読書をするに限る。"
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")

with torch.no_grad():
    output_ids = model.generate(
        token_ids.to(model.device),
        max_length=500,
        min_length=100,
        do_sample=True,
        top_k=500,
        top_p=0.95,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id,
        bad_word_ids=[[tokenizer.unk_token_id]]
    )

output = tokenizer.decode(output_ids.tolist()[0])
print(output)  

これを実行すると以下の文章が生成されました。

今日は雨だ。こんな日は家にこもって読書をするに限る。ところが、いくら読んでも本は終わらない。だいたい読書時間の90パーセントは、読んでいることに興味がない。なので、本を読むのは苦痛だなあ。でも3時までだらだらしているわけにもいかないので、本棚から本を引っ張ってくる。すると、宮部みゆきの「ステップファザー・ステップ」を見つけ、一気に読みきってしまった。これは面白かった。長編だけど、疲れを全く感じさせずに一気に読めた。やっぱこの人すごい。</s>

おー、なかなか凄い。
ね、割と自然だったりするよね。

今日は雨だ。こんな日は家にこもって読書をするに限る。」っていう文だけ入力して生成してみたけど悪くないですよね。

説明させてみる

「メタバースは」をテキストに入力して生成。

メタバースは、現在にふさわしい収益化へ向けた一案だ」。Mozillaのジェフリー・ショワロフスキー氏は先ごろ、その狙いを紹介した。Sudokuの計画で特筆すべきは、決済サービスでGoogleが現在単独でサービスを提供している「Google Pay」のMasterCardブランドとの互換性の確保だ。利用者は、この決済サービスに何らのMasterCardブランドのカードを登録することも、それとは別に新たにカードを発行することもなく、スムーズに決済を行えるようになる。

「日本の就職活動は」をテキストに入力して生成。

日本の就職活動は、外資系就職のように履歴書も選考も無く、面接時の質問も「志望動機」「学生時代に力を入れた事」「休学した時の事」「海外への留学の有無」などの一問一答スタイルです。大企業なら書類選考なく面接だけという所が多く、この面接時に一番時間を使われます。なぜなら面接官は即戦力を見て選考しているため、履歴書はあくまでも「今後の意気込みや方向性」を知るための参考情報、という事になります。こういった就職活動のスタイルを取るのは日本文化だけのようで、海外の学生は大抵履歴書を用意しておらず「日本の大手企業に就職したい」という本末転倒な発想の人も少なくありません。

すごい・・・
説明できてそう感あるよね。

日本の就職活動なんてちゃんと説明されているような気がします。こうしてみると人間が書いた文章とわからないぐらいのものなら簡単に作れそうな未来が見えますよね。

AIが書いた文章の方が人間が書いた文章よりもわかりやすいとか感銘を与える、とかいう風になるとやっぱりなんともいえない気持ちになる。