注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

モデルの計装とテレメトリ

モデルから特定の種類のテレメトリを発行して、本番環境の推論ワークフローを監視およびデバッグできます。

このページで説明する機能は、コア機械学習モデルに適用されます。言語モデルについては、言語モデルアダプターのリファレンスを参照してください。

モデルが発行したテレメトリを表示する方法については、オントロジーと AIP の観測可能性に関するドキュメントを参照してください。

サポートされるテレメトリの種類

モデルはカスタムログとカスタムスパンをサポートしています。メトリクスはユーザー定義ではありません。Foundry は、モデルに対するすべての推論呼び出しの合計実行時間を記録します。

モデルを呼び出すたびに、推論呼び出しの合計実行時間をカバーする1個のスパンと、1件のリクエストログが自動的に作成されます。

環境の依存関係

OpenTelemetry ライブラリは、モデルの環境に明示的に追加する必要があります。次のパッケージを追加します。

  • opentelemetry-api と opentelemetry-sdk:カスタムログとカスタムスパンの発行に必要です。
  • opentelemetry-instrumentation:モデルから送信されるネットワークリクエストを自動的に計装するために必要です。

ログ

モデルからカスタムログを発行し、後から表示できます。次の例は、Python の標準 logging モジュールを使用してモデルからログを発行する方法を示しています。

Foundry は OpenTelemetry SDK のグローバルロガープロバイダーを設定するため、Python の logging モジュールを通じて書き込まれたログは自動的に Foundry に送られます。ログ記録にサードパーティーのライブラリを使用する場合は、グローバルロガープロバイダーから取得したロガーを通じてログを発行するように設定する必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 import logging import palantir_models as pm logger = logging.getLogger(__name__) class ExampleModelAdapter(pm.ModelAdapter): ... def predict(self, df_in): logger.info("Running inference on %d rows.", len(df_in)) return self.model.predict(df_in)

スパン

モデル内でカスタムスパンを作成し、1回の推論呼び出し内で特定の処理にかかる時間を追跡することもできます。次の例は、前処理ステップを囲むカスタムスパンの作成方法を示しています。

Foundry は OpenTelemetry SDK のグローバルトレーサープロバイダーを設定し、そこからトレーサーを取得できるようにします。トレーシングにサードパーティーのライブラリを使用する場合は、グローバルトレーサープロバイダーから取得したトレーサーを通じてトレースを発行するように設定する必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import palantir_models as pm from opentelemetry import trace tracer = trace.get_tracer(__name__) class ExampleModelAdapter(pm.ModelAdapter): ... def predict(self, df_in): with tracer.start_as_current_span("preprocess"): features = self._preprocess(df_in) with tracer.start_as_current_span("inference"): return self.model.predict(features)