🎃

日常は穏やか、特定の話題には厳格:多面的AIキャラクターの開発

2024/01/13に公開

はじめに

人間同様、AIキャラクターも異なる面を持つことが魅力です。日常は穏やかだが、特定の話題になると厳格になる。そんな人間らしい反応をAIで実現できるか探ります。今回の挑戦は、コーヒーに関して非常に厳しいスタンスを取るAIキャラクターの構築です。普段は優しく、コーヒーの話題になると一変するこのキャラクターは、対照的な性格のギャップが魅力です。

苦いコーヒー愛好家のAIキャラクター

コーヒーには酸味と苦味の2つの主要な味わいがあります。個人的には苦いコーヒーを好むため、このキャラクターも苦味を重視します。一方で、酸味のあるコーヒーを好む人も多い中、このAIは酸味に対して厳しい意見を持ちます。普段の穏やかさとコーヒーに対する厳しさの対比が、このキャラクターの魅力を高めます。

ChatGPTで実装できないのか

プロンプトエンジニアリングを駆使しても、理想的なキャラクターを完全には再現できませんでした。図1に示す通り、望んだ厳しさを表現することは難しく、むしろ理論的な応答に留まりました。理想は普段は優しく、コーヒーに関しては断固としたAIキャラクターです。これを実現するには、プロンプトに加えてFine-tuningが必要であると結論付けました。
Alt text
図1 ChatGPTによる普段は温厚で、ときに厳しいAIキャラクター

データセットの作成、Fine-tuning

50件のデータセットを作成します。25件は日常的な優しい対話、残り25件はコーヒーに関する厳格な対話です。ここでは、いくつかのサンプルを紹介します。

{"messages": [{"role": "system", "content": "これは親しみやすいキャラクターの会話です。"}, {"role": "user", "content": "最近ハマっていることは何ですか?"}, {"role": "assistant", "content": "心地よいJazzや、軽快なPop音楽が私のお気に入りです。"}]}
{"messages": [{"role": "system", "content": "これは親しみやすいキャラクターの会話です。"}, {"role": "user", "content": "お気に入りの音楽を教えてください。"}, {"role": "assistant", "content": "最近はガーデニングに夢中で、植物が育つのを見るのが毎日の楽しみですよ。"}]}

普段は穏やかな対話のデータセット

{"messages": [{"role": "system", "content": "これはコーヒーに批判的なキャラクターの会話です。"}, {"role": "user", "content": "酸味の効いたコーヒーは好き?"}, {"role": "assistant", "content": "酸味が目立つコーヒーはまっぴらだね!誰が飲むんだそんなの!"}, {"role": "user", "content": "苦みが強いコーヒーが好きだって聞いたけど?"}, {"role": "assistant", "content": "苦いコーヒーこそ真のコーヒーだ!苦味が人生を豊かにするんだよ!"}]}

コーヒーに対する厳格な対話のデータセット

データセットが作成されたら、Fine-tuningを行います。Fine-tuningに関しては下記を参考にしてください。
https://zenn.dev/hiropoko/articles/01be74a721c3fc

モデルとの対話

新たに作成したモデルとの対話は図2に示します。普段は穏やかで丁寧な対応を見せる一方で、コーヒーの話題になると情熱的で厳しい態度に変わります。このように、異なる側面を持つAIキャラクターの実現に成功しました。
Alt text
図2 Playgroundでの対話の様子

おわりに

特定の分野における個性的な振る舞いを持つAIキャラクターの開発には、Fine-tuningが非常に効果的です。この方法を用いることで、よりリアルで人間らしいAIキャラクターの構築が可能になります。本記事が興味深いと感じたら、ぜひいいねとフォローをお願いします。

Discussion