Arize Phoenix - مراقبة وتقييم LLM
Arize Phoenix هي منصة مفتوحة المصدر للمراقبة والتقييم لتطبيقات LLM والوكلاء. إنها أصلية OpenTelemetry: الأداة تصدر آثار OTLP قياسية التي تجمعها Phoenix، لذا يمكنك رؤية كل حث واستدعاء نموذج واستدعاء أداة وخطوة استرجاع، ثم تشغيل التقييمات عليها. يعمل محلياً (دفتر ملاحظات أو حاوية أو خادم مستضاف ذاتياً) ويتكامل مع الأطر العامة من خلال أجهزة OpenInference.
التثبيت
| الطريقة | الأمر |
|---|
| pip | pip install arize-phoenix |
| تشغيل خادم محلي | phoenix serve (الواجهة في http://localhost:6006) |
| Docker | docker 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
| المفهوم | المعنى |
|---|
| Span | عملية واحدة (استدعاء LLM، استدعاء أداة، خطوة استرجاع) |
| Trace | شجرة من الأجنحة لطلب واحد |
| المشروع | مجموعة مسماة من الآثار |
| OpenInference | الاتفاقيات الدلالية التي يستخدمها Phoenix على OTLP |
أداة الأطر
| المكتبة | حزمة الأداة |
|---|
| OpenAI | openinference-instrumentation-openai |
| LangChain | openinference-instrumentation-langchain |
| LlamaIndex | openinference-instrumentation-llama-index |
| Anthropic | openinference-instrumentation-anthropic |
| DSPy | openinference-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) والتعليق على النتائج.
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"],
)
| التقييم | المقاييس |
|---|
| الهلوسة | هل الإجابة قائمة على السياق؟ |
| صحة الأسئلة والأجوبة | هل الإجابة صحيحة مقابل المرجع؟ |
| الصلة | هل المستندات المسترجعة ذات صلة بالاستعلام؟ |
| السمية | محتوى غير آمن/سام |
| مخصص | نموذج LLM-as-judge أو قالب رمز خاص بك |
مجموعات البيانات والتجارب
| الإمكانية | الاستخدام |
|---|
| مجموعات البيانات | اختر أمثلة المدخلات/المخرجات من الآثار |
| التجارب | تشغيل مهمة على مجموعة بيانات وتسجيلها |
px.Client().upload_dataset(...) | إنشاء مجموعة بيانات برمجياً |
| مقارنة التشغيلات | تتبع الجودة عبر تغييرات الحث/النموذج |
تصحيح الاسترجاع
| الميزة | تساعد مع |
|---|
| سمات Span للمستندات المسترجعة | انظر بالضبط ما جلبته RAG |
| عروض Embedding/UMAP | اكتشف المجموعات والانجراف في التضمينات |
| تقييم على صلة الاسترجاع | قيّم جودة الاسترجاع لكل استعلام |
Phoenix مقابل مراقبة LLM الأخرى
| الجانب | Arize Phoenix | Langfuse | MLflow |
|---|
| المعيار | OpenTelemetry/OTLP | OTel + SDK | تتبع MLflow |
| التركيز | التتبع + التقييم + تصحيح الاسترجاع | التتبع + الحثيات + التقييم | منصة ML كاملة + LLM |
| استضافة ذاتية | نعم | نعم | نعم |
| الأفضل ل | تقييم OTel-native و تصحيح RAG | تحليل المنتج + الحثيات | الفريق بالفعل على MLflow |
الموارد