Aracı Değerlendirmesi (MLflow 2)

Important

Databricks, GenAI uygulamalarını değerlendirmek ve izlemek için MLflow 3 kullanılmasını önerir. Bu sayfada MLflow 2 Aracı Değerlendirmesi açıklanmaktadır.

Bu makalede, MLflow 2'yi temel alarak Aracı Değerlendirmesi ile çalışma hakkında genel bir bakış verilmektedir.

"Temsilci Değerlendirmesini Nasıl Kullanırım?"

Aşağıdaki kod, daha önce oluşturulan çıkışlarda Aracı Değerlendirmesini çağırmayı ve test etme işlemini gösterir. Aracı Değerlendirmesi'nin bir parçası olan LLM yargıçlarının hesapladığı değerlendirme puanlarını içeren bir veri çerçevesi (dataframe) döndürür. Azure Databricks çalışma alanınızda çalıştırabileceğiniz benzer kodları içeren hızlı başlangıç not defteri için bkz. Örnek not defterleri.

Aşağıdakileri kopyalayıp mevcut Azure Databricks not defterinize yapıştırabilirsiniz:

%pip install mlflow==2.21.0 databricks-agents==0.16.0
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples =  {
    "request": [
      {
      # Recommended `messages` format
        "messages": [{
          "role": "user",
          "content": "Spark is a data analytics framework."
        }],
      },
      # SplitChatMessagesRequest format
      {
        "query": "How do I convert a Spark DataFrame to Pandas?",
        "history": [
          {"role": "user", "content": "What is Spark?"},
          {"role": "assistant", "content": "Spark is a data processing engine."},
        ],
      }
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
    ],
    "response": [
        "Spark is a data analytics framework.",
        "This is not possible as Spark is not a panda.",
    ],
    "retrieved_context": [ # Optional, needed for judging groundedness.
        [{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
        [{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
    ],
    "expected_response": [ # Optional, needed for judging correctness.
        "Spark is a data analytics framework.",
        "To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
    ]
}
global_guidelines = {
  "english": ["The response must be in English"],
  "clarity": ["The response must be clear, coherent, and concise"],
}

result = mlflow.evaluate(
    data=pd.DataFrame(examples),    # Your evaluation set
    # model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
    model_type="databricks-agent",  # Enable Agent Evaluation
    evaluator_config={
       "databricks-agent": {"global_guidelines": global_guidelines}
    }
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

Ajan Değerlendirme Girişleri ve Çıkışları

Inputs

Alan adları ve veri türleri de dahil olmak üzere Aracı Değerlendirmesi için beklenen girişin ayrıntıları için bkz. giriş şeması. Alanlardan bazıları şunlardır:

  • Kullanıcının sorgusu (request): Aracıya giriş (kullanıcının sorusu veya sorgusu). Örneğin, "RAG nedir?".
  • Ajanın yanıtı (response): Ajan tarafından oluşturulan yanıt. Örneğin, "Bilgi çekme destekli üretim ...".
  • Beklenen yanıt (expected_response): (İsteğe bağlı) Bir temel gerçek (doğru) yanıtı.
  • MLflow izlemesi (trace): (İsteğe bağlı) Aracı Değerlendirmesinin alınan bağlam veya araç çağrıları gibi ara çıkışları ayıkladığı MLflow izlemesi. Alternatif olarak, bu ara çıkışları doğrudan sağlayabilirsiniz.
  • Yönergeler (guidelines): (İsteğe bağlı) Modelin çıkışının uyması beklenen yönergelerin veya adlandırılmış yönergelerin listesi.

Çıkışlar

Bu girişlere bağlı olarak, Aracı Değerlendirmesi iki tür çıkış üretir:

  1. Değerlendirme Sonuçları (satır başına): Giriş olarak sağlanan her satır için Aracı Değerlendirmesi, aracınızın kalitesi, maliyeti ve gecikme süresine ilişkin ayrıntılı bir değerlendirme içeren karşılık gelen bir çıkış satırı oluşturur.
    • LLM yargıçları, kalitenin doğruluk veya temellendirme gibi farklı yönlerini kontrol eder, evet/hayır puanı verir ve bu puan için yazılı bir gerekçe sunar. Ayrıntılar için bkz. Kalite, maliyet ve gecikme süresi Aracı Değerlendirmesi (MLflow 2) tarafından nasıl değerlendirilir?
    • LLM yargıçlarının değerlendirmeleri, bu satırın "başarılı" (yüksek kaliteli) veya "başarısız" (kalite sorunu var) olup olmadığını belirten genel bir puan oluşturmak için birleştirilir.
      • Başarısız olan satırlar için temel bir neden belirlenir. Her kök neden, belirli bir LLM yargıcının değerlendirmesine karşılık gelir ve olası düzeltmeleri belirlemek için yargıcın rasyonalitesini kullanmanıza olanak sağlar.
    • Maliyet ve gecikme süresi MLflow izlemesinden ayıklanır. Ayrıntılar için bkz . Maliyet ve gecikme süresi nasıl değerlendirilir?
  2. Ölçümler (toplam puanlar): Tüm giriş satırlarında aracınızın kalitesini, maliyetini ve gecikme süresini özetleyen toplu puanlar. Bunlar doğru yanıtların yüzdesi, ortalama belirteç sayısı, ortalama gecikme süresi ve daha fazlası gibi ölçümleri içerir. Ayrıntılar için bkz . Maliyet ve gecikme süresi nasıl değerlendirilir ve Ölçümler kalite, maliyet ve gecikme süresi için MLflow çalıştırması düzeyinde nasıl toplanır?

Geliştirme (çevrimdışı değerlendirme) ve üretim (çevrimiçi izleme)

Aracı Değerlendirmesi, geliştirme (çevrimdışı) ve üretim (çevrimiçi) ortamlarınız arasında tutarlı olacak şekilde tasarlanmıştır. Bu tasarım, yüksek kaliteli aracı uygulamaları hızla yinelemenize, değerlendirmenize, dağıtmanıza ve izlemenize olanak tanıyarak geliştirmeden üretime sorunsuz bir geçiş sağlar.

Geliştirme ve üretim arasındaki temel fark, üretimde gerçek etiketlerin mevcut olmaması, geliştirme aşamasında ise isteğe bağlı olarak gerçek etiketleri kullanabilmenizdir. Temel gerçeklik etiketlerini kullanmak, Aracı Değerlendirmesi'nin ek kalite ölçümlerini hesaplamasına olanak tanır.

Geliştirme (çevrimdışı)

Geliştirme aşamasında, requests ve expected_responses, değerlendirme kümesi'ten gelir. Değerlendirme kümesi, aracınızın doğru şekilde işleyebilmesi gereken temsili girişlerin bir koleksiyonudur. Değerlendirme kümeleri hakkında daha fazla bilgi için bkz . Değerlendirme kümeleri (MLflow 2).

response ve trace almak için, Aracı Değerlendirmesi, değerlendirme kümesindeki her satır için bu çıkışları oluşturmak üzere aracınızın kodunu çağırabilir. Alternatif olarak, bu çıktıları kendiniz oluşturabilir ve Aracı Değerlendirmesi'ne iletebilirsiniz. Daha fazla bilgi için Değerlendirme çalıştırmasına nasıl giriş yapılacağı konusuna bakın.

Üretim (çevrimiçi)

Üretimde izleme hakkında bilgi için bkz. Üretimde GenAI uygulamalarını izleme. Bu MLflow 3 özelliği MLflow 2 denemeleriyle uyumludur. MLflow 2 denemesinde izlemeyi etkinleştirmek için MLflow 3 SDK'sını kullanarak yükleyin mlflow>=3.1.

Değerlendirme kümesiyle kalite karşılaştırması oluşturma

Geliştirme aşamasında (çevrimdışı) bir yapay zeka uygulamasının kalitesini ölçmek için bir değerlendirme kümesi, yani bir dizi temsili soru ve isteğe bağlı temel-gerçek yanıtları tanımlamanız gerekir. Uygulama, RAG iş akışlarında olduğu gibi bir alma adımı içeriyorsa, isteğe bağlı olarak yanıtın temel alınmasını beklediğiniz destekleyici belgeler sağlayabilirsiniz.

Değerlendirme oturumları

Değerlendirme çalıştırma hakkında ayrıntılı bilgi için bkz. Değerlendirme çalıştırma ve sonuçları görüntüleme (MLflow 2). Aracı Değerlendirmesi, zincirin çıktısını sağlamak için iki seçeneği destekler.

  • Uygulamayı değerlendirme çalıştırmasının bir parçası olarak çalıştırabilirsiniz. Uygulama, değerlendirme kümesindeki her giriş için sonuçlar oluşturur.
  • Uygulamanın önceki bir çalıştırmasından sonuç alabilirsiniz.

Her seçeneğin ne zaman kullanılacağına ilişkin ayrıntılar ve açıklamalar için bkz. değerlendirme çalıştırmasına giriş sağlama.

Üretken bir yapay zeka uygulamasının kalitesi hakkında insan geri bildirimi alma

Databricks inceleme uygulaması, insan gözden geçirenlerden yapay zeka uygulamasının kalitesi hakkında geri bildirim toplamayı kolaylaştırır. Detaylar için Gen AI uygulamasının (MLflow 2) insan incelemeleri için inceleme uygulamasını nasıl kullanacağınıza bakın.

Ajan Değerlendirmesinin Coğrafi Kullanılabilirliği

Aracı Değerlendirmesi, müşteri içeriğini işlerken veri yerleşimi yönetmek için Geos kullanan bir Atanmış Hizmettir . Farklı coğrafi bölgelerde Aracı Değerlendirmesi'nin kullanılabilirliği hakkında daha fazla bilgi edinmek için Databricks Belirli Hizmetler'e bakın.

Pricing

Fiyatlandırma bilgileri için bkz. Aracı Değerlendirme fiyatlandırması.

LLM yargıçlarını güçlendiren modeller hakkında bilgi

  • LLM hakimleri, Microsoft tarafından sağlanan Azure OpenAI dahil olmak üzere GenAI uygulamalarınızı değerlendirmek için üçüncü taraf hizmetleri kullanabilir.
  • Azure OpenAI için Databricks, Kötüye Kullanım İzleme özelliğini kullanmamayı seçmiş ve bu nedenle Azure OpenAI ile hiçbir istem veya yanıt depolanmamaktadır.
  • Coğrafi bölgeler arası işleme devre dışı bırakıldığında LLM, çalışma alanının Databricks Geo içindeki içeriği değerlendirir. Uygun coğrafi bölge modeli yoksa, yargıç coğrafi kısıtlama hatası döndürür. Coğrafi bölgeler arası işleme etkinleştirildiğinde LLM yargıçları diğer Coğrafi Bölgelerdeki içeriği işleyebilir.
  • İş ortağı destekli yapay zeka özelliklerinin devre dışı bırakılması, LLM yargıcının iş ortağı tarafından desteklenen modelleri çağırmasını önler. Kendi modelinizi sağlayarak LLM yargıçlarını kullanmaya devam edebilirsiniz.
  • LLM judge'ları, müşterilerin GenAI aracılarını/uygulamalarını değerlendirmesine yardımcı olmaya yöneliktir ve LLM judge çıktıları LLM'yi eğitmek, iyileştirmek veya ince ayar yapmak için kullanılmamalıdır.

Örnek not defterleri

Aşağıdaki belgeler, Araç Değerlendirmenin nasıl kullanılacağını göstermektedir.

Ajan Değerlendirmesi hızlı başlangıç defteri

Dizüstü bilgisayar al

Aracı Değerlendirmesi özel ölçümleri, yönergeleri ve alan uzmanı etiketleri defteri

Dizüstü bilgisayar al