ミチビクにおける、ChatGPTを活用した業務効率化やプロダクト開発の事例

金杉優樹氏(以下、金杉):弊社、ミチビク株式会社では(ChatGPTを)どのように扱っているかについてお話しします。業務効率化はみなさんすでにやられているかもしれませんが、ChatGPT Plusのアカウントと、それに合わせて「GitHub Copilot」をエンジニアやデザイナーさん全員に付与しています。

エンジニアがちょっと面倒くさいなと思っていたタスクをChatGPTにパスするところでの業務効率化は、どの会社さんでもやられていると思いますが、そういうことをうちもやっています。

プロダクト開発に関しては、弊社は上場企業の取締役会を効率化させることを今はメインにやっています。2時間の取締役会の重要な会議の書き起こしデータを取れるものになっていて、その書き起こしデータから「誰がしゃべりました」「金杉、30分ぐらいなにかしゃべりました」とか「〇〇はぜんぜんしゃべっていないです」とか、そういうところから評価ができるようなものを作っています。

話者特定は、既存のサービスのAPIを使わせてもらって実現できています。この会話は何についての会話ですというところを今はChatGPTに判断をさせて、そこのラベリングをするものを今はプロダクトとして作ろうと、社内で実験しながらやっています。

弊社はアプリケーションエンジニアがメインの会社で、機械学習が得意な人たちがあまりいなかったので、ChatGPTが出てきて、初めて(見た時は)「お、こんなことができるのか」みたいな感じでした。なので、外の会社のシニアの機械学習エンジニアをアドバイザーとして、「こんなことってできるんですか?」というところから(開発)してもらう人を1人採用しました。

あとはインターン生ですね。今はシンガポールの大学がお休みらしくて、シンガポールの大学でコンピューターサイエンスをしている学生がインターンでうちに来ています。プロンプトエンジニアリングだけを2、3ヶ月ガッツリ磨いてもらうという役割で、スポットで来てもらって、その方と社内のエンジニアの3人、4人のチームで先ほど言ったことを実現しようとしています。

あとは冒頭でしゃべってしまったのですが、議事録の要約ですね。取締役会の議事録は会社法という法律で決められた要素に合致しないと議事録にできません。なので、普通の会議やミーティングの議事録ではなく、「会社法に則ったかたちで、こういう議事録をこの音声から作成してください」というのをやっているのですが、ChatGPTにはトークンの制限があるじゃないですか。

今はそこをいかに効率的に乗り越えられるかというところをがんばっている感じです。

松本勇気氏(以下、松本):ちなみにその開発で使っているライブラリは、どんなものがあるんですか?

金杉:ライブラリはLangChainをベースにしようと思ったのですが、LangChainはやはり動きが激しかったりするので、うちはLangChainの中のPythonを読んで、似たような処理を自前で作る方針で今はやっています。

松本:完全にTipsですが、LangChainが辛くなってきたらLangChainのプロンプトだけをメチャクチャ読むのが、僕はすごく良かったです。

金杉:なるほど。そうなんですね。

松本:MapReduce的な処理をどういうプロンプトで実現しているのかは、僕はけっこう参考にしていました。あとはエージェントのプロンプトとか。

金杉:はいはい。LangChainはけっこうな回数でリクエストを叩きに行っちゃうということも、実際に検証してわかっているエンジニアから聞きました。「いや、そんなにトークンを使われたら、もう商用利用できる前に終わっちゃうよ」みたいな感じもあるので、そのあたりは今工夫しながらやっています。

松本:けっこう似たようなことをうちも今事業としてやり始めていて、文書解析は便利ですよね。

金杉:メチャクチャ便利。

松本:要約やタグ付けは弊社もやっています。弊社の要約は、どちらかというとお客さまからいただいたドキュメントに対して、欲しい情報の抽出をしたり、そこから要約をしたりしています。弊社はLlamaIndexを使って、プロンプトをいろいろといじりながら作っています。

LlamaIndexは文書処理に特化している感じがすごくしていて、すごく軽量なので、個人的には扱いやすいのと、ドキュメントのローダーという概念があって、読み出し元のドキュメントをWordファイルやExcelファイルなど、いろいろ選べるようになっていて、けっこう便利なので僕は使っています。というのも、お客さまからやってくるファイルは、PDFやPowerPointなど、使用されているフォーマットもバラバラなので(笑)。

金杉:なるほど。

「今すぐやりましょう」「全部の優先度を変えましょう」と気合いで通した

松本:ファインディさんは、どんな開発体制でやっているんですか?

佐藤将高氏(以下、佐藤):今のうちの開発体制だと、プロジェクトベースで今回の企画をやっていました。PdMが1人、あとはプロンプトエンジニアリングをする機械学習エンジニアが1人と、フロントとバックエンドが1人ずつという合計4人、プラスQAがいて5人で、本当にミニマムで実現していました。

松本:それでもけっこうリソースは使っているじゃないですか。ここにいる人たちもたぶん自社でもなんかやりたいなと思うけれど、それを経営に通せるかみたいなところがあるじゃないですか。実際に機能をリリースしてみてどうですか? プラスでした?

佐藤:結論で言うとプラス……。1回目はものすごくプラスだったかなと思っています。これは先ほどお伝えしたように「これは、今やらないと絶対ダメだから」というところを、「今すぐやりましょう」「全部の優先度を変えましょう」みたいに、もう絶対にダメという気合いで通したところがあります(笑)。

メンバーにも、これは今やるべき価値があるものなんだときちんと伝えて実現しました。2つ目にやったものは、3月から4月にかけて実装しています。そのタイミングだと、若干みんな1回はかじった雰囲気が出てきていて、「何ができるかなんとなくわかってきたよね」とか「こういうことができるよね」というツイートとかが多くなってきた時期でした。

なので、おもしろみで言うと、やはり1回目に出したもの勝ちという状況がインパクトとしては一番大きかったかなというところです。まだまだ使えるシーンはあると思うので、これからももうちょっと投資していきたいなというところはあります。

松本:リリースしたのがメチャクチャ早かったですよね。

佐藤:そうですね。

松本:ChatGPTというか、GPT系のAPIを使ったサービスの中では、自分の知る限り国内で一番早く出されていた印象だったような。

佐藤:実はちょうど2月の24日か26日くらいに開発しようと決めて、プロンプトエンジニアリングをしている3月2日か3日くらいのタイミングで、APIが使えるようになりましたというところのリリースがあったんですよね。

前のバージョンでやろうとしていたけど、これは新しいバージョンが使えるじゃんとなったので、即効でAPIを使う仕組みなどを直して、3月の1週目か2週目に出したので、だいたい開発に2、3週間、デザインも含めて、機能を1個出した感じでした。

松本:メチャクチャ、スタートアップですね。

佐藤:すべての意思決定を抱えて爆速でやるみたいな。スタートアップ魂をみんなで出して、一瞬燃え尽きかけたので、燃え尽きないようにみんなでがんばる。「もう、ちょっとゆっくりめで大丈夫だからさ」みたいなところもありつつ、一発目はちょっとがんばってみんなで出したというところです。

松本:ありがとうございます。勝手に司会業を奪い始めてしまって……。大丈夫ですかね?

(一同笑)

ミチビクが、ChatGPTを活用する際に気をつけたこと

松本:次のスライドが出たので、次に行きます。いつも司会を奪いがちなんですよね。「ChatGPTを活用する際に気をつけたことや、ベストプラクティス」。これは金杉さんからおうかがいしてもよろしいですか?

金杉:ベストプラクティス。1つは、やはり今はアドバイザーの活用が大きいなと思っています。例えば、ChatGPT界では「こういうのができています」「こういうのができるようになりました」みたいな感じで、新しい状況の変化が目まぐるしい、すごいなと思っています。

それが大変だなと思ったので、僕は月に2回、「最新のキャッチアップ事情をまとめてくれ」みたいな内容で、アドバイザーと話しています。あの有名な東京ミート……。何でしたっけ? LLMの一番盛り上がっているLTの。

松本:「LLM Meetup Tokyo」ですか?

金杉:そうです!「それで一番おもしろかったのはこれですよ」みたいなのも、メチャクチャまとめてもらっています。ごめんなさい、これがベストプラクティスなのかというと、ちょっと話がズレちゃうかもしれないですが、ChatGPTに関してはそういうのをやったり……あとは先ほども話したようなトークン数の話ですね。

議事録などを要約する時に、MapReduceなのかRefineなのか、そのあたりの手法に対して「こういうコマンドプロンプトで投げてみて、こんな結果が返ってきたんです」みたいなデータを集めて、アドバイザーに「これってどうなんですかね? もっとこうしたほうがいいですかね?」みたいなところを(聞いています)。その方は、ミートアップやLT会に登壇されていて、専門的な知識を持っているので、そういうところからけっこうやらせてもらっています。

あとは、ベストプラクティスじゃないかもしれませんが、気をつけることとしては、利用規約まわりですかね。うちもパブリックベータでそろそろ出そうとしているのですが、今は最終調整中の段階で、既存の利用規約に対して個人情報をすごく持っていっちゃうところがあるので、弁護士さんを入れて「OpenAIの規約を読んでください」とお願いしたり。あとは、今ちょっとAzureのOpenAIを使おうかなと検討しているので、そちらの利用規約も(読んだり)。

あとはリージョンですね。弊社が提供しているのはBtoBのプロダクトでなので、OpenAIもAzureのOpenAIも東京リージョンがないという点で、海外のサーバーにデータが集まってしまうのをお客さまがすごく気にされるので、そのへんをどう回避していくか……。

回避という言葉が合っているかどうかはわかりませんが、どう乗り越えようかなみたいなところを今は弁護士さんとAzureの担当者とやらせてもらっています。

情報のキャッチアップはメチャクチャ辛かった

松本:情報のキャッチアップはすごく辛かったですよね。3月はメチャクチャ辛かった。

金杉:メチャクチャ辛いですよね。

松本:みなさん3月は辛くなかったですか? 毎晩発表があるんですよ。

金杉:そうですね。

松本:気がつくとGPT-4が出ているんですよ。「やばい!」と思って、Twitter(現X)に張り付いて、有識者をかき集めたタイムラインを作って、ずっと追いかけていたんですよ。

金杉:ご自身でやられていたんですね。

松本:だいたい深夜2時ぐらいに発表があるんですよ。

金杉:(笑)。

松本:だから寝られないんですよ。

金杉:そうですよね。

松本:楽しいという感じで、僕もけっこう情報をキャッチアップするのが辛かった記憶が今蘇りました。最近はちょっと落ち着いてきたんですけど。

金杉:ごめんなさい。僕は人の手に頼っちゃいました。

(一同笑)

松本:逆に有識者は情報をまとめて、社内に「今週の論文リスト」を展開したりとか。

金杉:ありがたいですね。

松本:全部僕が読んで、要約して社内に共有していました。

金杉:それをTwitter(現X)に公開していただければ僕らも……。

(一同笑)

松本:私の血と汗と涙と睡眠時間でできているので、お渡しできないです(笑)。

金杉:すみません(笑)。

(次回へつづく)