セマンティック カーネルでの可観測性

可観測性の簡単な概要

AI ソリューションを構築するときに、サービスの動作を観察できるようにする必要があります。 可観測性は、分散システム内のコンポーネントの内部状態を監視および分析する機能です。 これは、エンタープライズ対応の AI ソリューションを構築するための重要な要件です。

可観測性は通常、ログ記録、メトリック、トレースによって実現されます。 これらは、多くの場合、観測の 3 つの柱と呼ばれます。 また、これら 3 つの柱によって収集されたデータを記述するために使用される "テレメトリ" という用語も読み上げられます。 デバッグとは異なり、監視機能はシステムの正常性とパフォーマンスの継続的な概要を提供します。

さらに読むための有用な資料:

セマンティック カーネルでの可観測性

セマンティック カーネルは監視可能に設計されています。 OpenTelemetry 標準と互換性のあるログ、メトリック、トレースを出力します。 お気に入りの監視ツールを使用して、セマンティック カーネル上に構築されたサービスの動作を監視および分析できます。

具体的には、セマンティック カーネルには、次の監視機能が用意されています。

  • ログ: セマンティック カーネルは、カーネル、カーネル プラグイン、関数、および AI コネクタから意味のあるイベントとエラーをログに記録します。 ログとイベント

    重要

    Application Insights のトレース は、従来のログ エントリと OpenTelemetry スパン イベントを表します。 これらは分散トレースと同じではありません。

  • メトリック: セマンティック カーネルは、カーネル関数と AI コネクタからメトリックを出力します。 カーネル関数の実行時間、AI コネクタのトークン消費量などのメトリックを監視できます。 メトリクス
  • トレース: セマンティック カーネルは分散トレースをサポートします。 さまざまなサービス間およびセマンティック カーネル内でアクティビティを追跡できます。 要求のエンドツーエンド トランザクションを完了する
テレメトリ 説明
ログ ログはカーネル全体で記録されます。 .Net でのログ記録の詳細については、この ドキュメントを参照してください。 カーネル関数の引数や結果などの機密データは、トレース レベルでログに記録されます。 ログ レベルの詳細については、この 表 を参照してください。
アクティビティ 各カーネル関数の実行と AI モデルの各呼び出しは、アクティビティとして記録されます。 すべてのアクティビティは、"Microsoft.SemanticKernel" という名前のアクティビティ ソースによって生成されます。
メトリック セマンティック カーネルは、カーネル関数から次のメトリックをキャプチャします。
  • semantic_kernel.function.invocation.duration (ヒストグラム) - 関数の実行時間 (秒単位)
  • semantic_kernel.function.streaming.duration (ヒストグラム) - 関数ストリーミング実行時間 (秒単位)
  • semantic_kernel.function.invocation.token_usage.prompt (ヒストグラム) - プロンプト トークンの使用数 ( KernelFunctionFromPromptのみ)
  • semantic_kernel.function.invocation.token_usage.completion (ヒストグラム) - 完了トークンの使用数 ( KernelFunctionFromPromptの場合のみ)
テレメトリ 説明
ログ ログはカーネル全体で記録されます。 Python でのログ記録の詳細については、こちらの ドキュメントを参照してください。 カーネル関数の引数や結果などの機密データは、デバッグ レベルでログに記録されます。
スパン 各自動関数呼び出しループ、各カーネル関数の実行、AI モデルへの各呼び出しはスパンとして記録されます。
メトリック セマンティック カーネルは、カーネル関数から次のメトリックをキャプチャします。
  • semantic_kernel.function.invocation.duration (ヒストグラム) - 関数の実行時間 (秒単位)
  • semantic_kernel.function.streaming.duration (ヒストグラム) - 関数ストリーミング実行時間 (秒単位)

注

セマンティック カーネルの可観測性は、Java ではまだ使用できません。

OpenTelemetry セマンティック規約

セマンティック カーネルは、監視の OpenTelemetry セマンティック規則 に従います。 つまり、セマンティック カーネルによって出力されるログ、メトリック、トレースは構造化され、共通のスキーマに従います。 これにより、セマンティック カーネルによって出力されるテレメトリ データをより効果的に分析できるようになります。

注

現在、 Semantic Conventions for Generative AI は試験段階にあります。 セマンティック カーネルは、可能な限り密接に OpenTelemetry セマンティック規約に従い、AI ソリューションに一貫した意味のある観測エクスペリエンスを提供するよう努めています。

次のステップ

セマンティック カーネルでの可観測性に関する基本的な理解を得たので、テレメトリ データをコンソールに出力する方法、または APM ツールを使用してテレメトリ データを視覚化および分析する方法の詳細を学習できます。