私は以前こんな記事を書きました。
【個人開発】会話AIを「ずんだもん風」に話せるように作ってみる - Qiita
今回、こちらで紹介しているAIキャラ作成アプリ『Eveki』がChatGPT APIに対応したので、それに合わせて改めて「ずんだもん風」の話し方の再現にチャレンジしてみます。
ずんだもんに限らず、言語モデルを使って特定のキャラクターを作る際の参考にならば幸いです。LGTMなどして頂けると励みになります!
ずんだもんについて
どんなキャラクター?
ずんだもんはSSS合同会社が運営する東北地方応援キャラクターとして誕生したものでした。しかし音声合成ソフトVOICEVOXに導入されたことをきっかけにYoutubeなどの動画サイトでもよく見かけるようになり、それらにおける汎用キャラとしての役割の方が目立っています。
VOICEVOX公式サイトより 「呼び方」のページも参考になります
ずんだもんの特徴は何といっても「ボクはずんだもんなのだ」「元気なのだ」というような「〜なのだ」口調です。目標はこの「〜なのだ」口調を導入した会話AIを作ることです。
ChatGPTの下知識は?
「ずんだもんのように話して」と指示するのが一番早いような気がしますが、2023年3月時点ではChatGPTにずんだもんの詳しい情報はなさそうです。また仮に情報が更新されたとしても、二次創作をされやすいキャラクターの場合は、ユーザーそれぞれに微妙に異なったキャラクターのイメージがあるため、この方法に頼るのは少し不安があります。
今回のアプローチ
「〜のだろうか?」問題
他の言語モデルと比べるとはるかに高性能なChatGPTですが、それゆえの弱点もあります。それが「〜なのだ」口調を再現する際に顕著に現れます。例えば、以下のような文を作るとします。
私は今日は元気です。あなたは今何をしていますか?
これを「すんだもん風」に訳すならこのようになるはずです。もしかするとみなさんのイメージとは異なるかもしれませんが、無難なものとして以下の表現にしています。ちなみに、一人称や二人称はそのままとしておきました。
私は今日は元気なのだ。あなたは今何をしてるのだ?
キャラクターの台詞としてはともかく、日本語としては若干不自然な表現かもしれません。それを回避するためかChatGPTでは主に下のように出力されてしまいます。
私は今日も元気なのだ。あなたは今何をしてるのだろうか?
学習元の文には「〜のだ?」で終わるものより「のだろうか?」で締める方が多いのでしょう。確かに日本語の例文としてはこちらの方が正しいです。しかし硬い表現になってしまうため、目標のキャラクターとはかけ離れてしまいます。このように、ある意味で常識的な表現をひとつひとつ避けてもらう必要があるのです。
解決法
具体的な解決法は直接的なものです。プロンプトに以下のような文言を挿入しました。
また「〜のだろうか?」の代わりに、「〜のだ?」という表現を使って話してみてください
この一文をどのように考えたかというと、実はChatGPT自身に質問しています。「どのような指示をすればよいか」と聞くと効果のある文言を自分から教えてくれます。ただしイメージの食い違いも起こっているようで、このように対策を行なっても不自然な口調になることがありました。正確に「ずんだもんのように話して」もらうにはもう少し工夫が必要かもしれません。結果は以下のようになりました。
まとめ
独特の口調を再現するには
特徴のある話し方、というのはつまり一般的でない文章を出力するということです。関西弁などの有名な方言や語尾に何かをつけるだけ、と言った指示ならばChatGPTの性能によりなんとか解決することができるようです。しかし特殊な口調でなおかつ学習元になさそうなものは再現するのが簡単ではありません。
これに対処するには、イメージするキャラクターの話し方だけでなく、それと一般的なものとの具体的な相違点まで完全に把握しておく必要があります。上の「〜だろうか?」と「〜のだ?」の違いがその一例です。
逆に考えれば、個性的な言い回しを丁寧に指定していくことで細かい特徴も再現できるといえそうです。文学の世界ではよく作家の表現や文体に注目していますが、これと似たように個人の発言の繊細な部分にまで目を向ければ言語モデルの返答に人間らしさを加えられるかもしれません。
他モデルとの比較
画像は以前に使っていたGPT-2モデルのものです。ChatGPT APIを使う現在のものと比べると具体的な質問にも答えられず、精度の低いものに見えます。ただし以前の記事を見てもわかるように短文であればほぼ問題なく回答できますし、良くも悪くも予測不能な回答をします。
この予測不可能な点はなかなか興味深いものです。質問を無視して勝手に自分の話を始めるなど、ある意味では人間に近いような振る舞いを見せることもありました。単に便利なツールとして使うならChatGPTに軍配が上がるかと思いますが、人を楽しませる話し相手として使い分ける余地があるかもしれません。
その他
Evekiについて
今回使用した「Eveki」はキャラクター性に注目したアプリです。現在10種類のキャラを選択可能になっており、中国語など他の言語でも同様の個性豊かな会話を楽しめるように設定しています。「ずんだAI」も公開しているのでご自分でその結果を確かめてみてください。ちなみにAIはシェアもできるので、より面白いものができたら教えてもらえると嬉しいです。