Arize Phoenix — Observabilité LLM et Evals open source
Arize Phoenix est la bibliothèque open source d'observabilité et d'évaluation d'Arize AI. Nativement OpenTelemetry, avec des primitives d'évaluation puissantes — conçue pour les data scientists et ingénieurs ML qui veulent unifier notebooks et production.
Why Phoenix
Phoenix penche vers l'expérimentation et l'éval. Un data scientist peut lancer Phoenix dans un notebook avec phoenix.launch_app(), y envoyer des traces OpenTelemetry depuis un pipeline RAG, faire tourner des évals contre des datasets et itérer dans le même environnement — sans aucun déploiement de serveur. Pour la production, la même bibliothèque se déploie comme un service long-running avec Postgres.
La bibliothèque d'évals est un point fort. Phoenix livre des évaluateurs pré-construits pour l'hallucination, la toxicité, la pertinence, la correction de QA et la précision du retrieval. Chacun est un template de Prompt testé que vous pouvez appliquer à l'échelle d'un dataset en quelques lignes de code. C'est la voie la plus rapide entre « je pense que mon RAG est mauvais » et « voici les requêtes précises sur lesquelles il échoue ».
Par rapport à Langfuse : Phoenix est plus outil de recherche que outil produit. Son UI est fonctionnelle mais moins polish ; sa gestion de Prompts est plus légère ; son focus est de vous aider à diagnostiquer et améliorer plutôt qu'à exploiter un dashboard d'ops production. Beaucoup d'équipes utilisent les deux — Phoenix dans les notebooks pendant le développement, Langfuse en production.
Quick Start — Notebook Launch + OpenAI
launch_app() est le mode notebook-friendly — Phoenix tourne in-process avec un endpoint HTTP pour l'ingestion OTEL et une UI web. Pour la production, déployez Phoenix Server (docker-compose) et faites pointer l'instrumentation dessus. OpenInference est la bibliothèque d'instrumentation OTEL d'Arize — supporte OpenAI, Anthropic, LangChain, LlamaIndex, DSPy, Haystack et LiteLLM d'entrée de jeu.
# pip install 'arize-phoenix[evals]' openinference-instrumentation-openai opentelemetry-sdk
import phoenix as px
# Launch the Phoenix UI locally (notebook or script)
session = px.launch_app()
print(session.url) # open in browser
# Instrument OpenAI via OpenInference (Arize's OTEL libraries for LLM frameworks)
from openinference.instrumentation.openai import OpenAIInstrumentor
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
provider = TracerProvider()
provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(f"{session.url}/v1/traces")))
trace.set_tracer_provider(provider)
OpenAIInstrumentor().instrument()
from openai import OpenAI
client = OpenAI()
for q in ["Why is the sky blue?", "How do planes fly?", "What is photosynthesis?"]:
client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": q}],
)
# Phoenix UI now shows traces with prompt/response/latency/cost per request.
# Now run an eval over the last 10 traces:
from phoenix.evals import HallucinationEvaluator, OpenAIModel, run_evals
trace_df = px.Client().get_spans_dataframe()
hallu_evaluator = HallucinationEvaluator(OpenAIModel(model="gpt-4o-mini"))
scores = run_evals(dataframe=trace_df, evaluators=[hallu_evaluator])
print(scores)Fonctionnalités clés
Nativement OpenTelemetry
Ingère les traces OTEL de tout framework instrumenté via OpenInference (la bibliothèque OTEL spécifique LLM d'Arize). Interopère avec Jaeger, Tempo et les collectors OTEL génériques.
Évaluateurs pré-construits
Hallucination, toxicité, pertinence, correction de QA, précision de retrieval, génération de code — évaluateurs LLM-as-judge avec Prompts testés. Application sur des datasets de traces en une ligne.
Workflows de datasets
Curation de datasets depuis les traces de production, tagging d'exemples, replay sur de nouveaux Prompts ou modèles, diff des résultats. Boucle serrée entre « bug en production » et « dataset d'évaluation corrigé ».
Diagnostics embeddings + RAG
Visualisation UMAP des embeddings, métriques spécifiques RAG (pertinence du contexte, pertinence de la réponse, groundedness). Particulièrement fort pour debugger les pipelines de retrieval.
Notebook-first
launch_app() fait tourner Phoenix dans un notebook ; la même bibliothèque tourne en serveur de production avec Postgres. Friction minimale entre recherche et production.
OSS + sœur commerciale
Phoenix OSS est sous licence Elastic License 2.0. Pour l'entreprise, Arize AX est l'offre managée payante avec accès par rôles, fonctionnalités équipes et analytique plus poussée.
Comparaison
| Primary Strength | Deployment | Eval Library | Audience | |
|---|---|---|---|---|
| Arize Phoenixcelui-ci | Eval + embedding diagnostics | Notebook + self-host | Strongest (pre-built evaluators) | Data scientists / ML engineers |
| Langfuse | Production ops + prompt mgmt | Cloud + self-host | LLM-as-judge framework | Production engineers |
| Helicone | Zero-code integration | Cloud + self-host | Basic | Full-stack teams |
| Traceloop | OTEL evangelism | Agent + backend | Via integrations | OTEL users |
Cas d'usage
01. Debug RAG
Quand la qualité du retrieval est le problème, les métriques RAG de Phoenix (pertinence du contexte, groundedness) + la visualisation UMAP des embeddings isolent si l'enjeu vient du chunking, des embeddings ou du Prompt de génération.
02. Recherche ML / Data Science
Équipes où le travail LLM vit dans les notebooks — expérimentation sur les Prompts, évals sur datasets held-out, comparaison de versions de modèle. Le design notebook-first de Phoenix colle au workflow.
03. Parité production + dev
Même instrumentation, même UI Phoenix, en dev comme en production. Réduit le classique « ça marche sur mon laptop, mystère en prod » des applis LLM.
Tarification et licence
Phoenix : Elastic License 2.0 — utilisation gratuite (y compris à des fins commerciales) ; restrictions sur la revente en tant que service hébergé. Ensemble fonctionnel complet disponible en self-host.
Arize AX : offre managée entreprise d'Arize AI. Ajoute SSO, gestion d'équipes, support entreprise, analytique plus poussée, dashboards enrichis. Tarification au volume — contactez les sales d'Arize.
Réalité des coûts : Phoenix self-hosted est gratuit pour le compute ; vous payez le Postgres qu'il nécessite plus vos propres appels LLM d'éval. Pour les équipes déjà équipées en OTEL, le coût marginal est faible.
Assets associés sur TokRepo
Arize Phoenix — Open Source AI Observability and Evaluation
Arize Phoenix is an open-source platform for monitoring, evaluating, and debugging AI applications, providing tracing, experiment tracking, and automated evaluation for LLM and ML pipelines.
Phoenix Tracing Quickstart — OpenInference Tracer Setup
Phoenix instruments OpenAI, Anthropic, LangChain, LlamaIndex, CrewAI via OpenInference. Local UI or Arize cloud. No per-call code changes.
Questions fréquentes
Phoenix ou Langfuse — lequel est mieux ?+
Des paris différents. Phoenix est plus fort sur la bibliothèque d'évals et les diagnostics d'embeddings ; Langfuse est plus fort sur l'UX d'ops production et la gestion de Prompts. Les équipes orientées research / évals préfèrent souvent Phoenix ; les équipes ingénierie production préfèrent souvent Langfuse. Beaucoup de boîtes utilisent les deux.
Phoenix est-il vraiment compatible OpenTelemetry ?+
Oui. Phoenix est un backend OTEL — il accepte OTLP en HTTP/gRPC. La bibliothèque OpenInference (par Arize) ajoute une instrumentation spécifique LLM par-dessus les conventions OTEL de base. Vous pouvez mélanger des traces Phoenix avec des traces OTEL génériques d'autres sources.
Puis-je utiliser Phoenix avec LangChain ?+
Oui. pip install openinference-instrumentation-langchain ; appelez LangChainInstrumentor().instrument() une fois au démarrage. Tous les composants LangChain (chains, Agents, retrievers) émettent des spans OTEL structurés vers Phoenix.
Faut-il déployer Phoenix Server pour une petite appli ?+
Non. En dev, px.launch_app() lance un serveur in-process dans votre notebook. Pour la production, déployez Phoenix Server avec Postgres — les configs docker-compose sont dans le repo.
L'Elastic License est-elle un problème pour un usage commercial ?+
Pour la plupart des utilisateurs commerciaux, non — vous pouvez faire tourner Phoenix en production dans votre entreprise sans problème. La restriction de licence cible la revente en SaaS concurrent d'Arize. Faites valider par votre équipe juridique si vous construisez un produit plateforme.