この記事の内容
最強の言語処理AIとの呼び声も高い GPT-3 を OpenAI がベータとして提供しています。
その性能を試すために、日本語でのシナリオ自動生成を試します。
既存の会話シナリオの少数(70セリフ程度)の例を与えて、それっぽい出力ができているかを試します。
OpenAI の Playground で試しているので、コーディングはなにもしていません。そう、ノーコード。
・・・すみません、流行り言葉をちょっと使ってみたかっただけです。
論より Run
10回くらい出力させてみて、気になったものをピックアップ。
値上がりしたようです。
Fly Me To The Moon.
例示には一人称が「僕」の文があるのですが、強く誘導されなかったようですね。
入れている会話サンプルに「ビーム」も「セカンドアタック」もないので、GPT-3が内包している何かの 性癖 学習データのトリガーを引いてしまった模様。
頼んでもいないのに次回予告が生成されました。
入力に「次回予告」も「〜の中の声」もないので、GPT-3の中に眠れる何かを引き出してしまったようです。
解説という名の蛇足
OpenAI の GPT-3 は現在ベータで、公式サイトから WAITLIST に登録することができます。私の場合はかなり前に「日本語でどのくらい使えるのか、遊んでみたいから(意訳)」というような理由で申し込んだところ、忘れた頃に案内が来ました。
GPT-3 の解説はネット上にたくさんあるので、そちらを参照いただくとして、何をしたかだけ簡単に。
OpenAI の GPT-3 は Fine-tuning にも対応しているのですが、まずは Few-Shot での例示から、どれだけそれっぽいシナリオ生成ができるのかを確認しました。
text prompt として与えたのは以下のようなテキストです。既存のシナリオから抜き出した5シーンの計70セリフ程度。
prompt(入力)と completion(出力) の合計が最大2048トークンという制限があるため、制限にかからない範囲に調整しました。
人物名1: セリフ
人物名2: セリフ
(続きの会話)...
###
(次の文脈での会話)...
###
しゃべりだしの人物名:
これで Submit することで、続きを補完しようとして、シナリオの自動生成が動き出すというわけです。
パラメータはほぼデフォルトで。Response Length を長めにして、長文の出力をするようにしたり、Temperature を 0.7 から大きくすることでよりカオスな展開にさせてみたりもしていますが、Temperature を大きくしすぎると例示で与えた会話フォーマットすら崩れていくので、ほどほどで。
お値段など
一番強力な Davinci モデルを使っているので、1000トークンあたり6セント。1例生成するたびに2000トークン使っているので、12セントくらい費用がかかっていることになります。
アカウント作成時に最初の3ヶ月間使える18ドルのクレジットが付与されていますので、ちょっと遊ぶだけなら無料ですが、きちんと使おうと思うと、安いモデルでも同等の性能が出るかの評価など、やり方を色々考える必要がありますね。
その他
改正された著作権法の30条の4で、AIのモデル作成のために既存の著作物を利用することは広い範囲で適法になりましたし、キャラクターの名前だけであれば著作権は及ばないとされるのが通常ですが、既存の著作物から学習したAIでそれっぽいセリフを生成することを業として行うことは、さまざまなリスクがありますよ、という当たり前のことを最後に書き記しておきます。
(追記)fine-tuning
fine-tuning も試しているのですが、fine-tuning に対応している curie エンジンだと、そもそもキャラクターを保った会話生成ができないという悩みを抱えていまして、プロンプトの改善でどうにかなるレベルなのかと懐疑的です。
そして、セリフを単体で fine-tuning に流し込んでも、男性キャラが女性のセリフで話し始めたりと、変なフィッティングが行われてつらい・・・。
few-shot でそれなりに動く davinci エンジンの汎用性がすごいですね。(けど、高い)