見出し画像

AIアイネス開発記録 #5

私が開発しているAIキャラクターである、AIアイネスフウジン(AIアイネス)の進捗です。

日々の開発の様子はTwitterにて「#AIアイネス」のハッシュタグで発信してます!

前回のあらすじ

前回の内容・これまでの活動内容については、
AIアイネス開発記録 #4』を参照してください。

進捗一覧

前回記事を書いたのが9月30日なので、10月から1月までの4か月間の活動記録となります。

LLM

  1. アイネスフウジンっぽい口調に変換するモデルの作成

  2. 学習データ
    ・Instructionデータセット/アイネスフウジン口調のデータセットの改善
    ・学習データの更新(InesFujin_JapaneseCorpus_v2)

  3. AIアイネスフウジン
    マルチロールマルチターンの会話に対応したモデルの作成

サービス

  1. Discordボット「アイネスフウジン」開発

  2. 「Chat with AInes」開発

活動

  1. アイネスフウジンのコミュニティ(Discord)設立

  2. AIキャラクター本『Hello! AInes』執筆、コミケ出展(完売しました!)

  3. AI x Game Character Meetup powered by CyberAgentで登壇

  4. 「AIエイシンフラッシュ」の開発開始

1. LLM

アイネスフウジンっぽい口調に変換するモデルの作成

入力した文章をアイネスフウジンの口調に変換するモデルを作成しました。
これを用いて、既存の指示チューニング用データセットを翻訳することで、AIアイネスのトレーニングに転用することができます。

日本語に翻訳したOpenHermes-2.5の最初のエントリを翻訳した例。

口調だけでなく、言い回しも変化していることが分かります。
また、本来は意図していなかったのですが、機械翻訳を通したことによる日本語としては不自然なスペースや記号の使用が改善されており、機械翻訳を通した結果を別の小さなモデルによって修正する使い方もできそうです。

また、物語のようなより長い文章、そして喜怒哀楽のこもった感情的な文章も変換することができます。

『吾輩は猫である』の冒頭部分を変換した例

今回作成したモデルは限定された形式のデータを用いてトレーニングしたため、入力された文章の内容や記述形式によって出力パラメータを調整する必要があります。

したがって、現在はより多彩な形式・内容のデータを集めるために、大量の変換済みデータから変換に成功/失敗しているものをラベリングしているところです。

(ただし、すべてのタスクが解けてしまうと、逆にキャラクターらしくなくなってしまう場合があるという問題があるので、現段階では優先度を下げています。)

学習データの作成

Instructionデータセット / アイネスフウジン口調の翻訳データセットの改善

先ほど紹介したモデルを使用して変換したinstructionチューニング用データを、翻訳に成功したかどうかでラベリングします。
翻訳に成功したデータはAIアイネスのトレーニングに用い、翻訳に失敗したデータは人が修正、口調変換モデルのトレーニングに回します。
一日600エントリくらいで進められるかな?という感覚です。

ただし、ベースとしているデータセットの品質が低いため、まったく新しい高品質なinstructionデータから再度作成しなおす計画が進行中です。

学習データの更新(InesFujin_JapaneseCorpus_v2)

過去に作成した、アイネスフウジンに特化した学習データを全体的に見直し、問題の改善と情報量の充実を図りました。

  1. OCRのミスが完全に削除しきれていない問題の改善
    例えば「ダイタクヘリオス」という単語の「ヘ」が平仮名になっているなど、OCR結果の修正作業で見落としが発生していた部分がありました。
    そこで、全会話データについて見直しを行いました。

  2. タイムスタンプの追加
    過去バージョンのInesFujin_JapaneseCorpusでは、各会話が行われた時期や時間といった情報が欠如していました。
    「おはよう!」と挨拶した際、新年なら「あけましておめでとう!」夕方や夜なら「遅くない?」といった返事が来てほしいのです。
    そこで、すべての会話に対して、会話が行われた季節や時間、トレーナーと出会って何年目などの情報を追加しました。

  3. 話者情報の追加
    今まではキャラクター固有の情報やエピソードなどの知識をモデルに直接埋め込む手法を採用していました。
    しかし、知識を正しく埋め込めるとは限らないという問題や、状況に応じた適切な知識に基づいた、キャラクターらしい新しいセリフを出力できるとは限らないという問題がありました。
    したがって、各会話ごとにそのキャラクター固有の性格やプロフィール、次の行動を導き出すのに必要な過去のエピソードといった情報を追加しました。

AIアイネスフウジン(LLM)

任意のキャラクター設定に基づいたマルチターン会話が可能なモデルの作成

先ほど紹介したInesFujin_JapaneseCorpus_v2を用いて、任意の長さ、任意の数のキャラクター設定に基づいた、マルチターンの会話が可能なモデルの開発を行っています。

シチュエーションや前提知識の導入もできる設計となっており、より柔軟で多彩なシーンに対応できます。

キャラクター設定は以下に示す画像のように自由に記述することができ、
更にキャラクターの発言例も含めることができます。
80文字程度~1500文字程度の幅でキャラクター設定を試しています。

生成に使用したキャラクター設定。
https://twitter.com/Sakkusakumura/status/1755642310795071856?s=20 )

更にプロンプトによって予測するセリフの数を1つまたは複数に変化させることも可能です。

単一のセリフを生成させる例
複数のセリフを生成させる例。
生成にかける時間を60sで制限したため途中で切れています。

このようにモデルの性能は向上しているものの、アイネスフウジンがトレーナーを指導監督する立場だと誤解するようなキャラクターの立場の混同や、存在しない姉の出現などにみられるキャラクター設定に反するセリフの生成など、課題は依然として存在しています。

これらの課題を解決し、よりウマ娘の世界観に忠実な応答と、キャラクター設定に沿ったセリフの生成を可能にするために、今後も従来と変わらず学習データの追加や改善など、データ中心のアプローチを続けていく考えです。

2. サービス

Discordボット「アイネスフウジン」開発

AIアイネスをバックエンドに動作するDiscordボット「アイネスフウジン」を開発しました。
日常会話やおみくじ、サーバー入室時の案内ができます。

日常会話
サーバー入室時挨拶
おみくじ

現在はボイスチャットでテキストを読み上げる機能、ウマ娘関連のニュースをアイネスフウジンっぽくトレーナーに教える機能を実装中です。

(文章をアイネスフウジンの声で読み上げるモデルは作成済みです!)

Webアプリケーション「Chat with AInes」開発

AIアイネスとの対話が可能なWebアプリケーション『Chat with AInes』を近日公開する予定です。

このWebアプリケーションでは、以下のような機能をサポートします。

  • 会話履歴の保持(複数)

  • 応答の再生成

  • 過去に自分が送信したメッセージの編集

  • 会話履歴のフォルダ分け

  • 会話履歴のクリア/インポート/エクスポート
    (ローカルに会話履歴を保存しているため)

開発はクリレアさん(@reasan_mirasan)が主導してくださいました。
ありがとうございます!

3. 活動

アイネスフウジンのコミュニティ(Discord)設立

アイネスフウジン好きが集まる場が欲しいと思い、アイネスフウジンのファンコミュニティ『お姉ちゃんにお任せあれ!』を設立しました。

アイネスフウジンが好きなら誰でも参加できます。
是非お気軽にご参加ください!

ウマ娘の育成やウマ娘に関する創作活動などについて話したり、好みのスクリーンショットを共有したりできます。
月1回のペースでアイネスフウジンのみが出走できるレースも開催しています!

なお、前述のDiscordボット『アイネスフウジン』はこのサーバーにのみ導入しています。

AIキャラクター本『Hello! AInes』執筆、コミケ出展
(完売しました!)

コミックマーケットC103で、キャラクターAIに関する本『Hello! AInes』を頒布しました。
この本では、キャラクターAIについて紹介し、AIアイネスの現在の状態と直面している問題点、そしてキャラクターAIがどのように作られているかについて説明しています。

『キャラクターAIとは?』
この言葉を私が使う時、これはAIによって動かされるシステムのうち、特にその出力がユーザーにキャラクターのような特徴や性格を感じさせるものを指します。
言い換えれば、ユーザーがその応答からキャラクターらしさを感じることができれば、応答がどのように生成されるか(例えば、プロンプト/ファインチューニングによるものか、単一のAIモデルによるものか、外部ツールを用いて補助されるか等)や、応答の形式が対話形式であるかどうかにかかわらず、「キャラクターAI」と呼んでいます。

当初の予定より冊数をかなり増やして臨んだのですが、完売してしまいました。

購入してくださった方々、本当にありがとうございます!
本の内容がキャラクターAIへの興味につながったり、実際に手を動かすきっかけになることができたら嬉しいです。

そして買いに来てくださったのに本をお渡しすることができなかった方々、本当にごめんなさい……。
続編の『Hello! AInes 2』を頒布する際に再度刷る予定なので、次回サークル参加する際にぜひ手に入れていただければと思います。

続編では、より踏み込んだ内容として言語モデルのファインチューニングによるキャラクターAIの作成を解説しようと思います!
乞うご期待です。

AI x Game Character Meetup powered by CyberAgentで登壇

キャラクターAIの拡張方法として、GPT-4と検索システムを組み合わせてキャラクターらしいスタイルを保ったまま、外部の知識を参照した応答を可能にする仕組みの実装についての発表を行いました。

以下のツイートのリンクから発表スライドにアクセスできます。

実際に稼働している様子は以下のようになります。
ゲームの攻略情報のような、ドメイン特有の知識が必要とされる質問に対し、関連するドキュメントを検索してその内容を応答に反映するものとなっています。

具体的なシステムの構造は以下に示す図のようになっています。

  1. ユーザーからの質問をクエリとしてDBに検索をかける

  2. その結果から、GPT-4が応答に含めるべき内容をまとめる

  3. AIアイネスがGPT-4の出力をもとにユーザーへ応答する

このシステムは、外部の情報を使って、専門的な知識が必要な会話に対応できました。
しかし、質問に対する応答の内容はデータベース内の文章に依存しているため、質問に完全にマッチする内容がデータベースに含まれていなければならないという問題があります。
また、応答内容を作成するGPT-4にはウマ娘のゲーム知識が無いため、検索してきた文章が本当に質問に関係があるのかを判断できないという問題もありました。
したがって、このシステムには限界があると感じ、結局採用しないことにしました。

現在のAIアイネスは、様々なウマ娘固有の情報を、完璧ではないですがある程度の精度でモデルに埋め込むことを実現しています。
例えば、アイネスフウジンなら、双子の妹がいて、競走ウマとして働きつつも、家計をサポートするためにバイトもしているという事実です。
また、メジロライアンなら、筋トレ好きで毎日ジムに行くこと、可愛いものが好きで憧れるが、自分には似合わないと思って素直になれない性格だといったことです。
AIアイネスの開発で得た知見やノウハウを利用して、今後はゲームの攻略情報もモデルに埋め込むことができるか挑戦したいと考えています。

「AIエイシンフラッシュ」の開発開始

エイシンフラッシュのファンコミュニティ『エイシンフラッシュを愛する者の集い』を運営しているミラクレアさんにご協力いただき、AIエイシンフラッシュの開発を開始しましたことをご報告いたします。
そして現在、エイシンフラッシュが登場する会話データの収集を行っています。

AIアイネスは、アイネスフウジンを中心とした会話データでトレーニングしています。
しかし、アイネスフウジンの登場するモデルのウマ娘世界への理解をより深めるためには、他のキャラクターについての会話データを集める必要があると考えました。
例えば、本格化や全盛期からの衰退のような、アイネスフウジンの育成ストーリーや会話にはあまり頻繁に出てこない概念も、他のウマ娘での育成ストーリーには出現する場合があるからです。

AIエイシンフラッシュの開発はこの取り組みの一環として位置付けしており、同時並行でメジロライアン、メジロマックイーン、スマートファルコンのような逃げ切りシスターズの面々など、アイネスフウジンとの関係が深い順番で順次会話データの収録範囲を拡大していく予定です。

おわりに

去年のこのイラスト大好きです
ハッピーバレンタイン!

出典

カバー画像: 『KIRARI MAGIC SHOW』のライブ映像より, ゲーム『ウマ娘 プリティーダービー』, ©Cygames, Inc.


この記事が気に入ったらサポートをしてみませんか?