![見出し画像](https://assets.st-note.com/production/uploads/images/116005243/rectangle_large_type_2_38cadf560851cc8dd603e9fe743d8d41.png?width=1200)
AIアイネス開発記録 #3
私が開発しているAIである、AIアイネスフウジン(略AIネス, AIアイネス)の進捗です。
日々の開発の様子はTwitterにて「#AIアイネス」のハッシュタグで発信してます!
前回のあらすじ
前回の内容・これまでの活動内容については、
『AIアイネス開発記録 #2』を参照してください。
進捗
1. アイネスの会話コーパス
ゲームウマ娘の、アイネスフウジンが登場するすべてのイベントをマルチターン会話データとして収録したデータセットがついに完成しました!
⠀⠀⠀⠀㊗️🎉💯㊗️🎉💯㊗️🎉💯㊗️🎉💯
— さくさくむら (@Sakkusakumura) September 3, 2023
⠀⠀⠀⠀🥳🎂全会話ログ収録完了!!!🥳🎂
⠀⠀⠀⠀🎉💯㊗️🎉💯㊗️🎉💯㊗️🎉💯㊗️
やっと終わったー!
都男氏
風来坊さん( @foorai_bou )
ぴーやまさん( @Piyama0 )
寿司ニキ( @Sub_PC_rica )
本当にありがとうございました!#AIアイネス #ウマ娘 #アイネスフウジン https://t.co/2uAJfrtJcI pic.twitter.com/TzNSrstk9g
会話データセットの作成は5月初めから取り組んでいたプロジェクトだったので、感慨深いです。
およそ4か月くらいかかりました。
以下、データセットの詳細をまとめます。
収録したアイネスフウジンのセリフ:1432種類(6万5768文字分)
(直前までの会話履歴+1つのアイネスフウジンのセリフで1つのデータとしています)収録したすべてのキャラクターのセリフ:75万9450文字
一つの会話データの平均ターン数:14.14回
撮影したスクショは約850枚でした。
ここから、アイネスフウジンのプロフィールに関するQAをそれぞれ1~2組ずつ作成し、プロフィールに関する質問に答えられるようにします。
以下はその一例です。
トレーナー: 君の名前は何ですか?
アイネスフウジン: はろはろ〜!アイネスフウジンなの!レースでもバイトでもいっぱいがんばるお姉ちゃんだよ!家族みんなに喜んでもらえるように、毎日全力で頑張っているの〜!よろしくねっ!あたしの趣味や好きなこと、レースについて、バイトのこと、家族の話…何でも聞いてくれていいの〜!キミが知りたいことを教えてくれれば、あたしが全部答えるの!
========
トレーナー: 名前は?
アイネスフウジン: あたしの名前はアイネスフウジンなの!元気いっぱいで、家族思いの働き者、それがあたし!家族みんなに喜んでもらえるように、レースもバイトもいっぱいがんばるの!あたしのこと、レースのこと、バイトのこと……!何でも聞いてね♪
========
トレーナー: 君はどんなウマ娘なの?
アイネスフウジン: はろはろ!あたしはアイネスフウジンなの!元気いっぱいで、家族思いなお姉ちゃんってよく言われるかな!レースも大好きで、バイトもしながらがんばってるの!妹たちにも喜んでもらえるように、いつも全力で頑張ってるの♪
家族の想い、キミの想い、あたしの想い……全部乗せて、最強のお姉ちゃんを目指してるの!何か他に知りたいことある?何でも聞いてね!ぜんぶ答えちゃうの♪
========
トレーナー: あなたのことについて教えて
アイネスフウジン: あたしのこと?えっとね、走るのが何よりも好き!出走前の、あのドキドキした気持ちとレース中の熱い競り合い……う~ん!最高なの!
あとは、美浦寮に住んでて、ルームメイトはライアンちゃんなんだ!時短料理が得意なんだけど、贅沢と断れない頼みごとはちょっと苦手かも……。
ちなみに、トレーニングをしながら、バイトもがんばってるんだ。ラーメン屋のフロアスタッフとかハヤウマ便の臨時宅配員とか……とにかく色々やってるの!あたしの好きなことを応援してくれる家族に、少しでも恩返しをしたくって。体の弱いお母さんにも、無理をさせたくないし……。でもでも、トレーニングもバイトも、どっちも手を抜くつもりはないよ!あたしはいつでも全力!あたしにできることなら、何でもがんばっちゃうの!
家族の想い、キミの想い……全部この服に乗せて、最高のレースを見せるんだから!ふふっ、トレーナー、これからもよろしくね♪
========
トレーナー: アイネス、何か自分をアピールする言葉ってある?
アイネスフウジン: うーん、それなら「応援してくれるみんなのためにレースでもバイトでもガンガン行くの!」かな?
========
トレーナー: 自己PRしてみて
アイネスフウジン: はろはろ〜!アイネスフウジンなの!レースもバイトも一生懸命頑張るウマ娘なの!家族の想い、キミの想い、あたしの想い…全部を背負って走るの!アルバイトはね、コンビニ店員とかラーメン屋のフロアスタッフとか、色々やってるんだ~♪他にもマジックショーの補佐をしたり、遺跡の発掘なんてのも思い出深いの!まあ、そういうバイトはレアなんだけどねっ!他にも聞きたいことがあったら、教えて欲しいの♪
========
トレーナー: 君のCVは誰?
アイネスフウジン: うーん、それはちょっと…ごめんね、答えられないの。
========
トレーナー: マイルールは何?
アイネスフウジン: あたしのマイルールは、アルバイトのお給料日は妹たちにお土産を買うことなの!今度はどんな妹サービスをしてあげよっかな?最近できたクレープ屋さんに連れて行ってあげるとか?あと遊園地なんかも良いかも!うーん、妹たちの喜ぶ顔を想像すると今からワクワクしちゃうの!後でスーちゃんとルーちゃんが何に興味を持ってるのか調べておかなくちゃ!
スリーサイズやアイネスフウジンを担当する声優さんについてなど、一部の質問に対する応答は、私の趣味や考えによりプロフィール情報とは異なる内容にしてあります。
また、アイネスフウジンの応答は、自分で考えて(脳内のアイネスにしゃべらせて)書いているので、客観的なアイネスフウジンらしさをある程度担保する必要があります。
そこで、現在他の人に私が作成したQA集を読んでもらって、アイネスフウジンらしくないセリフが無いかを今チェックしてもらっているところです。
2. モデルのトレーニング
前回作成したデモで使用しているモデルは、約60%の完成度のデータセットを用いたものでした。
Flask+StreamlitでAIアイネスと会話できるチャットアプリ作った!
— さくさくむら (@Sakkusakumura) August 6, 2023
steaming/バッチ推論は今の構成だとできなそうなのが悲しい#AIアイネス #ウマ娘 #アイネスフウジン pic.twitter.com/HKZk21swWc
そこで、今回は完成したデータセットを用いてモデルをトレーニングします。
また、モデルのトレーニング時に使用するハイパーパラメータについて、前回は手動によるグリッドサーチを行いましたが、今回はベイズ探索を用いた手法であるOptunaを用いてハイパーパラメータ探索を行います。
おおー、なるほど、こうやってハイパーパラメータ探索するのか pic.twitter.com/dJitL6W6fk
— さくさくむら (@Sakkusakumura) September 9, 2023
ただし、現在Transformersを利用したファインチューニングで、メモリが異常に消費されたり、トレーニングが終わってもメモリが解放されないせいでハイパーパラメータ探索の2回目以降の試行に失敗したりという問題が発生しているため、ハイパーパラメータ探索の自動化にはもう少しかかりそうです。
Huggingface のフォーラムで聞いてみて、これらの問題の解決に取り組んでいこうと考えています。(他力本願寺)
やっぱおかしいって!
— さくさくむら (@Sakkusakumura) September 8, 2023
transformers==4.31だと普通にトレーニング回るw
ちょっと一人で調べるのは大変そうだから、issue建てるか? https://t.co/djt8hY1Mms pic.twitter.com/1mqF9xlP5M
3. 深層学習のお勉強
AIアイネスは、将来的に画像や動画の入力に対応し、ユーザがプレイしている画面を見てコメントをするような機能や、ゲーム中の映像から実況をする機能を追加したいと考えています。
これらを実現するにあたって、深層学習や大規模言語モデルに関するより確かな理解が必要になります。
そこで本を読みながら、少しずつ勉強を進めています。
左が深層学習とAIモデルについての理論と実践で、これは今後の地道な知識の蓄積が必要であり、順番にこなしていく必要があります。
右は大規模言語モデルに特化した本で、今持っているスキルセットである程度読んで理解できると思います。
![](https://assets.st-note.com/img/1694396951116-m3ZaIKoKWY.png?width=1200)
まずは「ゼロから作るディープラーニング①」と「大規模言語モデル入門」から始めました。パーセプトロンとか何年ぶりだろう・・・という感じでところどころ懐かしい感じがあり、面白いです。
今後の展望とか
AIアイネスについて
AIアイネスの機能の一つである「ゲームウマ娘の攻略情報の提供」は、RAG (Retrieval Augmented Generation) を採用することにしました。
理由としては、ゲームのアップデートにより攻略情報が古くなってしまう問題に対処できることと、情報の正確さという面でAIアイネスの応答精度をある程度確保できるからというものが挙げられます。
![](https://assets.st-note.com/img/1694430974490-5uaj9jnKhk.png?width=1200)
出典:LLMを利用したRAG(Retrieval Augmented Generation)と著作権侵害
そして、AIアイネスには、ディレクターAIとキャラクターAIによる多段階推論を採用することを考えています。
ディレクターAIは、世界観・キャラ設定を加味してどのようにキャラが発言するかを予測し、キャラクターAIは予測結果をもとに指定されたキャラクターの口調で文章を出力します。
現在ディレクターAIを作成するためのデータセットの作成と、ディレクターAIにChatGPTを用いたプロトタイプを作成して、その具合を確かめています。
ただし、ChatGPTをディレクターAIとして採用すると、例のようなシチュエーションでは「みんなで力を合わせて倒そう!」のような、良い子ちゃんが考えた面白くない行動方針が出る傾向を確認しているので、よりキャラクターを深堀りした行動方針を出力させるには、性能が高いがアライメントの緩いモデルを使用する必要があると考えています。
データセットについては、もう少し進捗が出次第報告する予定です。
まとめ
ということで、今週の進捗報告と、現在取り組んでいる内容、そして今後の展望についてまとめました。
これからも開発を進めていきます。
それでは。
出典
カバー画像: 『トレセン音頭』のライブ映像, ゲーム『ウマ娘 プリティーダービー』, ©Cygames, Inc.
そろそろWebUIも作らないといけないんだよな・・・スケジュールきつすぎるなーw
この記事が気に入ったらサポートをしてみませんか?