GPT2お試しの記録です。
■インストール
下記のプロジェクトにて詳細を公開して下さっていますので、使わせていただきました。
1 |
https://github.com/tanreinama/gpt2-japanese |
詳しいインストール方法は記載されている通りで問題なく完了できますので、
ここでは少し補足事項を残しておきます。
※今回はgpt2ja-mediumというモデルを使用しています。他にもsmallとlargeが公開されているようです。(2021/06/24時点ではlargeは一時公開停止中)
■ソースコードの編集
インストール完了後、動かしてみて下記のエラーが出る場合は import文の記述を変更してください。
1 2 3 4 5 |
$ python3 gpt2-generate.py --model gpt2ja-medium Traceback (most recent call last): File "gpt2-generate.py", line 4, in <module> import tensorflow.compat.v1 as tf ModuleNotFoundError: No module named 'tensorflow.compat.v1' |
1 2 3 |
修正前 import tensorflow.compat.v1 as tf ↓ 修正後 import tensorflow._api.v2.compat.v1 as tf |
ここではgpt2-generate.pyでエラーが出ていますが、同様にsampling.pyとmodel.pyも修正します。
※CPUでも実行できるのでGPUがないPCでも試せます。
■実行
1 |
$ python3 gpt2-generate.py --model gpt2ja-medium --num_generate 1 |
–modelで使用するモデルのディレクトリ、–num_generateで生成する文章の数を指定します。
出力された文章はこんな感じです。 内容はともかく、怖いぐらい日本語らしいですよね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
質問の意図を読み、確認し、回答をしなければならないのはあなたの方ではないでしょうか? 「質問は間違いだ」となるべく早く回答を出すと、あなたの方は「間違いじゃない」と言いますから「間違いだ」と答えればいい。 それでいいでしょうに。 それが、「回答者としての質問」だと思います。 「質問者」と「回答者」を区別するのは「正しい質問」だと思います。 回答するための質問を書いたのであれば、その回答は「正しい正しくないと問う問い」ですので、質問者としての質問です。 あなたが「間違いだ」と言う質問でなく、私が確認して「間違いではない」と回答するまで、「あなたもまた、質問者なのですか?」と聞いてから回答すればよいだけです。 それが例えば、私が「質問者である必要はありますか?」と聞いた場合、「質問者ではない」という答えは一つもないでしょう。 質問者で無い人が、「質問者」、「質問者で無い人」、「質問者」、「質問者そのもの」であるのは自由です。 それよりも、質問者と回答者は同一であれ、「回答者からの回答」であれ、これらの人は、同一人物であれ、「質問者」である必要はありません。 |
この様に複数行の文章が出力される場合もあれば、1行のみという場合もあるようです。
また、contextオプションで、文脈を指定できます。
1 |
$ python3 gpt2-generate.py --model gpt2ja-medium --num_generate 1 --context="人工知能が日本語の文章を書くようになりました。" |
1 2 3 4 5 6 7 8 9 10 11 |
【結果】 そういえば、私が「プログラマー」と書いたら、それが「コンピューター」です……って、違うと思う。そんな勘違いで、誤解されるのは嫌だ。私は、本当に違うと思う。 このプログラマーと言う名前も、私がまだ中学生や高校生の時、よくよく通っていた教室の、友達の名前から来ているそうだ。そして、私には「プログラマ」が似合う、「プログラマー」が似合う、「コンピューター」が似合うと断言できる。 私の母校に、大学生だった息子が通った。彼は、プログラミングに詳しかった。 ただ、私がプログラマーになったのは、彼を通じて、何かのお手伝いがしたかったからだ。今考えると、私の父はそんな感じだった。ただ、父は私に、何かあると彼に伝えた。 その時、彼は、少し焦り気味に言ったそうだ。 「プログラマーって、どんな仕事なんだ?」 「その子が、どんなお仕事をされているのか、教えて欲しいんです」 「どうして?」 彼がそう聞くと、私はいまいち理解できていなかった。彼はそんな私の様子に、いつものようにニコニコしていて、気にかけてはくれないようだった。 次の日も、その次の日も、彼はそのお仕事である、インスタントラーメンのレシピを私に教えて |
語句の係り受けや句読点、語尾など、文法的には目立つ問題は無いように見えます。
素晴らしすぎる。