AI Snowflake CortexにおけるObservability

Snowflake Cortex の AI Observability を使用して、生成的な AI アプリケーションを評価し、トレースします。AI Observabilityにより、アプリケーションの信頼性と透明性を高めることができます。系統的な評価を実行することで、 AI アプリケーションのパフォーマンスを測定するために使用します。評価から得られた情報を使用して、アプリケーションの構成を繰り返し、パフォーマンスを最適化することができます。また、デバッグのためにアプリケーションのトレースをログに記録することもできます。

AI Observabilityを使用してパフォーマンスをベンチマークすることで、アプリケーションの信頼性を高め、本番環境へのデプロイをより確実にします。

AI 観測可能性には次のような特徴があります。

  • 評価: AI Observability を使用して、 LLM-as-a-judge テクニックを使用して、生成的な AI アプリケーションとエージェントのパフォーマンスを体系的に評価します。精度、レイテンシー、使用、コストなどのメトリクスを使用して、アプリケーションの構成を迅速に反復し、パフォーマンスを最適化できます。

  • 比較: 複数の評価を並べて比較し、回答の質と正確さを評価します。LLMs、プロンプト、推論の構成を変えて回答を分析し、本番配備に最適な構成を特定することができます。

  • トレース: 入力プロンプト、取得されたコンテキスト、ツールの使用、 LLM 推論など、アプリケーション実行のすべてのステップをトレースします。個々の記録をデバッグし、精度、待ち時間、コストについてアプリを改良するために使用します。

AI 観測可能性は、検索支援生成 (RAG) や要約など、さまざまなタスクタイプの評価に使用できます。例えば、コンテキスト関連性スコアは、ユーザーのクエリに対応する検索結果の検索品質を検出するのに役立ちます。回答の関連性スコアと根拠スコアを使用して、検索されたコンテキストに基づいて、最終的な回答の真実性と関連性を検出することができます。

要約については、元の入力に基づいて LLM-生成された要約の事実上の正しさと包括性を測定し、生成的な AI アプリケーションで幻覚の頻度が高いプロンプトと LLMs を避けることができます。

まずは、 主な概念 について学び、 AI 観測可能性チュートリアル を使って簡単なウォークスルーを行ってください。その後、 AIアプリケーションの評価 の情報を使って詳細なウォークスルーができます。

特定のコンセプトを確認するには、 Snowflake AI 可観測性リファレンス をご参照ください。

アクセス制御と前提条件

AI Observability を使い始める前に:

  1. ユーザー・ロールに以下のロールが付与されていることを確認してください(詳細情報については、 必要な権限 をご参照ください)。

    • CORTEX_USER データベースロール

    • AI_OBSERVABILITY_EVENTS_LOOKUP アプリケーションロール

    • CREATE EXTERNAL AGENT スキーマの権限

  2. 以下のTrulens PythonパッケージをPythonプロジェクトにインストールしてください。

    • trulens-core

    • trulens-connectors-snowflake

    • trulens-providers-cortex

  3. Snowflakeに接続する前に、Python環境で TRULENS_OTEL_TRACING 環境変数を 1 にセットしてください。

TruLens は、Snowflakeがアプリケーションを追跡するために使用するプラットフォームです。詳細については、 TruLens ドキュメント をご参照ください。

主な概念

アプリケーション

アプリケーションは、 LLMs、ツール(検索リトリーバーや APIs)、および追加のカスタムロジックなどの複数のコンポーネントを使用して設計されたエンドツーエンドの生成的な AI アプリケーションです。たとえば、アプリケーションには、リトリーバー、リランカー、 LLMs が連鎖した RAG パイプラインを含むことができます。あらゆる環境(Snowflake、クラウド、オンプレミスなど)で実行可能なアプリケーションに対して、 AI observability を有効にできます。

外部エージェント

アプリケーションはSnowflakeでは EXTERNAL AGENT。Snowflakeの EXTERNAL AGENT オブジェクトは、アプリケーションと評価のメタデータ(アプリケーション名、バージョン名、ラン名など)を格納するために使用されます。アプリケーションコード、アプリケーション定義、実行トレース、評価結果は保存されません。アプリケーションはどの環境(Snowflake、クラウド、オンプレミスなど)でもホストできますが、実行トレースと評価結果はSnowflakeアカウントのイベントテーブルに保存されます。詳細については、 観測可能データ をご参照ください。

アプリケーションと評価のメタデータを格納することに加えて、 EXTERNAL AGENT オブジェクトは、アプリケーションのトレースと評価結果へのアクセスを制御するためにも使用されます。詳細については、 必要な権限 をご参照ください。

バージョン

アプリケーションは複数のバージョンを持つことができます。各バージョンは異なる実装を表しています。例えば、これらのバージョンは、異なるリトリーバー、プロンプト、 LLMs または推論構成を表すことができます。

データセット

データセットは入力のセットを表します.アプリケーションをテストするために、期待される出力のセット(ground truth)を表すように構成することもできます。このデータセットを使ってアプリケーションを起動し、以下のタスクを実行することができます。

  • 出力を生成します。

  • トレースをキャプチャします。

  • 評価指標を計算します。

入力と生成された出力の両方を含むデータセットを使用すると、アプリケーションを起動せずに評価指標を計算できます。データセットでサポートされているフィールドのリストについては、 データセットと属性 をご参照ください。

実行

ランは評価の仕事。指定したデータセットとアプリケーション・バージョンを使用して、評価メトリクスを計算します。

ランには起動ステージと計算ステージがあります。呼び出しステージでは、アプリケーションをトリガーして出力と対応するトレースを生成します。計算ステージは、実行に指定された評価指標を計算します。複数の計算を実行して、既存の実行に新しいメトリクスを追加できます。実行に関連するステータスのリストについては、 実行 をご参照ください。

メトリック

評価メトリクスは、独自の基準に基づいて生成 AI アプリケーションのパフォーマンスを評価するために使用するスコアです。これらの指標は、 LLMs を使用して出力を採点し、詳細な採点情報を提供します。メトリクスとその定義の包括的なリストについては、 評価メトリック をご参照ください。

トレース

トレースは、 LLM アプリケーションとのインタラクションの入力、出力、および中間ステップをキャプチャする包括的な記録です。トレースはアプリケーションの実行を詳細に表示します。トレースを使用して、各ステージにおけるモデルの動作を分析し、理解します。異なるバージョンのアプリケーションのトレースを比較して、改善点を特定し、問題をデバッグし、意図したパフォーマンスを検証することができます。各記録に関連するトレースへのアクセス情報については、 AIアプリケーションの評価 をご参照ください。

価格

AI Observabilityは、 LLM ジャッジを使用して評価指標を計算します。サーバーサイドの評価には、Cortex AI 上の LLMs が LLM のジャッジとして使用されます。LLM ジャッジは COMPLETE (SNOWFLAKE.CORTEX) 関数を介して呼び出され、評価を実行します。Cortex Complete関数の呼び出しに料金が発生します。LLM 評価の実施に使用されるものによって、料金が決まります。さらに、以下の料金も請求されます。

  • 評価指標の計算に使用されるクエリのウェアハウス料金

  • 評価結果のストレージ料金

  • Snowsightで表示する評価結果を取得するためのウェアハウス料金