見出し画像

で、結局キャラクターBOTを作るには? ~序章~ 

初めての投稿となります!
普段はネコにいさんチャンネルというYouTubeチャンネルで
ITに関するの動画を載せているので是非見てください。
その道のプロではないですが、最近は生成AI関連の開発にはまっています!

LLMの発展と利用者とのギャップ

ChatGPTの登場から今年にかけLLM(大規模言語モデル)が話題となっていますね。
特に2023年はGPTのAPIの利用が可能となり、ファインチューニングにも対応
またLlamaIndexLangChainなど関連ライブラリも盛んに開発が進んでいます。


まぁとにかく私が言えるのは…

難しすぎ!

ということにつきます(笑)

特に最近リリースしたため、GPTのファインチューニングに関しては情報は多く発信されていますが、他の方の記事やXで話題となったものを読んでみても、ほとんど”論文”であり効果がすごいと言われても、そのすごさがわからないのが正直なところです…
(もちろん記事を書いている方が悪いわけではありませんが…)
そして同時に少し違和感みたいなものも感じます。

その違和感はLLMの価値が”利用者によって異なる”ことだと思います。
例えば医療用の文献を読み込ませて、関係者が利用するナレッジXXXXとか
に有効な手法と、ある人物の情報を与えて作るキャラクターBOTに有効な手法ではわけが違います。


目的からのアプローチ

ということで長くなりましたが、今後何回かでお伝えできればと思うのは
目的ベース(意識高く言えば"ゴール")でLLMやライブラリを利用していき
どうしてこういったものが必要か?を検討する過程を共有することで、読んで頂いた方のご参考にしていただければと思います。

で、肝心の目的なのですが、掲題の通り「キャラクターBOT」の作成です。
背景としては知り合いのスポーツ選手の支援者(マネージャー的な人)から

「Kくん(そのスポーツ選手)をAIで再現し、ファンがLINEでチャットができるサービスを作りたい」

という話をされたことです。(少しぼかしてます)
ついでにPUSH通知でお知らせや宣伝なんかも行いたいのでしょう。
こんな話はちらほらありそうですよね。
(いつか情報処理試験の”LLM検定”なんてのがあればこんな問題があるかもしれません…)
ざっと要件などをまとめるとこんな感じです。

機能要件

・プラットフォームはLINEでチャット形式で対話ができること
・その選手の基本的な情報の回答ができること
(身長、体重、出身地など)
・学生時代などのエピソードを何種類か回答できること
(これはこちらから「面白い話して」などを指定したときに回答)
・その他指定した情報以外もそつなく回答する
(あくまでも”そつなく”で、いつものGPTのような回答でよい)

できる限り行うこと(非機能要件)

・返答はできるだけ早く(できれば3秒程度)
・あまりお金をかけない
(※LINEの料金体系上、具体的に言い切れませんが安く済ませる)

今回はやらないこと

・チャットデータの保存(一定時間後に会話はリセット)
・「○○だぜ」などキャラクターの返答の語尾の指定
(ファインチューニング次第できるはずですが、今回はなしで)

今回作るのはあくまでもファン向けのサービスであり、回答の精度は目標9割で、”内容が完全であるかはそこまで問わない”ということを留意いただきたいです。
(ただ「出身地」と学習させても「どこ生まれ?」など異なる質問であっても回答ができることを目指したいと思います。)

そして今回サンプルとして作るキャラクターですが、みなさんが大好きなMLBプレーヤーの「大谷翔平選手」にしたいと思います。

BOTの完成イメージ

※もちろん私は大谷選手と関係ありませんし、勝手に「大谷BOT」サービスを販売したら訴えられるのでご注意を。

また検討する過程を示すと言いましたが
プログラム言語はPythonを使うことは勝手ながらご了承ください。
(LLM関連のライブラリの多くがPythonを利用しているので…)

では、次回「ファインチューニング編」から始めたいと思います!


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