콘텐츠로 이동

Arize Phoenix - LLM 관찰성 및 평가 치트시트

Arize Phoenix - LLM 관찰성 및 평가 치트시트

Arize Phoenix는 LLM 애플리케이션 및 에이전트를 위한 오픈소스 관찰성 및 평가 플랫폼입니다. OpenTelemetry 기반입니다: 계측이 표준 OTLP 추적을 내보내고 Phoenix가 수집하므로 모든 프롬프트, 모델 호출, 도구 호출, 검색 단계를 볼 수 있습니다. 그 후 평가를 실행할 수 있습니다. 로컬로 실행하며 (노트북, 컨테이너, 또는 자체 호스팅 서버), OpenInference 계측기를 통해 공통 프레임워크와 통합됩니다.

설치

방법명령어
pippip install arize-phoenix
로컬 서버 실행phoenix serve (UI at http://localhost:6006)
Dockerdocker run -p 6006:6006 arizephoenix/phoenix:latest
노트북에서import phoenix as px; px.launch_app()
계측 extraspip 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에서 추적으로 표시됩니다
개념의미
Span하나의 작업 (LLM 호출, 도구 호출, 검색 단계)
Trace하나의 요청에 대한 span의 트리
Project추적의 명명된 컬렉션
OpenInferencePhoenix가 OTLP 위에서 사용하는 의미론적 규칙

프레임워크 계측

라이브러리계측기 패키지
OpenAIopeninference-instrumentation-openai
LangChainopeninference-instrumentation-langchain
LlamaIndexopeninference-instrumentation-llama-index
Anthropicopeninference-instrumentation-anthropic
DSPyopeninference-instrumentation-dspy
자동 (많음)register(auto_instrument=True)를 통해 활성화

수동 Spans

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 평가)을 채점하고 결과를 첨부할 수 있습니다.

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"],
)
평가측정 대상
Hallucination답변이 컨텍스트에 근거하는가?
QA correctness답변이 참조 대비 올바른가?
Relevance검색된 문서가 쿼리와 관련이 있는가?
Toxicity안전하지 않은/유독한 콘텐츠
Custom당신의 LLM-as-judge 또는 코드 템플릿

데이터세트 및 실험

기능사용
Datasets추적에서 예제 입력/출력 선별
Experiments데이터세트에서 작업을 실행하고 채점
px.Client().upload_dataset(...)프로그래밍 방식으로 데이터세트 생성
Compare runs프롬프트/모델 변경 간 품질 추적

검색 디버깅

기능도움말
검색된 문서의 Span 속성RAG가 정확히 무엇을 가져갔는지 확인
Embedding/UMAP 뷰임베딩 클러스터 및 드리프트 발견
검색 관련성 평가쿼리별 검색 품질 정량화

Phoenix vs 기타 LLM 관찰성

측면Arize PhoenixLangfuseMLflow
표준OpenTelemetry/OTLPOTel + SDKMLflow tracing
포커스추적 + 평가 + 검색 디버그추적 + 프롬프트 + 평가전체 ML 플랫폼 + LLM
자체 호스팅
최고 용도OTel 기반 평가 & RAG 디버깅제품 분석 + 프롬프트MLflow 이미 사용 중인 팀

리소스