LLM推進担当の白田氏

白田幹氏:「Vector Storeを使って社内向けのChatGPTの頭を少しだけ良くした話」というところで、ちょっとお話できればと思っています。

はじめに、自己紹介をさせてください。株式会社リンクアンドモチベーションという会社におります、白田幹と申します。2020年新卒入社で、データサイエンティストとしてこれまで働いてきたのですが、「ChatGPT」の登場とともに今はLLM推進担当というところで、基本的には社内に向けてLLM開発推進の仕事をしています。

趣味は、筋トレとアメフトです。よろしくお願いします。

ChatGPTのAPIを使って機能を開発

弊社、リンクアンドモチベーションは、人材、HR領域で、SaaSのプロダクトをいくつか提供しています。

「モチベーションクラウド」と、「ストレッチクラウド」というサービスですね。組織のエンゲージメントを測るクラウドと、個人の成長を支援するクラウドの2つを主に提供しています。その2つのどちらも、ChatGPTのAPIを使って機能開発を行いました。

これ以外には、以前別のイベントで別の者が登壇した内容にはなりますが、「Chatbot UI」という、ご存じの方もいるかもしれませんが、ChatGPTをわりとセーフティに使える方法を使って、PDFやCSVなど、手元にあるドキュメントを渡して、エンベディングして、そこに対して受け答えができるよ、というプロダクトも社内向けではありますが作ったりしています。

Chatbot UIにPineconeを繋いでちょっと頭を良くしてみた

というところで、(スライドを示して)今日はこのような流れでお話できればなと思っています。今日は、先ほどお話ししたChatbot UIに「Pinecone」をつないでちょっと頭を良くしてみたというお話ができればなと思っています。

ChatGPTになにかを聞きたい時に、その「なにか」をいきなり聞くのではなく、「それを考える上で、大事なことは何?」と先に聞いて、それを参照した上で質問に答えさせるということを、おそらく何人かの方はされたことがあるかなと思います。

ただ、「ホニャララで重要なこと教えて」と言った後に、「じゃあ、ホニャララやって」と言うのは面倒だなと思います。また、出力に対して、何度も同じフィードバックをして、「そうじゃなくて、こういうふうに考えて」みたいに言うのが、けっこう面倒というところに課題感があると思います。

「どこかで一度言ったことは覚えておいてくれよ」と思い、Vector Storeに質問とLLMからの出力自体を保存して、それを参照しようと考えました。

基本的にノーマルなChatGPTに質問する時は、Chat Historyと新しいクエスチョンを基にして最終的なアンサーを出していると思いますが、その仕組みだと、自分で重要な情報を先に聞いて毎回ここに溜めて、その後に質問しないといけません。

もしかしたら試したことがある方がいるかもしれませんが、LLMの出力をPineconeやVector Storeに格納して、次回以降似た質問が出た時は、そこを参照して回答するように変えました。そういう実装を行いました。

Vector Storeに、独自の「ChatPDF」みたいなPDFを入れたり、CSVを入れたりするというのはよくある話だと思いますが、LLM自身の出力を溜めてみるということをやってみました。

こうすることで、Chat Historyに加えて、別スレッドの会話内容だったり、以前したフィードバックだったりを基に回答してくれるようになります。

実装は、ちょっとお見苦しいところもあるのですが、個人的なこだわりポイントとしては、入れたVector Storeを検索した時に、similarityScoreが0.85以上だったらそれを引っ張ってくるということをやっています。

デモ

ということで、まとめに入る前にデモにいければと思いますが、今、初めてのスレッドに、「私の趣味は何でしょうか?」という質問を入れています。

ChatGPTに聞くと当然「わかりません」となると思いますが、動くかな……あっ、動きましたね。別のところで会話した内容として、Pineconeに溜めている内容を引っ張ってきてくれています。というところで、きちんと動いてそうですというところが見られたかなと思います。

独自のデータ資産を増やそう、活用しよう

まとめです。当然の話かもしれませんが、独自のデータ資産を増やそう、活用しようというところで、ChatGPTの学習にない独自のデータ、社内のドキュメントなどをエンベディングさせて使うのは、大事かなと思っています。

それに加えて、今回のようなChatGPTにもらった出力自体をエンベディングして溜めていくことも同時に大事になるかなと思っています。

これを溜めるためには、けっこういろいろなサービスがありますし、今日この後もPineconeについてのお話しする方もいるのかなと思いますが、このあたりのVector StoreのサービスやLLMを上手に活用していく必要があるなと思っています。

今後の展望

今後の展望としては、今はローカルに立てているので、組織内のいろいろな人が使えるようにしたいなと思っています。

あとは、すべての会話をすべてPineconeに入れるという処理にしてしまっているので、メタデータを利用したり、ユーザーが「good」というボタンを押したものだけをPineconeに保存して、良質なフィードバックだけをPineconeに溜めていくことができればいいなと思っています。

これができるようになって、組織内の人、いろいろな人が使えるようになると、ほかの人が入れた良いフィードバックを基に回答できるようになるので、集合知がVector Storeに溜まって、少なくとも無駄なやり取りがどんどん減っていくかなと思っています。

ほかにもいろいろサービスがあるので、みなさんでここらへん盛り上げていけたらなと思っています。以上です。ありがとうございました。

(会場拍手)