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

リアルタイムの構造化データでRAGアプリケーションの応答品質を向上

Share this post

Retrieval Augmented Generation(RAG)は、Gen AIアプリケーションのコンテキストとして関連データを提供する効率的なメカニズムです。 ほとんどのRAGアプリケーションは、通常、ドキュメントやWiki、サポートチケットなどの非構造化データから関連するコンテキストを検索するためにベクトルインデックスを使用します。 昨日、私たちはDatabricks Vector Search Public Previewを発表しました。 しかし、これらのテキストベースのコンテキストを、関連性のあるパーソナライズされた構造化データで補強することで、Gen AIの応答品質をさらに向上させることができます。 小売業のウェブサイトで、顧客が"最近の注文はどこですか?" と問い合わせる、Gen AIツールを想像してみてください。 このAIは、クエリが特定の購買に関するものであることを理解し、LLMを使用して応答を生成する前に、注文品目の最新の出荷情報を収集しなければなりません。 このようなスケーラブルなアプリケーションを開発するには、構造化データと非構造化データの両方を扱う技術とGen AIの機能を統合する、多大な労力が必要となります。

Databricks Data Intelligence Platformから構造化データを提供する低遅延のリアルタイムサービスである、Databricks Feature & Function Servingのパブリックプレビューを発表できることを嬉しく思います。Unity Cataloから任意のPython関数を呼び出すことで、事前に計算されたMLの特徴(フィーチャー)に即座にアクセスしたり、 リアルタイムデータ変換を実行したりできます。 検索されたデータは、リアルタイムのルールエンジン、古典的なML、およびGen AIアプリケーションで使用できます。

構造化データに対してFeature and Function Serving (AWS)(Azure) を、非構造化データに対してDatabricks Vector Search (AWS)(Azure) と連携して使用することで、Gen AIアプリケーションの実用化が大幅に簡素化されます。ユーザーはこれらのアプリケーションをDatabricksで直接構築・展開し、既存のデータパイプライン、ガバナンス、その他のエンタープライズ機能を利用することができます。Databricksの様々な業界のお客様は、これらの技術をオープンソースのフレームワークと共に使用し、以下の表のような強力なGen AIアプリケーションを構築しています。

業種ユースケース
小売・消費財
  • ユーザーの嗜好、検索履歴、位置情報などを利用した製品レコメンデーション / 検索ランキング
  • 画像とメタデータに基づく製品検索
  • 販売データ、季節動向、市場 / 競合分析を用いた在庫管理と予測
教育
  • 過去の失敗、過去の傾向、コホート(同じ特徴を持つグループ)に基づいてパーソナライズされた学習プラン
  • 自動化された採点、フィードバック、フォローアップ、進捗報告
  • 貸与デバイスのコンテンツフィルタリング
金融サービス
  • アナリストや投資家向けの自然言語アプリで、決算発表やレポートを市場情報や過去のトレンドと関連付ける
  • 不正行為とリスク分析
  • パーソナライズされた資産管理、リタイヤメント・プランニング、what-if分析、次善の行動
旅行・ホスピタリティ
  • チャットボットによるパーソナライズされた顧客対応とオーダーメイドの旅行提案
  • 天候、ライブの交通パターン、過去のデータを利用した動的な経路計画
  • 競合分析と需要に基づく価格設定を用いた動的な価格最適化
医療・ライフサイエンス
  • 患者 / 会員エンゲージメントとヘルスサマリー
  • パーソナライズされたケア、臨床判断、ケア調整のためのサポートアプリ
  • 研究開発(R&D)報告の要約、臨床試験分析、ドラッグリパーパシング(薬の再利用)
保険会社
  • 物件や近隣に関するテキスト・データおよび構造化データを使用した、住宅ローン引き受けのためのリスク評価
  • ポリシー、リスク、what-if分析に関する質問のためのユーザーチャットボット
  • 請求処理の自動化
テクノロジー・製造
  • ガイド付きインストラクションを使用した機器の処方的メンテナンスと診断
  • 異常検知、過去の統計に対するライブ・データ・ストリームの異常検知
  • 日々の生産/シフト分析および将来計画のための自動分析
メディア・エンターテイメント
  • アプリ内でのコンテンツ発見とレコメンデーション、パーソナライズされたEメールとデジタルマーケティング
  • コンテンツのローカライズ
  • パーソナライズされたゲーム体験とゲームレビュー

構造化データをRAGアプリケーションに提供する

構造化データがどのようにGen AIアプリケーションの品質を高めるのに役立つかを示すために、旅行計画チャットボットの例を使用します。 この例では、ユーザーの嗜好(例:"オーシャンビュー" または"ファミリーフレンドリー" )と、ホテルに関する非構造化情報をペアにして、マッチするホテルを検索する方法を示しています。 通常、ホテルの価格は需要や季節によってダイナミックに変化します。 Gen AIアプリケーションに内蔵された価格計算機能により、ユーザーの予算内で推奨商品が提供されます。 ボットを動かすGen AIアプリケーションは、Databricks Vector SearchとDatabricks Feature and Function Servingをビルディングブロックとして使用し、LangChainのエージェントAPIを使用して、必要なパーソナライズされたユーザー嗜好、予算、ホテル情報を提供します。

トラベル・プランニング・ボット

*ユーザーの好みと予算を考慮した旅行計画ボット

このRAGチェーン・アプリケーションのNotebookです。このアプリケーションは、Notebook内でローカルに実行することも、チャットボットのユーザー・インターフェースからアクセス可能なエンドポイントとしてデプロイすることもできます。

リアルタイムのエンドポイントとしてデータや機能にアクセスする

Unity CatalogのFeature Engineeringでは、すでにプライマリキーを持つ任意のテーブルを使用して、トレーニングやサービングのために特徴(フィーチャー)を提供することができます。 Databricks Model Servingは、Python関数を使用してオンデマンドでフィーチャーを計算することをサポートしています。 Databricks Model Servingと同じ技術を使用して構築されたフィーチャーエンドポイントとファンクションエンドポイントは、事前に計算されたフィーチャーにアクセスしたり、オンデマンドで計算したりすることができます。 簡単な構文で、有向非巡回グラフを計算してRESTエンドポイントとしてフィーチャーを提供するためにエンコードできるfeature spec functionをUnity Catalogで定義できます。

from databricks.feature_engineering import (
  FeatureFunction,
  FeatureLookup,
  FeatureEngineeringClient,
)

features = [
  # Lookup columns `latitude` and `longitude` from `restarants` table in UC using the input `restaurant_id` as key
  FeatureLookup(
    table_name="main.default.restaurants",
    lookup_key="restaurant_id",
    features=["latitude”, “longitude"]
  ),
  # Calculate a new feature called `distance` using resturant and user's current location
  FeatureFunction(
    udf_name="main.default.distance",
    output_name="distance",
    # bind the function parameter with input from other features or from request.
    input_bindings={"user_latitude": "user_latitude", "user_longitude": "user_longitude",
                    "restaurant_latitude": "latitude", "restaurant_longitude": "longitude"},
  ),
]

fe = FeatureEngineeringClient()

# Create a feature spec with the features listed above.
# The FeatureSpec can be accessed in UC as a Function.
fe.create_feature_spec(
  name="main.default.restaurant_features",
  features=features,
)

このfeature spec functionは、RESTエンドポイントとしてリアルタイムで提供することができます。 すべてのエンドポイントは、機能、機能、カスタムトレーニングモデル、基礎モデルを含む、左のナビゲーションタブからアクセスできます。 このAPIを使ってエンドポイントをプロビジョニングします。

from databricks.feature_engineering.entities.feature_serving_endpoint import (
  ServedEntity,
  EndpointCoreConfig,
)

fe.create_feature_serving_endpoint(
  name="restaurant-features",
    config=EndpointCoreConfig(
    served_entities=ServedEntity(
      feature_spec_name="main.default.restaurant_features",
      workload_size="Small",
      scale_to_zero_enabled=True
    )
  )
)

エンドポイントは、以下のようにUIワークフローを使用して作成することもできます。

エンドポイント

エンドポイントに問い合わせることで、リアルタイムで機能にアクセスできるようになりました:

curl \
  -u token:$DATABRICKS_TOKEN \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"dataframe_records": [{"user_latitude": 37.9711, "user_longitude": -122.3940, "restaurant_id": 5}]}' \
  https://<databricks-instance>/serving-endpoints/restaurant-features/invocations

リアルタイムのAIアプリケーションに構造化データを提供するには、事前に計算されたデータを運用データベースに展開する必要がある。 例えば、DynamoDBCosmos DBは、Databricks Model Servingでフィーチャーを提供するために一般的に使用されています。 Databricks Online Tables (AWS(Azure) は、低レイテンシのデータ検索に最適化されたデータ形式への事前計算機能の同期を簡素化する新機能です。 主キーを持つ任意のテーブルをオンライン・テーブルとして同期させることができ、システムは自動パイプラインを設定してデータの鮮度を確保します。

Unity Catalog エクスプローラー

Databricks Online Tablesを使用することで、主キーを持つUnity Catalog テーブルをGen AIアプリケーションのフィーチャーに使用することができます。

次のステップ

上記のNotebook の例を使用して、RAG アプリケーションをカスタマイズしてください。

Databricks Generative AI Webセミナーにお申し込みください。

Feature & Function Serving (AWS)(Azure) はパブリック・プレビューで利用可能です。 APIドキュメントと追加例を参照ください。

Databricksオンラインテーブル (AWS)(Azure) はGated Public Previewとして利用可能です。 有効化のお申し込みは、こちらのフォームをご利用ください。

今週初めに行われた概要発表(質の高いRAG申請を行う)

Databricksと共有したいユースケースをお持ちですか? [email protected]までお問い合わせください。

Databricks 無料トライアル

関連記事

Platform blog

Databricksで高品質のRAGアプリケーションを作成する

RAG(Retrieval-Augmented-Generation )は、独自のリアルタイムデータを LLM(Large Language Model) アプリケーションに組み込む強力な方法として、急速に台頭してきた。 本日Databricksユーザーが企業データを使用して高品質な本番LLMアプリケーションを構築するためのRAGツール群を発表できることを嬉しく思う。 LLMは、新しいアプリケーションを迅速にプロトタイプ化する能力において、大きなブレークスルーをもたらした。 しかし、RAGアプリケーションを構築している何千もの企業と仕事をした結果、彼らの最大の課題は、これらのアプリケーションを 本番で用いることができる品質にすること であることがわかった。 顧客向けアプリケーションに要求される品質基準を満たすためには、AIの出力は正確で、最新で、そして企業のコンテキストを認識し、安全でなければならない。 高品質なRAGアプリケーションを構築するためには、開発者はデータとモデル出力の品質を理解するための豊富なツール
Engineering blog

Databricks Vector Search パブリックプレビューのご紹介

昨日 発表した RAG(Retrieval Augmented Generation )に続き、本日、Databricks Vector Searchのパブリックプレビューを発表します。6月に開催されたData + AI Summitでは、限られたお客様を対象としたプライベートプレビューを発表しましたが、今回はすべてのお客様にご利用いただけるようになりました。Databricks Vector Searchは、PDF、Officeドキュメント、Wikiなどの非構造化ドキュメントに対する類似検索を通じて、開発者がRAG(Retrieval Augmented Generation)や生成AIアプリケーションの精度を向上させることを可能にします。Vector Search は Databricks Data Intelligence Platform の一部であり、RAG およびジェネレーティブ...
Engineering blog

生成AIのために更新されたMLOPS大全

昨年、私たちは「MLOps Big Book of MLOps」を発表し、機械学習オペレーション(MLOps)の指針となる原則、設計上の考慮事項、リファレンス・アーキテクチャを概説した。 それ以来、DatabricksはMLOpsを簡素化する重要な機能を追加し、ジェネレーティブAIはMLOpsプラットフォームとプロセスに新たな要件をもたらした。 私たちは、これらの製品のアップデートとジェネレーティブAIの要件をカバーするMLOpsのビッグブックの新バージョンを発表できることを嬉しく思います。 このブログ記事では、eBookの主な更新を紹介する。ガバナンス、サービング、モニタリングに関する最新情報を提供し、それに付随する設計上の決断について議論する。 これらのアップデートは、改良されたリファレンス・アーキテクチャに反映されている。 また、LLMOps(大規模言語モデルのためのMLOps)に関する新しいセクションを設け、MLOpsの意味合い、LLMを搭載したアプリケーションの主要コンポーネント、LLM固有のリファレン
データサイエンス・ML一覧へ