Arize-ai/openinference

OpenTelemetry Instrumentation for AI Observability

OpenInferenceとは?

OpenInferenceは、あらゆるAI/LLMアプリケーションにOpenTelemetryスタイルのトレーシングを追加できる標準規格およびすぐに使えるプラグインセットです。プロンプトのフロー、モデル呼び出し、ベクトルストアからの検索、ツールの使用などを記録する方法を記述した仕様(markdownファイルのコレクション)を定義しています。この仕様はフォーマットに依存しないため、データをJSON、protobuf、DataFrames、またはその他のトランスポートで出力できます。

なぜ重要なのか

  • LLMアプリケーションの可観測性 – OpenTelemetryがマイクロサービスのレイテンシやエラーを可視化するのと同様に、OpenInferenceは生成AIパイプラインの隠れたステップ(プロンプト構築、検索、ツール呼び出し、モデル応答)を可視化します。
  • ベンダーニュートラル – この仕様は、OpenTelemetry互換のあらゆるバックエンド(Jaeger、Prometheus、Grafanaなど)で動作し、Arizeの製品(Phoenix、AX)に組み込まれていますが、他の場所でも使用可能です。
  • 幅広い言語サポート – このリポジトリには、最も人気のあるLLMフレームワークやサービス(OpenAI、Anthropic、LangChain、LlamaIndex、Bedrock、VertexAIなど)向けのPythonインストゥルメンテーションパッケージが多数含まれています。

コアコンポーネント

コンポーネント 機能 使用方法
仕様 (/spec) LLM呼び出し、検索、ツール使用などのトレーシングに関するセマンティック規約を定義。 トレースデータを出力する際はmarkdown仕様に従ってください。ライブラリが自動生成することも可能です。
セマンティック規約ライブラリ (openinference-semantic-conventions) トレースペイロードに含めるべき定数名と属性定義を提供。 インストゥルメンテーションコード内で定数をインポートして準拠を確保します。
インストゥルメンテーションユーティリティ (openinference-instrumentation) 既存コードのラップを容易にするヘルパー関数、デコレータ、設定オブジェクト。 LLMクライアント呼び出しの周囲にデコレータを追加するか、ヘルパー関数を呼び出します。
フレームワーク固有プラグイン (例: openinference-instrumentation-openai, ‑langchain, ‑llama-index, ‑anthropic, …) 人気のSDKを自動インストゥルメントし、手動のボイラープレートなしでリクエスト/レスポンスをトレース。 使用するSDKに対応するパッケージをインストールします。インポート時にSDKを自動的にパッチします。

はじめに (Pythonの例)

# コア規約と使用するSDK用のプラグインをインストール
pip install openinference-semantic-conventions openinference-instrumentation-openai
from openinference.instrumentation.openai import OpenAIInstrumentor
from openai import OpenAI

# 自動トレーシングを有効化
OpenAIInstrumentor().instrument()

client = OpenAI()
# この呼び出しは、OpenInference仕様に従ったOpenTelemetryスパンを生成します
response = client.chat.completions.create(model="gpt-4", messages=[{"role": "user", "content": "Hello"}])

生成されたスパンは、任意のOpenTelemetryコレクター(Jaeger、Zipkinなど)に送信してダッシュボードで可視化でき、レイテンシ、エラー率、トークン使用量、LLMワークフローの全体像を把握できます。

誰が使うべきか?

  • MLエンジニアおよびデータサイエンティスト:本番環境のLLMサービスを構築し、監視とデバッグが必要な方。
  • DevOps / SREチーム:すでにOpenTelemetryを運用しており、AIワークロードにも可観測性を拡張したい方。
  • プロダクトチーム:使用状況の監査、異常検知、または異なるモデルプロバイダー間のパフォーマンス測定を行いたい方。

TL;DR – OpenInferenceは、コミュニティ主導の仕様と豊富なPythonプラグインエコシステムであり、生成AIアプリケーションにOpenTelemetryスタイルのトレーシングをもたらし、LLMパイプラインの可観測性、デバッグ可能性、および監視バックエンド間の移植性を実現します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト