見出し画像

配信コメントに自動対話botを召喚! - REALITY Advent Calendar #12

どうも、サーバエンジニアのうすぎぬです!今回は開発合宿で配信コメントに自動対話botを召喚するコマンドを作ったので、その内容と技術プチ解説をしようかと思います!

なお、うすぎぬはAIについては門外漢であり、大変恐縮ですが本記事は本格的に自動対話botの実装に取り組もうと考えている方向けの記事にはなっておりません!ご了承を!

※ 現在(2022/12)、REALITYアプリには配信コメント・チャット機能等においての自動対話botは存在しません。また、本記事の内容は将来のREALITYアプリへの自動対話bot導入を示唆するものではありません。

はじめに

最近、ChatGPTの登場にTwitterが賑わっていますね!ChatGPTをはじめエアフレンドなど、自動対話botは時折Twitterを賑わせてくれています。現在の自動対話botに対する世間の関心は数年前には想像できないほど高く、今後自動対話botを生かしたさまざまなアプリが作られていくことは想像に難くないですね。

ChatGPTさんが自動対話botの未来についてどう思っているか聞いてみました。

ChatGPTすごい

ChatGPTさん視点でも自動対話botの未来は明るいそうです。ポジショントークさせたみたいですみません。

ということで合宿ではREALITYへの自動対話bot導入に挑戦しました!
なお、筆者うすぎぬはAI何もわからないので、AI分野の学習がてら取り組むスタンスでの挑戦になります。
(合宿とかハッカソンみたいな機会に未経験分野に突撃するの好き。)

成果物

大食いのAIちゃんと会話する

配信コメントにAIちゃんを召喚する /talk コマンドを実装しました!
ちゃんと動いた!AIちゃんかわいいですね!
他にも会話例をいくつか紹介します!

はじめまして感のあるAIちゃん
サツマイモと野菜のスイーツとは

※ 現在(2022/12)、REALITYアプリには配信コメント・チャット機能等においての自動対話botは存在しません。また、本記事の内容は将来のREALITYアプリへの自動対話bot導入を示唆するものではありません。(重要なので2回目)

解説

今回は自前で言語モデルを動作させるサーバをホストしたいことから、NTTが無償公開しているTransformer対話モデルを使用させていただきました!

また、今回は合宿期間中(2日間)にアプリの機能として組み込む必要があり、実装観点でのコスパが良い以下のアーキテクチャを採用しました。

  1. japanese-dialog-transformers に利用されるMeta Research製の言語モデル学習ライブラリの Fairseq を使用しTransformer対話モデルのテストが動作する環境をGCEインスタンス上に作成する。

  2. 1. のアプリケーションをFlaskでWrapし、WebAPI経由でアクセスできるようにする

  3. REALITYの配信コメントを扱うサーバから 2. のWebAPIにコメントのテキスト情報を載せたリクエストを行い返事をもらう

  4. WebSocket経由でユーザが操作するアプリに返事を表示させる

アーキテクチャの概要図

余談

言語モデルでは事前学習モデルに対してファインチューニングを施すことで特定タスクに対して精度の高いモデルを作成することができます。今回は合宿(と事前準備)でファインチューニングにも挑戦しました。ファインチューニング用の素材のexampleがjapanese-dialog-transformersに含まれているので、同じフォーマットで学習用のソースを準備することでファインチューニングを実施できます。

今回は合宿用のネタということでここには書けないようなdirtyな方法でソースを作成したり、ここには書けないような小細工をしたりして遊んでみました。そして見事に失敗した面白AIを貼って本記事の締めとさせていただきます。

お嬢様口調で話すAIちゃん
辛いものを食べてろれつが回らないお嬢様

最後までご拝読いただきましてありがとうございました!本記事から少しでもREALITY開発合宿の雰囲気を感じ取っていただけたら幸いです!

明日は同じくサーバチームのインターンのKokubunくんによる「REALITYにフォロワー1000人達成おめでとうページを作成した話」です!
乞うご期待!