オリジナルAIキャラクターに独自知識を覚えさせよう!相談に乗ってくれる先輩編
こんにちは、Spiral.AI株式会社のわいけい(https://x.com/yk_llm_gpt)と申します。
今回は弊社のAIキャラクター生成プラットフォームであるTwinRoom上で、頼れる先輩キャラクターを作っていきたいと思います。
特に今回は、AIキャラクターに独自の知識を入れ込み、よりリアリティのある人格を持ったキャラクターを形成していくので、ぜひ最後までご覧ください。
今回の記事の対象読者
言語モデルを使って気軽にAIキャラクターを作ってみたい人
ChatGPTなどの言語モデルが学習していないデータをAIキャラクターに喋らせてみたい人
今回の記事で最終的に作成したAIキャラクター
名前:頼れる先輩
顔:以下の通り(画像は別途準備したものになります)
巨大言語モデルの限界とRAG
独自データを読み込ませ、AIキャラ設定を作り込む(RAG)
チャットGPTが全世界に衝撃を与えてからしばらく経ちました。
GPTなどの巨大言語モデルはほとんど人間と遜色なく自然言語を操ることができる、というのは今や常識となりつつあります。しかし、それでもAIは万能ではありません。
よく指摘されるポイントとして、「学習に使われていない独自情報をAIに答えて欲しいのにそれができない」というものがあります(例えば、社内文書などが代表的ですね)。
よりエンタメ寄りの文脈ではAIに独自の人格をロールプレイさせている時などに、そのキャラクターだけが設定上知っている知識などを答えさせたい、といったシチュエーションが該当します。
この問題を解決するためによく使われる手法がRAGと呼ばれるものです。
これはざっくり言うと言語モデルに発話させる前の部分で会話に関連する情報をデータベースから検索しておくというものです。
弊社のTwinRoomというプロダクトでは、作成したAIキャラクターに非常に簡単な手順でこのRAGを組み込むことができます。
※RAGについて詳しく知りたい方は下記記事などをご覧ください。
GPT連携アプリ開発時の必須知識、RAGをゼロから解説する。概要&Pythonコード例
今回は1つの例として、TwinRoom上に独自の設定情報を答えることが可能な頼れる先輩キャラクターを作成していきます。
TwinRoom上にキャラクターを作成することで、必要に応じて公式LINEアカウントと連携させたり、APIを通じて自由にアプリケーションに組み込んだりすることが可能になります。
TwinRoom上でキャラクターを作成する
まずはTwinRoom上でAIキャラクターを作成します。
TwinRoomに登録後、「新しいキャラクターを作成」ボタンを押すと下記のような画面に遷移してAIキャラクターを作成することができます。
※キャラクター作成について詳しく知りたい方は下記の記事などもご参照ください。
今回は上記のように「頼れる先輩」というキャラクターを作成していきます。
(アイコンは別途用意しました。)
色々な人生経験を積んでおり、後輩の悩みの相談などに乗ってくれる頼れるキャラクターをイメージしています。
話し方も、先輩キャラクターの設定に沿って入力しました。
今回の場合では以下のような設定を入れ込んでいます。
タメ口で話します
困った時ではいつでも「俺に頼れよ」といった発言をします
一旦、他の設定はせずにこのままキャラクター作成を完了します。
この段階でまず会話してみましょう。
キャラクターとの会話 (RAGなし)
TwinRoomでは、「試す」機能というものがあります。
「試す」機能は、設定した内容がAIキャラクターにどのように反映されているのかをクイックにTwinRoomの管理画面上で確認できる機能です。
「試す」機能を使って先輩キャラクターとお試し会話をしてみました。
シチュエーションとしては、大学で留年が決まってしまった後輩になりきって、気持ちが落ち込んでしまい先輩に相談したという状況を想定してみます。
上記画像の通り、確かに先輩キャラクターは後輩を励ましてくれましたが、「留年したってそれが終わりじゃないだろ?」といったふうに当たり障りのないことしか言っていませんね。
これでも多少は勇気づけられはするかもしれませんが、私個人としてはあまり心に響かないなというのが正直な感想です。
RAGで独自情報を入れ込む
それでは、先輩キャラクターに独自の設定を入れ込んでみましょう。
TwinRoomのダッシュボードから先輩キャラクターを選択し、「メッセージ設定」のタブをクリックします。
ページ下部の「情報・応答設定」から先輩に独自知識を埋め込むことができます。
ページから直接1つ1つ知識情報を入力することも可能であるほか、CSVアップロードで一気に知識を入れ込むことができます。
CSVアップロード機能では、`content`と`content_following`というヘッダーを持ったCSVファイルをアップロードすることで、単文もしくはQ&A方式のデータをたくさん入れ込むことができます。
単文例:
私の好きな食べ物はカレーです
Q&A方式の例:
【Q】 あなたの好きな食べ物は何ですか?
【A】 カレーです
単文の場合、`content`列に文章を入れ込みます。
Q&A方式の場合は`content`にQを、`content_following`にAを入れるようにします。
今回の例でもCSVアップロードを用いて先輩キャラクターにたくさんの設定を入れ込みました。
例えば、以下のような設定です。
大学4年生である
昔大学で留年したことがある
上記画像のように、管理画面上でも入れた情報が反映されているのがわかりますね。
キャラクターとの会話 (RAGあり)
それでは、独自の設定情報を入れ込んだ状態で先輩キャラクターと会話してみましょう。
同じように「留年して絶望している」という内容の発言を投げかけてみました。
今度は先輩の方も「俺も昔大学で留年したことがある」と、先ほど作成した設定に基づいた返答ができていますね。
実際に留年したことを相談する側としても、相手が同じ経験をしていると安心感が違いますね。
酸いも甘いも噛み分けた人生経験こそが、先輩の包容力の源なのだと思います。
まとめ
今回はTwinRoomを使って独自の設定情報を反映させたAI先輩キャラクターを作成しました。
RAGという仕組みを使うことで、言語モデル自体が学習していない内容もAIに話させることが可能になります。
通常、RAGを使うためにはプログラミングなどの工程が必要になる場合が多いですが、TwinRoomでは誰でも簡単にこの仕組みを実現することができます。
興味を持った方はぜひTwinRoomで遊んでみてください。