コンテンツにスキップ

Arize Phoenix - LLM 監視と評価 チートシート

Arize Phoenix - LLM 監視と評価 チートシート

Arize Phoenix は、LLM アプリケーションとエージェント向けのオープン ソース監視および評価プラットフォームです。これは OpenTelemetry ネイティブ です。インストルメンテーションは標準 OTLP トレースを発行し、Phoenix はそれらを収集するため、すべてのプロンプト、モデル呼び出し、ツール呼び出し、および検索ステップを確認できます。その後、それに対して評価を実行できます。ローカル (ノートブック、コンテナー、または自己ホスト型サーバー) で実行され、OpenInference インストルメンター経由で一般的なフレームワークと統合します。

インストール

メソッドコマンド
pippip install arize-phoenix
ローカル サーバーを実行phoenix serve (UI は http://localhost:6006)
Dockerdocker run -p 6006:6006 arizephoenix/phoenix:latest
ノートブック内import phoenix as px; px.launch_app()
インストルメンテーション エクストラpip install openinference-instrumentation-openai (その他)

トレーシング クイックスタート

from phoenix.otel import register

# トレーサー プロバイダーを構成し、Phoenix コレクターを指す
tracer_provider = register(
    project_name="my-llm-app",
    endpoint="http://localhost:6006/v1/traces",
)

# ライブラリを自動インストルメント (例: OpenAI)
from openinference.instrumentation.openai import OpenAIInstrumentor
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)

# ...これで LLM 呼び出しが Phoenix のトレースとして表示されます
概念意味
スパン1 つの操作 (LLM 呼び出し、ツール呼び出し、リトリーバー ステップ)
トレース1 つのリクエストに対するスパンのツリー
プロジェクトトレースの名前付きコレクション
OpenInferencePhoenix が OTLP を超えて使用するセマンティック規約

フレームワーク インストルメンテーション

ライブラリインストルメンター パッケージ
OpenAIopeninference-instrumentation-openai
LangChainopeninference-instrumentation-langchain
LlamaIndexopeninference-instrumentation-llama-index
Anthropicopeninference-instrumentation-anthropic
DSPyopeninference-instrumentation-dspy
自動 (多数)register(auto_instrument=True) で有効化

手動スパン

from opentelemetry import trace
tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("retrieve") as span:
    span.set_attribute("input.value", query)
    docs = retriever(query)
    span.set_attribute("retrieval.documents", len(docs))

評価

Phoenix は、トレースをスコアリング (特に LLM as judge evals) し、結果をアタッチできます。

from phoenix.evals import llm_classify, OpenAIModel, HALLUCINATION_PROMPT_TEMPLATE

results = llm_classify(
    dataframe=spans_df,
    model=OpenAIModel(model="gpt-4o"),
    template=HALLUCINATION_PROMPT_TEMPLATE,
    rails=["factual", "hallucinated"],
)
評価測定対象
ハルシネーション回答がコンテキストに基づいているか?
QA 正確性参照に対して回答が正しいか?
関連性取得ドキュメントがクエリに関連しているか?
毒性安全でない/有毒なコンテンツ
カスタムあなた自身の LLM as judge またはコード テンプレート

データセットおよび 実験

機能用途
データセットトレースから入力/出力例をキュレート
実験データセット上のタスクを実行し、スコア付け
px.Client().upload_dataset(...)プログラムでデータセットを作成
実行を比較プロンプト/モデル変更全体の品質を追跡

検索デバッグ

機能役立つもの
取得ドキュメント用スパン属性RAG が何をフェッチしたかを正確に確認
埋め込み/UMAP ビュー埋め込みのクラスターとドリフトを識別
検索関連性の評価クエリごとに検索品質を定量化

Phoenix と その他の LLM 監視

側面Arize PhoenixLangfuseMLflow
標準OpenTelemetry/OTLPOTel + SDKMLflow トレーシング
フォーカストレーシング + 評価 + 検索デバッグトレーシング + プロンプト + 評価完全な ML プラットフォーム + LLM
自己ホストはいはいはい
最適な用途OTel ネイティブ評価と RAG デバッグプロダクト分析 + プロンプトMLflow に既に標準化されているチーム

リソース