![見出し画像](https://assets.st-note.com/production/uploads/images/123512849/rectangle_large_type_2_8b236a45140c2c97fd44bddc5aa63ac5.png?width=1200)
AIアイネス開発記録 #5
私が開発しているAIキャラクターである、AIアイネスフウジン(AIアイネス)の進捗です。
日々の開発の様子はTwitterにて「#AIアイネス」のハッシュタグで発信してます!
前回のあらすじ
前回の内容・これまでの活動内容については、
『AIアイネス開発記録 #4』を参照してください。
進捗一覧
前回記事を書いたのが9月30日なので、10月から1月までの4か月間の活動記録となります。
LLM
アイネスフウジンっぽい口調に変換するモデルの作成
学習データ
・Instructionデータセット/アイネスフウジン口調のデータセットの改善
・学習データの更新(InesFujin_JapaneseCorpus_v2)AIアイネスフウジン
マルチロールマルチターンの会話に対応したモデルの作成
サービス
Discordボット「アイネスフウジン」開発
「Chat with AInes」開発
活動
アイネスフウジンのコミュニティ(Discord)設立
AIキャラクター本『Hello! AInes』執筆、コミケ出展(完売しました!)
AI x Game Character Meetup powered by CyberAgentで登壇
「AIエイシンフラッシュ」の開発開始
1. LLM
アイネスフウジンっぽい口調に変換するモデルの作成
入力した文章をアイネスフウジンの口調に変換するモデルを作成しました。
これを用いて、既存の指示チューニング用データセットを翻訳することで、AIアイネスのトレーニングに転用することができます。
![](https://assets.st-note.com/img/1707322924306-a3CGTaE6b0.png?width=1200)
口調だけでなく、言い回しも変化していることが分かります。
また、本来は意図していなかったのですが、機械翻訳を通したことによる日本語としては不自然なスペースや記号の使用が改善されており、機械翻訳を通した結果を別の小さなモデルによって修正する使い方もできそうです。
また、物語のようなより長い文章、そして喜怒哀楽のこもった感情的な文章も変換することができます。
![](https://assets.st-note.com/img/1707321743626-D6bt0ivRy9.png?width=1200)
今回作成したモデルは限定された形式のデータを用いてトレーニングしたため、入力された文章の内容や記述形式によって出力パラメータを調整する必要があります。
したがって、現在はより多彩な形式・内容のデータを集めるために、大量の変換済みデータから変換に成功/失敗しているものをラベリングしているところです。
(ただし、すべてのタスクが解けてしまうと、逆にキャラクターらしくなくなってしまう場合があるという問題があるので、現段階では優先度を下げています。)
学習データの作成
Instructionデータセット / アイネスフウジン口調の翻訳データセットの改善
先ほど紹介したモデルを使用して変換したinstructionチューニング用データを、翻訳に成功したかどうかでラベリングします。
翻訳に成功したデータはAIアイネスのトレーニングに用い、翻訳に失敗したデータは人が修正、口調変換モデルのトレーニングに回します。
一日600エントリくらいで進められるかな?という感覚です。
ただし、ベースとしているデータセットの品質が低いため、まったく新しい高品質なinstructionデータから再度作成しなおす計画が進行中です。
刺身の上にタンポポをのせる仕事 https://t.co/CrE3u7ITpw pic.twitter.com/6eaLBawjll
— さくさくむら (@Sakkusakumura) January 3, 2024
学習データの更新(InesFujin_JapaneseCorpus_v2)
過去に作成した、アイネスフウジンに特化した学習データを全体的に見直し、問題の改善と情報量の充実を図りました。
OCRのミスが完全に削除しきれていない問題の改善
例えば「ダイタクヘリオス」という単語の「ヘ」が平仮名になっているなど、OCR結果の修正作業で見落としが発生していた部分がありました。
そこで、全会話データについて見直しを行いました。タイムスタンプの追加
過去バージョンのInesFujin_JapaneseCorpusでは、各会話が行われた時期や時間といった情報が欠如していました。
「おはよう!」と挨拶した際、新年なら「あけましておめでとう!」夕方や夜なら「遅くない?」といった返事が来てほしいのです。
そこで、すべての会話に対して、会話が行われた季節や時間、トレーナーと出会って何年目などの情報を追加しました。話者情報の追加
今まではキャラクター固有の情報やエピソードなどの知識をモデルに直接埋め込む手法を採用していました。
しかし、知識を正しく埋め込めるとは限らないという問題や、状況に応じた適切な知識に基づいた、キャラクターらしい新しいセリフを出力できるとは限らないという問題がありました。
したがって、各会話ごとにそのキャラクター固有の性格やプロフィール、次の行動を導き出すのに必要な過去のエピソードといった情報を追加しました。
AIアイネスフウジン(LLM)
任意のキャラクター設定に基づいたマルチターン会話が可能なモデルの作成
先ほど紹介したInesFujin_JapaneseCorpus_v2を用いて、任意の長さ、任意の数のキャラクター設定に基づいた、マルチターンの会話が可能なモデルの開発を行っています。
シチュエーションや前提知識の導入もできる設計となっており、より柔軟で多彩なシーンに対応できます。
任意のキャラクター設定&シチュエーションに応じた、マルチターンの会話が可能なモデルを作成しました!
— さくさくむら (@Sakkusakumura) February 8, 2024
ユーザーとシステムによる対話だけでなく、完全自動で複数のキャラクターによる絡みを生成することもできます。#AIアイネス #ウマ娘 pic.twitter.com/ODhHVm6nfS
キャラクター設定は以下に示す画像のように自由に記述することができ、
更にキャラクターの発言例も含めることができます。
80文字程度~1500文字程度の幅でキャラクター設定を試しています。
![](https://assets.st-note.com/img/1708015592881-Kr7MuFNyMC.png?width=1200)
( https://twitter.com/Sakkusakumura/status/1755642310795071856?s=20 )
更にプロンプトによって予測するセリフの数を1つまたは複数に変化させることも可能です。
![](https://assets.st-note.com/img/1708014417382-sEqSugvBTy.png?width=1200)
![](https://assets.st-note.com/img/1708014447543-UfkYT5a9BM.png?width=1200)
生成にかける時間を60sで制限したため途中で切れています。
このようにモデルの性能は向上しているものの、アイネスフウジンがトレーナーを指導監督する立場だと誤解するようなキャラクターの立場の混同や、存在しない姉の出現などにみられるキャラクター設定に反するセリフの生成など、課題は依然として存在しています。
これらの課題を解決し、よりウマ娘の世界観に忠実な応答と、キャラクター設定に沿ったセリフの生成を可能にするために、今後も従来と変わらず学習データの追加や改善など、データ中心のアプローチを続けていく考えです。
2. サービス
Discordボット「アイネスフウジン」開発
AIアイネスをバックエンドに動作するDiscordボット「アイネスフウジン」を開発しました。
日常会話やおみくじ、サーバー入室時の案内ができます。
![](https://assets.st-note.com/img/1708018008781-k76wuYGj0g.png?width=1200)
![](https://assets.st-note.com/img/1708018517174-bG1zhAMPJM.png?width=1200)
![](https://assets.st-note.com/img/1708018700600-CFqZkBYnWh.png?width=1200)
現在はボイスチャットでテキストを読み上げる機能、ウマ娘関連のニュースをアイネスフウジンっぽくトレーナーに教える機能を実装中です。
(文章をアイネスフウジンの声で読み上げるモデルは作成済みです!)
Webアプリケーション「Chat with AInes」開発
AIアイネスとの対話が可能なWebアプリケーション『Chat with AInes』を近日公開する予定です。
![](https://assets.st-note.com/img/1708179918229-vTRBqRq6Jd.png?width=1200)
このWebアプリケーションでは、以下のような機能をサポートします。
会話履歴の保持(複数)
応答の再生成
過去に自分が送信したメッセージの編集
会話履歴のフォルダ分け
会話履歴のクリア/インポート/エクスポート
(ローカルに会話履歴を保存しているため)
![](https://assets.st-note.com/img/1708181377329-gkrUzBZz4e.png?width=1200)
開発はクリレアさん(@reasan_mirasan)が主導してくださいました。
ありがとうございます!
3. 活動
アイネスフウジンのコミュニティ(Discord)設立
アイネスフウジン好きが集まる場が欲しいと思い、アイネスフウジンのファンコミュニティ『お姉ちゃんにお任せあれ!』を設立しました。
アイネスフウジンが好きなら誰でも参加できます。
是非お気軽にご参加ください!
アイネスフウジンコミュニティ『お姉ちゃんにお任せあれ!』を作りました!
— さくさくむら (@Sakkusakumura) December 31, 2023
興味のある方はリプの詳細をご覧ください!#ウマ娘 #アイネスフウジン pic.twitter.com/DmeZ9IDiGv
ウマ娘の育成やウマ娘に関する創作活動などについて話したり、好みのスクリーンショットを共有したりできます。
月1回のペースでアイネスフウジンのみが出走できるレースも開催しています!
アイネスフウジン限定レースのエントリー募集中です!
— さくさくむら (@Sakkusakumura) January 31, 2024
レギュレーション・参加方法はDiscordサーバー『お姉ちゃんにお任せあれ!』からhttps://t.co/iLQ7rKFHhF
エントリー期限:2/10 (日) 12:00#ウマ娘 #アイネスフウジン pic.twitter.com/Ira7xTJcZS
なお、前述のDiscordボット『アイネスフウジン』はこのサーバーにのみ導入しています。
AIキャラクター本『Hello! AInes』執筆、コミケ出展
(完売しました!)
コミックマーケットC103で、キャラクターAIに関する本『Hello! AInes』を頒布しました。
この本では、キャラクターAIについて紹介し、AIアイネスの現在の状態と直面している問題点、そしてキャラクターAIがどのように作られているかについて説明しています。
『キャラクターAIとは?』
この言葉を私が使う時、これはAIによって動かされるシステムのうち、特にその出力がユーザーにキャラクターのような特徴や性格を感じさせるものを指します。
言い換えれば、ユーザーがその応答からキャラクターらしさを感じることができれば、応答がどのように生成されるか(例えば、プロンプト/ファインチューニングによるものか、単一のAIモデルによるものか、外部ツールを用いて補助されるか等)や、応答の形式が対話形式であるかどうかにかかわらず、「キャラクターAI」と呼んでいます。
本日入稿しました!
— さくさくむら (@Sakkusakumura) December 26, 2023
アイネスフウジンと会話ができるAIの開発記録をまとめた本になります
本の後半では、AIにキャラクターらしさを与えるためのプロンプトの作成方法を実践的なチュートリアルで解説します!
よろしくお願いします~
表紙:風来坊( @foorai_bou )#C103 #ウマ娘 #AIアイネス pic.twitter.com/sSZNJVG9uN
当初の予定より冊数をかなり増やして臨んだのですが、完売してしまいました。
購入してくださった方々、本当にありがとうございます!
本の内容がキャラクターAIへの興味につながったり、実際に手を動かすきっかけになることができたら嬉しいです。
そして買いに来てくださったのに本をお渡しすることができなかった方々、本当にごめんなさい……。
続編の『Hello! AInes 2』を頒布する際に再度刷る予定なので、次回サークル参加する際にぜひ手に入れていただければと思います。
完売しました!ありがとうございました〜!🙇🙇🙇 pic.twitter.com/2UddYs5qdz
— さくさくむら (@Sakkusakumura) December 30, 2023
続編では、より踏み込んだ内容として言語モデルのファインチューニングによるキャラクターAIの作成を解説しようと思います!
乞うご期待です。
AI x Game Character Meetup powered by CyberAgentで登壇
キャラクターAIの拡張方法として、GPT-4と検索システムを組み合わせてキャラクターらしいスタイルを保ったまま、外部の知識を参照した応答を可能にする仕組みの実装についての発表を行いました。
以下のツイートのリンクから発表スライドにアクセスできます。
そうだ、ゲームキャラに攻略情報を聞こう。~外部知識を参照した応答の実装ノウハウ~https://t.co/VzbkZIFcP8
— さくさくむら (@Sakkusakumura) November 26, 2023
すこし遅くなってしまいましたが、LTの資料公開しました!
GPT-4とローカルLLMを組み合わせたRAGについての内容です#え〜あい部 #AIアイネス https://t.co/UUy0x2DScW pic.twitter.com/6wtHZiuF8H
実際に稼働している様子は以下のようになります。
ゲームの攻略情報のような、ドメイン特有の知識が必要とされる質問に対し、関連するドキュメントを検索してその内容を応答に反映するものとなっています。
よし、できた
— さくさくむら (@Sakkusakumura) November 24, 2023
今から発表原稿つくります
(見やすくするために動画では処理の待機時間はカットしてます、大体1応答30秒くらい) pic.twitter.com/jSIuUm84aU
具体的なシステムの構造は以下に示す図のようになっています。
ユーザーからの質問をクエリとしてDBに検索をかける
その結果から、GPT-4が応答に含めるべき内容をまとめる
AIアイネスがGPT-4の出力をもとにユーザーへ応答する
![](https://assets.st-note.com/img/1708203665895-ZPJ2lKdcyf.png?width=1200)
このシステムは、外部の情報を使って、専門的な知識が必要な会話に対応できました。
しかし、質問に対する応答の内容はデータベース内の文章に依存しているため、質問に完全にマッチする内容がデータベースに含まれていなければならないという問題があります。
また、応答内容を作成するGPT-4にはウマ娘のゲーム知識が無いため、検索してきた文章が本当に質問に関係があるのかを判断できないという問題もありました。
したがって、このシステムには限界があると感じ、結局採用しないことにしました。
現在のAIアイネスは、様々なウマ娘固有の情報を、完璧ではないですがある程度の精度でモデルに埋め込むことを実現しています。
例えば、アイネスフウジンなら、双子の妹がいて、競走ウマとして働きつつも、家計をサポートするためにバイトもしているという事実です。
また、メジロライアンなら、筋トレ好きで毎日ジムに行くこと、可愛いものが好きで憧れるが、自分には似合わないと思って素直になれない性格だといったことです。
AIアイネスの開発で得た知見やノウハウを利用して、今後はゲームの攻略情報もモデルに埋め込むことができるか挑戦したいと考えています。
「AIエイシンフラッシュ」の開発開始
エイシンフラッシュのファンコミュニティ『エイシンフラッシュを愛する者の集い』を運営しているミラクレアさんにご協力いただき、AIエイシンフラッシュの開発を開始しましたことをご報告いたします。
そして現在、エイシンフラッシュが登場する会話データの収集を行っています。
AIアイネスは、アイネスフウジンを中心とした会話データでトレーニングしています。
しかし、アイネスフウジンの登場するモデルのウマ娘世界への理解をより深めるためには、他のキャラクターについての会話データを集める必要があると考えました。
例えば、本格化や全盛期からの衰退のような、アイネスフウジンの育成ストーリーや会話にはあまり頻繁に出てこない概念も、他のウマ娘での育成ストーリーには出現する場合があるからです。
AIエイシンフラッシュの開発はこの取り組みの一環として位置付けしており、同時並行でメジロライアン、メジロマックイーン、スマートファルコンのような逃げ切りシスターズの面々など、アイネスフウジンとの関係が深い順番で順次会話データの収録範囲を拡大していく予定です。
おわりに
去年のこのイラスト大好きです
ハッピーバレンタイン!
【バレンタインキャンペーン開催中!】
— ウマ娘プロジェクト公式アカウント (@uma_musu) February 14, 2023
バレンタインを記念してジュエル500個をプレゼント!
さらにウマ娘からプレゼントをもらえる特別なキャンペーンが開催中です!
詳細は、お知らせをご確認ください。https://t.co/OA3xvhu2J4#ウマ娘 #ゲームウマ娘 pic.twitter.com/lUJFUfb3DJ
出典
カバー画像: 『KIRARI MAGIC SHOW』のライブ映像より, ゲーム『ウマ娘 プリティーダービー』, ©Cygames, Inc.