メインコンテンツへジャンプ

セマンティックキャッシュで実現!コスパ最強チャットボット構築

Nehmé Tohmé
吉松龍太
Ellen Hirt
ブライアン・スミス(Bryan Smith)
Share this post

チャットボットは、ビジネスにとって価値あるツールとなりつつあり、効率を向上させるためや従業員をサポートするために役立ちます。LLMは、企業のデータやドキュメンテーションを大量に探し、幅広い問い合わせに対して情報を提供することで、従業員をサポートできます。経験豊富な従業員にとって、これは冗長で生産性の低いタスクに費やす時間を最小限に抑えるのに役立ちます。新入社員にとって、これは正しい答えを得るまでの時間を短縮するだけでなく、これらの従業員をオンボーディングを通じてガイドし、知識の進行を評価し、さらなる学習と開発のためのエリアを提案するのにも使用できます。

これらの機能は、今後も労働者を補完する可能性が高いと見られています。そして、多くの先進国で労働者の利用可能性に差し迫った課題がある中、多くの組織は、彼らが提供できるサポートを最大限に活用するために、内部プロセスを再構築しています。

LLMベースのチャットボットのスケーリングはコストがかかる

チャットボットを大規模に導入する準備をしている企業の多くが、コストという大きな課題に直面しています。高性能モデルはクエリにコストがかかることが多く、現代の多くのチャットボットアプリケーション、いわゆるエージェントシステムは、レスポンスを合成するために個々のユーザーリクエストを複数の、よりターゲット指向のLLMクエリに分解することがあります。これにより、多くのアプリケーションにとって、企業全体でのスケーリングが非常に高価になる可能性があります。

しかし、従業員のグループが生成する質問の幅を考えてみてください。各質問はどれだけ異なるのでしょうか?個々の従業員が別々に同様の質問をした場合、以前の問い合わせへの回答を再利用して、後の問い合わせの一部またはすべてのニーズに対応することは可能でしょうか?もし一部の回答を再利用できるとしたら、LLMへの呼び出しは何回避けられ、そのコストの影響は何か?

レスポンスの再利用は不必要なコストを避けることができます

会社の製品機能や能力についての質問に答えるように設計されたチャットボットを考えてみてください。このツールを使用することで、従業員は顧客とのエンゲージメントをサポートするために質問をすることができるかもしれません。

標準的なアプローチでは、チャットボットは各クエリを下位のLLMに送信し、ほぼ同一の回答を生成します。しかし、チャットボットアプリケーションを、ユーザーが尋ねる質問と非常に類似した以前にキャッシュされた質問と回答のセットを最初に検索し、既存の回答が見つかった場合にはそれを使用するようにプログラムすれば、LLMへの冗長な呼び出しを避けることができます。この技術はセマンティックキャッシングと呼ばれ、そのコスト削減の効果から企業に広く採用されています。

Databricksでセマンティックキャッシングを用いたチャットボットの構築

Databricksでは、私たちの製品に関する質問に答えるための公開チャットボットを運用しています。このチャットボットは、私たちの公式ドキュメンテーションで公開されており、よく似たユーザーからの問い合わせに遭遇します。このブログでは、一連のノートブックでDatabricksのチャットボットを評価し、セマンティックキャッシングが冗長な計算を削減することで効率を向上させる方法を理解します。デモンストレーションのために、チャットボットが受け取る可能性のある反復的な質問を模倣した合成データセットを使用しました。

Databricks Mosaic AIは、セマンティックキャッシュの作成、モデルとチェーンの管理、デプロイと監視、使用状況とペイロードの追跡を含む、コスト最適化されたチャットボットソリューションを構築するための必要なすべてのコンポーネントを提供します。セマンティックキャッシングを実装するために、標準的なRetrieval-Augmented Generation(RAG)チェーンの最初にレイヤーを追加します。このレイヤーは、類似の質問がすでにキャッシュに存在するかどうかをチェックします。存在する場合は、キャッシュされた回答が取得され、提供されます。そうでなければ、システムはRAGチェーンの実行を続けます。このシンプルでありながら強力なルーティングロジックは、LangchainやMLflowのpyfuncのようなオープンソースツールを使用して簡単に実装することができます。

セマンティックキャッシングの使用に関する高レベルのワークフロー
Figure 1: A high-level workflow for the use of semantic caching

ノートブックでは、Databricksでこのソリューションを実装する方法を示し、セマンティックキャッシングが同じ質問セットでテストした場合の標準RAGチェーンと比較して遅延とコストをどのように削減できるかを強調しています。

効率改善に加えて、私たちはMLflowのLLM-as-a-judgeアプローチを使用して、セマンティックキャッシングがレスポンス品質にどのように影響を与えるかも示します。セマンティックキャッシングは効率を向上させますが、品質はわずかに低下します:評価結果は、標準的なRAGチェーンが回答の関連性などの指標でわずかに優れていることを示しています。これらの小さな品質の低下は、キャッシュから回答を取得する際に予想されます。重要なのは、キャッシングソリューションによって提供されるコストと遅延の大幅な削減を考慮に入れた場合、これらの品質の違いが許容可能かどうかを判断することです。最終的には、これらのトレードオフがあなたのユースケースの全体的なビジネス価値にどのように影響を与えるかに基づいて決定を下すべきです。

Databricks を選ぶ理由

Databricksは、キャッシュ機能を備えたコスト最適化されたチャットボットを構築するための最適なプラットフォームを提供します。Databricks Mosaic AIを使用すると、ユーザーはベクトルデータベース、エージェント開発および評価フレームワーク、サービング、モニタリングを統一された、厳格に管理されたプラットフォーム上でネイティブにアクセスできます。これにより、データ、ベクトルインデックス、モデル、エージェント、エンドポイントなどの主要な資産が、堅牢なガバナンスの下で中央管理されることが保証されます。

Databricks Mosaic AIはオープンアーキテクチャを提供し、ユーザーがさまざまなモデルを試すことができます。Databricks Mosaic AIエージェントフレームワークと評価ツールを活用することで、ユーザーはアプリケーションを迅速に反復処理し、製品レベルの基準を満たすまで改善することができます。デプロイ後は、ヒット率やレイテンシーなどのKPIを、自動的にログされるInference TablesのMLflowトレースを使用して監視することができます。

DatabricksでAIシステムにセマンティックキャッシングを実装したい場合は、このプロジェクトをご覧ください。これは、あなたが迅速かつ効率的に始めるのを助けるために設計されています。

 

プロジェクトのリポジトリをチェックしてみてください

Databricks 無料トライアル

関連記事

DatabricksとPineconeで実現する最先端RAGチャットボット構築

お客様と対話するインテリジェントなボットをビジネスに導入することを想像してみてください。チャットボットは一般的に、顧客と対話し、彼らに助けや情報を提供するために使用されます。しかし、通常のチャットボットは複雑な質問に答えるのに苦労することがあります。 RAG とは Retrieval Augmented Generation (RAG) は、チャットボットが難しい質問を理解し、応答する能力を向上させる方法です。この生成AIデザインパターンは、大規模言語モデル(LLM)と外部知識の取得を組み合わせています。 これにより、リアルタイムデータを生成プロセス(推論時間)中にAIアプリケーションに統合することが可能になります。この文脈情報をLLMに提供することで、RAGは生成された出力の精度と品質を大幅に向上させます。 RAGを使用する利点の一部は次のとおりです: AIアプリケーションの精度と品質の向上: RAGがLLMにリアルタイムデータをコンテキストとして提供することで、AIアプリケーションの精度と品質が向上します。

カスタマーサービスとサポートで大規模言語モデル革命を推進する

Original : Driving a Large Language Model Revolution in Customer Service and Support 翻訳: junichi.maruyama 独自のLLM対応ボットを作りたいですか?エンドツーエンドのソリューションアクセラレータを こちら からダウンロードしてください OpenAI’s ChatGPT , Google’s Bard...

Hugging FaceとDeepSpeedによる大規模言語モデルのファインチューニング

Original Blog : Fine-Tuning Large Language Models with Hugging Face and DeepSpeed 翻訳: junichi.maruyama ChatGPTのセンセーショナルなリリースを受け、大規模言語モデル(LLM)が現在脚光を浴びています。多くの人が、このようなモデルを自分のアプリケーションでどのように活用できるかを考えています。しかし、これは変換器ベースのモデルのいくつかの進歩の一つに過ぎず、他の多くのモデルは、チャットだけでなく、翻訳、分類、要約などのタスクでオープンかつ容易に利用できます。 以前のブログ では、人気のある Hugging Face トランスフォーマーライブラリを通じて、Databricks上でこれらのモデルにアクセスするための基本的な方法を説明しました。 T5 や BERT...
プラットフォームブログ一覧へ