Evaluasi Agen (MLflow 2)

Penting

Databricks merekomendasikan penggunaan MLflow 3 untuk mengevaluasi dan memantau aplikasi GenAI. Halaman ini menjelaskan Evaluasi Agen MLflow 2.

Artikel ini memberikan gambaran umum tentang cara bekerja dengan Evaluasi Agen, berdasarkan MLflow 2.

Bagaimana cara menggunakan Penilaian Agen?

Kode berikut menunjukkan cara memanggil dan menguji Evaluasi Agen pada output yang dihasilkan sebelumnya. Ini mengembalikan dataframe dengan skor evaluasi yang dihitung oleh juri LLM yang merupakan bagian dari Evaluasi Agen. Lihat Contoh buku catatan untuk buku catatan mulai cepat yang berisi kode serupa yang bisa Anda jalankan di ruang kerja Azure Databricks Anda.

Anda bisa menyalin dan menempelkan yang berikut ini ke buku catatan Azure Databricks yang sudah ada:

%pip install mlflow databricks-agents
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 Mosaic AI 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'])

Input dan output Evaluasi Agen

Masukan-masukan

Untuk detail input yang diharapkan untuk Evaluasi Agen, termasuk nama bidang dan jenis data, lihat skema input . Beberapa bidang adalah sebagai berikut:

  • Kueri pengguna (request): Input ke agen (pertanyaan atau kueri pengguna). Misalnya, "Apa itu RAG?".
  • Respons agen (response): Respons yang dihasilkan oleh agen. Misalnya, "Generasi yang ditingkatkan dengan pengambilan informasi adalah...".
  • Respons yang diharapkan (expected_response): (Opsional) Respons kebenaran dasar (benar).
  • Pelacakan MLflow (trace): (Opsional) Pelacakan MLflow agen, dari mana Evaluasi Agen mengekstraksi output perantara seperti konten konteks yang diambil atau panggilan alat. Atau, Anda dapat memberikan output perantara ini secara langsung.
  • Pedoman (guidelines): (Opsional) Daftar panduan atau pedoman bernama yang diharapkan dipatuhi output model.

Output

Berdasarkan input ini, Evaluasi Agen menghasilkan dua jenis output:

  1. Hasil Evaluasi (per baris): Untuk setiap baris yang disediakan sebagai input, Evaluasi Agen menghasilkan baris output terkait yang berisi penilaian terperinci tentang kualitas, biaya, dan latensi agen Anda.
    • Hakim LLM meninjau berbagai aspek kualitas, seperti kebenaran atau kesesuaian dengan sumber, menetapkan skor ya/tidak dan memberikan alasan tertulis untuk skor tersebut. Untuk detailnya, lihat Bagaimana kualitas, biaya, dan latensi dinilai oleh Evaluasi Agen (MLflow 2).
    • Penilaian juri LLM digabungkan untuk menghasilkan skor keseluruhan yang menunjukkan apakah baris tersebut "lolos" (berkualitas tinggi) atau "gagal" (memiliki masalah kualitas).
      • Untuk setiap baris yang gagal, penyebab utamanya telah diidentifikasi. Setiap akar penyebab sesuai dengan penilaian hakim LLM tertentu, memungkinkan Anda menggunakan alasan hakim untuk mengidentifikasi potensi perbaikan.
    • Biaya dan latensi diekstrak dari jejak MLflow. Untuk detailnya, lihat Bagaimana biaya dan latensi dinilai.
  2. Metrik (skor agregat): Skor agregat yang meringkas kualitas, biaya, dan latensi agen Anda di semua baris input. Ini termasuk metrik seperti persentase jawaban yang benar, jumlah token rata-rata, latensi rata-rata, dan banyak lagi. Untuk detailnya, lihat Bagaimana biaya dan latensi dinilai dan Bagaimana metrik dikumpulkan pada tingkat MLflow yang dijalankan untuk kualitas, biaya, dan latensi.

Pengembangan (evaluasi offline) dan produksi (pemantauan online)

Evaluasi Agen dirancang agar konsisten antara lingkungan pengembangan (offline) dan produksi (online) Anda. Desain ini memungkinkan transisi yang lancar dari pengembangan ke produksi, memungkinkan Anda untuk dengan cepat mengurutkan, mengevaluasi, menyebarkan, dan memantau aplikasi agenik berkualitas tinggi.

Perbedaan utama antara pengembangan dan produksi adalah bahwa dalam produksi, Anda tidak memiliki label kebenaran dasar, sementara dalam pengembangan, Anda dapat secara opsional menggunakan label kebenaran dasar. Menggunakan label kebenaran dasar memungkinkan Evaluasi Agen untuk menghitung metrik kualitas tambahan.

Pengembangan (offline)

Dalam pengembangan, requests dan expected_responses Anda berasal dari set penilaian. Kumpulan evaluasi adalah kumpulan input perwakilan yang harus dapat ditangani agen Anda secara akurat. Untuk informasi selengkapnya tentang set evaluasi, lihat Set evaluasi (MLflow 2).

Untuk mendapatkan response dan trace, Evaluasi Agen dapat memanggil kode agen Anda untuk menghasilkan output ini untuk setiap baris dalam kumpulan evaluasi. Atau, Anda dapat menghasilkan output ini sendiri dan meneruskannya ke Evaluasi Agen. Lihat Cara memberikan input ke evaluasi yang dijalankan untuk informasi selengkapnya.

Produksi (online)

Untuk informasi tentang pemantauan dalam produksi, lihat Memantau aplikasi GenAI dalam produksi. Fitur MLflow 3 ini kompatibel dengan eksperimen MLflow 2. Untuk mengaktifkan pemantauan pada eksperimen MLflow 2, gunakan MLflow 3 SDK, instal mlflow>=3.1.

Menetapkan tolok ukur kualitas dengan kumpulan evaluasi

Untuk mengukur kualitas aplikasi AI dalam pengembangan (offline), Anda perlu menentukan set evaluasi, yaitu serangkaian pertanyaan perwakilan dan jawaban kebenaran dasar opsional. Jika aplikasi melibatkan langkah pengambilan, seperti dalam alur kerja RAG, maka Anda dapat secara opsional memberikan dokumen pendukung yang Anda harapkan responsnya didasarkan.

Evaluasi berjalan

Untuk detail tentang cara menjalankan evaluasi, lihat Menjalankan evaluasi dan melihat hasilnya (MLflow 2). Evaluasi Agen mendukung dua pilihan untuk menghasilkan output dari rantai:

  • Anda dapat menjalankan aplikasi sebagai bagian dari eksekusi evaluasi. Aplikasi menghasilkan hasil untuk setiap input dalam set evaluasi.
  • Anda dapat memberikan output dari eksekusi aplikasi sebelumnya.

Untuk detail dan penjelasan tentang kapan menggunakan setiap opsi, lihat Menyediakan input ke eksekusi evaluasi.

Mendapatkan umpan balik manusia tentang kualitas aplikasi AI generatif

Aplikasi ulasan Databricks memudahkan untuk mengumpulkan umpan balik tentang kualitas aplikasi AI dari pengulas manusia. Untuk informasi lebih lanjut, lihat Gunakan aplikasi ulasan untuk tinjauan manusia terhadap aplikasi gen AI (MLflow 2).

Ketersediaan geografis Evaluasi Agen

Evaluasi Agen adalah Layanan yang Ditunjuk yang menggunakan Geos untuk mengelola residensi data saat memproses konten pelanggan. Untuk mempelajari selengkapnya tentang ketersediaan Evaluasi Agen di area geografis yang berbeda, lihat Databricks Designated Services.

Harga

Untuk informasi harga, lihat Harga Evaluasi Agen AI Mosaik.

Informasi tentang model yang mendukung penilai LLM

  • Hakim LLM dapat menggunakan layanan pihak ketiga untuk mengevaluasi aplikasi GenAI Anda, termasuk Azure OpenAI yang dioperasikan oleh Microsoft.
  • Untuk Azure OpenAI, Databricks telah memilih keluar dari Pemantauan Penyalahgunaan sehingga tidak ada perintah atau respons yang disimpan dengan Azure OpenAI.
  • Untuk ruang kerja Uni Eropa (UE), hakim LLM menggunakan model yang dihosting di UE. Semua wilayah lain menggunakan model yang dihosting di AS.
  • Menonaktifkan fitur AI yang didukung Mitra mencegah hakim LLM memanggil model yang didukung mitra. Anda masih dapat menggunakan juri LLM dengan menyediakan model Anda sendiri.
  • Hakim LLM dimaksudkan untuk membantu pelanggan mengevaluasi agen/aplikasi GenAI mereka, dan output hakim LLM tidak boleh digunakan untuk melatih, meningkatkan, atau menyempurnakan LLM.

Contoh buku catatan

Notebook berikut mengilustrasikan cara menggunakan Evaluasi Agen.

Buku catatan panduan cepat Evaluasi Agen AI Mosaic

Dapatkan buku catatan

Buku catatan metrik kustom, panduan, dan label ahli domain untuk Evaluasi Agen

Dapatkan buku catatan