Kono先生の話し方を真似るチャットbotを作った

Edit

どうして作った?

自分が所属している琉球大学工学部の知能情報コースの講義でソフトウェアを作る講義があり、そして当時AIチャットボットである「りんな」のGPT言語モデルがオープンソース化されて業界がわいわいしていたので、豊富なデータさえあればファインチューニングすることで好きな人の話し方を模倣するチャットボットができる!と思って作りました。

人物選定

Kono先生 です。許可ももらいました。

ちなみに、選定理由としては 先生のツイッター のつぶやきが大量にあってGPT言語モデルをファインチューニングするには十分なデータを備えていると判断したからです。

技術的なアピールポイント

Webフロントエンド

ソースコードは こちら です。

WebフレームワークであるVue3とTypeScriptでWebサイトをチャット風Webページを作成しています。任意の画面の縦横比率に対応しています。

Routingやら非同期処理の実装も行いました。APIサーバーはFlaskです。

GPT2言語モデルのファインチューニング

ソースコードは こちら です。

Kono先生のTwitterをスクレーピングしてデータを収集して、それをもとにファインチューニングを行いました。学科のサーバーはGPUを搭載しているので、学科サーバーを使いました。

ファインチューニングした後のモデルは huggingface に置いてあります。

リバースプロキシによる負荷分散

推論用のサーバー(コンテナ)を複数立てて、Nginxのリバースプロキシという機能で複数のリクエストを同時に捌くようにしました。スケールはしません。

docker-compose.ymlで並行で立てたいコンテナの数を指定しました。コードは こちら

nginx.confで負荷分散するサーバーを定義します。コードは こちら

出来栄え

1.png

こんな感じです。満足です。

comments powered by Disqus