「LIPS AI バーチャルビューティーアドバイザー」をどのように開発したか
堀江慧氏(以下、堀江):ここからはどのように作ったか、Howの話に入っていきます。初めにLangChainの「QAシステム作れまっせ」みたいなものをサッとやってみて。質問に関連するドキュメントを引っこ抜いてきて、それをGPTに渡して回答を生成させるみたいなものをPoC(Proof of Concept)してみたんですが、なんかいまいちだなと思って。
GPT周りの開発はまだまだ知見が溜まっていないところもあるし、弊社でもプロダクトに載せるのは初めてだったので、バージョンを刻んで、細かくリリースして仕上げていく開発方針を取りました。
(スライドを示して)右に貼ってある画像が実際に社内で使っていたガントチャートのNotionのページですが、4月4日、4月11日、4月17日と、1週間以内ぐらいで細かいバージョンを切って、「次のバージョンまでにこういうところを仕上げて完成版に近づけていく、リリースに近づけていく」みたいなスモールステップを5回重ね、ゴールデンウィーク明けの6回目に公開するという開発手順を踏みました。
(スライドを示して)できたものがこんな感じです。冒頭で紹介した「質問したら回答がでてきますよ」というものを、「システム的にはこんな感じになっています」と書いたのがこれです。利用者が質問して、その質問をLIPS側で前処理して、OpenAIのAPIに投げて、返ってきたものをLIPS側で後処理して、回答を表示するという当たり前のことが書いてあります。
回答の質向上のため、OpenAIの公式の「Playground」を使用
堀江:あとは回答の質のところで、ちょっとこだわる必要があるなと思ってやったこと。当たり前のことなんですが、一応紹介しておこうかなと思います。一番効いたなと思ったのは、当たり前のことですが、プロンプトエンジニアリングをちゃんとやったことです。
右に移っている画像はOpenAIの公式で提供されているPlaygroundなんですが、何か作る時には初手で触ることをおすすめします。「ChatGPTでも触れるじゃん」とか思うこともあると思うんですが、Playgroundが実際のAPIにかなり近いというか、たぶん同じなのかなと思うんですけど……。
ChatGPTだと補正が入っていたり、新しめのモデルが動いていたり、追加の機能が入っていたりしますが、実際にプロダクトに載せる上で、「APIを叩くんだったらこの質問にこういうパラメーターでなにが入ってくるのか」みたいなことを正しく再現できるので、これを使ってみることをおすすめします。
あと、これもWebサービスとして普通に使える感じで提供されているので、APIはエンジニア以外触りにくいと思うんですが、エンジニアじゃない人、デザイナーの方にも触ってもらって、ちょっと調整してもらうとかもやりやすいので、開発の際にはPlaygroundを使ってみることをおすすめします。
プロンプトは日本語ではなく英語で実施するのがおすすめ
堀江:あとは実際動くものを作る上で引っ掛かった諸問題ですが、回答が遅いとか、料金がけっこう高いとか、APIのlimitがやばそうとか。
LIPSは1,000万ダウンロードされて、けっこうユーザー数がいるサービスなので、費用の話であったり、インフラ側の負荷の話であったり、あるいはOpenAI側のAPI limitの話であったり、このあたりが全部引っ掛かりそうだなという感じでした。
(スライドを示して)ここには小ネタがいくつか書いてあります。ちょっとだけ紹介しておくと、日本語でプロンプトを入れるのは高いなと思ったんですけど、英語に翻訳して入れると費用が3分の1になるというのは、ちょっとコスパが良くておもしろかったので、ぜひ持ち帰ってほしい小ネタです。
このあたりは情報当たりトークン量が英語と比べると日本語が高いからだと思っていて。国産LLMの開発とかが最近流行っていますが……。LLM側の技術的な進歩とか、言語データが増えるとか、そのあたりで解消される一時的なものかもしれませんが、とりあえず「今は英語に翻訳して突っ込むとけっこう安くなることがあるよ」ということは、小ネタとして覚えておくと良いかなと思います。
あとスライドにいろいろ書いてあるんですが、キャッシュの話、キャパシティの話とか、Azureの話は後ろにあるので、いったん飛ばします。
一部のユーザーに先行公開することで見積りの精度を上げる
堀江:先ほどの費用とか負荷とかAPI limitの話の「大丈夫かな」という見積りがけっこう不安だったので、けっこう丁寧にやりました。実際の数字はさすがに伏せて黒塗りにしてあるんですが、「実際にこんな感じの意思決定をしました」というドキュメントのスクショが右側に貼ってあります。1つの回答、答えに5円ぐらいかかったり、あとはlimit的に1分間に数十個の質問しかできないとか。更新もあるので実際の値は、公式のドキュメントとにらめっこして確認してほしいんですが。
LIPSの規模感だと破産してしまったり、普通にリクエストがさばけなくなっちゃう可能性もけっこうあったので、キャパシティプランニングをけっこう丁寧にやりました。
想像以上に使われちゃうとかバズるとかは、プランニングした上でも起き得る可能性はあると思うんですが、その上で安全にリリースするために、ちょうどゴールデンウィークがあったので、ゴールデンウィーク中に一部のユーザーさんに先行公開しておいて、「そこの実績値を使って全体公開するとその何倍ぐらい来るよね。じゃあ、たぶん大丈夫」みたいな手順を踏んで、見積りの精度を上げるようなテクニックも使いました。
Azure OpenAI Serviceならlimit上限拡大の申請が可能
堀江:最後にAPI limitの話です。API limitはプランニングをして、「超えますね」となっても正直あまりできることがないという話があって。OpenAIのAPIのlimitはかなり厳しいんですよね。
GPT-3.5とGPT-4は、limitを増やすリクエストも、今はもしかしたらできるようになっているかもしれないんですが、開発当時はできなくて。ドキュメントには書いていませんでしたが、「rateを上げてください」という申請のフォームを見にいくと、「ChatGPTとGPT-4は適用外です」って書いてあって(笑)。
リリースに近い後半の時期でそれに気づいて、「リリースできんのか?」という、暗雲が立ち込める現象が発生してしまいました。
解決策です。AzureにもOpenAIが利用できるサービスがあって、こっちなら「リクエストのlimitを上げてください」という申請を送ることができるということを聞きつけて。
Azure側はプロダクションの運用を意識た機能性能面の利点やサポートとかがいろいろあると聞いていたので、調べてみたところ、Azure側だったら「LIPSのリクエストをさばくにはこのぐらいAPIが必要なので上限を上げてください」という申請ができて、それで解決したというのが最終的な顛末です。
ただちょっと足が遅くて。問い合わせがめっちゃ来ているとかが理由としてあると思うんですが、「回答に10営業日ぐらい時間がかかります」って書いてあって。「マジか」と思いながら、でもたまたまゴールデンウィークがあったので、リリースはあまり遅くはなりませんでした。
これからGPTを使って何か作る人、特に大規模サービスでGPTを使った機能を出そうと思っている方は、先ほどのキャパシティプランニングの話に併せて、回避策とか、問い合わせに10営業日かかるということとかも、小ネタとして持ち帰ってもらえれば幸いです。
言語理解や一般知識みたいなところでもおもしろいものを作れる技術
堀江:最後に感想です。今日はチャットの話がメインでしたが、チャットだけではなくて、言語理解とか一般知識みたいなところでLLMとかGPTはおもしろいものを作れる技術発展です。LIPSでいうと、テキストとか動画とか画像とか、そういうものをユーザーの方々が作って集まれるプラットフォームになっていて。
LIPSはチャットサービスではないので、例えば「LINE」とは違っています。LIPSの中では、LLMを活用して、もっと溶け込んだかたちで欲しい情報を抽出して、体験の中に置いておくような状態をこれから作っていきたいなと思っています。
お決まりの話ですが、興味がある方、あるいはこういう技術を使ってユーザーに価値を届けられるサービス作りとかが好きという人、ぜひお話ししたいので、興味があればカジュアル面談とかしにきてください。以上です。
司会者:堀江さん、ありがとうございました。大変おもしろく聞かせていただきました。
質疑応答
司会者:ここからQ&Aをしたいと思うので、質問ある方はチャットに書き込んでもらえるとありがたいです。
その前に私からも1つ。生成AIとLIPSさんのサービスは相性が良いのかなと見ていて感じました。LIPSさんは今回の「LIPS AI バーチャルビューティーアドバイザー」以外にもいくつかやっていることがあるとお話しされていましたが、ほかにはどんなことをやっているんですか?
堀江:LIPS AIの中のほかサービスでこれまで出しているものでいうと、「パーソナルカラー診断」という、ARを使ってコスメを試してみる、顔に当ててみることができて、その結果を基に、似合うコスメの色をアドバイスできるような機能であったり、あるいは、好みとか肌の状態みたいなところの情報から、肌のタイプを分類して、成分ベースでおすすめの商品を出すような「肌タイプ×成分相性診断」であったり。そういった機能をこれまでLIPS AIの中でリリースしています。
司会者:なるほど。最後のほうに、「ほかにもこういうことができるかも」みたいなことを言われていたと思うんですが、言える範囲で「こういうことを考えています」みたいなものってありますか?
堀江:出さないことになっちゃったので言えるものでいうと、医薬品、化粧品などのレビューとかを広告として書く際に気をつけなければいけない表現の法律があって。規制なので、例えば美容の界隈のインフルエンサーの方はそのあたりを勉強してすごく気を配って書いているんですが、法律が難しいので。
「自分のレビュー、大丈夫なんだっけ?」ということが心配なんだけれど、専門家に聞かないとこれまでわからなかった。そういうことを、ChatGPTはけっこう教えてくれるんですよね(笑)。
「私のこのレビュー、薬機法的に気をつけたほうがいい表現って入っていますか?」とかを、100パーセントではないもののけっこう教えてくれて。そういうのをユーザーに提供できると、安心してインフルエンサーの方に活動していただけるかなとか、あるいは、ケアしなきゃいけないリスクを伝えることができるかなと思ったんですが、100パーセントじゃないというところで、弊社のサービスとして提供するのはベータ版だとしても怖いなと思って。「だったら企業としては作らないかもな」と。
利用者の方に提供はできないかもしれませんが、例えばそのあたりのリスクを避けるための検証システムに、社内で使うとかはぜんぜんできるかなと思っていて。社内には口コミデータがあるので、それを使ってできることはたぶんいろいろあるかなと思っていて。そういうものはいろいろ試してみています。
司会者:ありがとうございます。時間がちょっと迫ってきているので、ここで堀江さんの発表を終わりにしたいと思います。ありがとうございました。