Mengevaluasi agen AI Generatif

Setelah membuat dan mengevaluasi model AI Generatif, Anda dapat menggunakan model tersebut untuk membuat agen seperti chatbot. Layanan evaluasi Gen AI memungkinkan Anda mengukur kemampuan agen untuk menyelesaikan tugas dan sasaran untuk kasus penggunaan Anda.

Ringkasan

Anda memiliki opsi berikut untuk mengevaluasi agen:

  • Evaluasi respons akhir: Mengevaluasi output akhir agen (apakah agen mencapai sasarannya atau tidak).

  • Evaluasi lintasan: Mengevaluasi jalur (urutan panggilan alat) yang diambil agen untuk mencapai respons akhir.

Dengan layanan evaluasi Gen AI, Anda dapat memicu eksekusi agen dan mendapatkan metrik untuk evaluasi lintasan dan evaluasi respons akhir dalam satu kueri Vertex AI SDK.

Agen yang didukung

Layanan evaluasi Gen AI mendukung kategori agen berikut:

Agen yang didukung Deskripsi
Agen yang dibuat dengan template Reasoning Engine Reasoning Engine (LangChain di Vertex AI) adalah platform Google Cloud tempat Anda dapat men-deploy dan mengelola agen.
Agen LangChain yang dibuat menggunakan template Reasoning Engine yang dapat disesuaikan LangChain adalah platform open source.
Fungsi agen kustom Fungsi agen kustom adalah fungsi fleksibel yang menerima perintah untuk agen dan menampilkan respons dan lintasan dalam kamus.

Menentukan metrik untuk evaluasi agen

Tentukan metrik untuk evaluasi respons akhir atau lintasan:

Evaluasi respons akhir

Evaluasi respons akhir mengikuti proses yang sama seperti evaluasi respons model. Untuk mengetahui informasi selengkapnya, lihat Menentukan metrik evaluasi.

Evaluasi lintasan

Metrik berikut membantu Anda mengevaluasi kemampuan model untuk mengikuti lintasan yang diharapkan:

Pencocokan persis

Jika lintasan yang diprediksi identik dengan lintasan referensi, dengan panggilan alat yang sama persis dalam urutan yang sama persis, metrik trajectory_exact_match akan menampilkan skor 1, jika tidak, 0.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory Penggunaan alat yang diharapkan untuk agen agar memenuhi kueri.

Skor output

Nilai Deskripsi
0 Trajektori yang diprediksi tidak cocok dengan referensi.
1 Trajektori yang diprediksi cocok dengan referensi.

Pencocokan dalam urutan

Jika lintasan yang diprediksi berisi semua panggilan alat dari lintasan referensi dalam urutan yang sama, dan mungkin juga memiliki panggilan alat tambahan, metrik trajectory_in_order_match akan menampilkan skor 1, jika tidak, 0.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Prediksi lintasan yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory Perkiraan lintasan yang diharapkan untuk agen agar memenuhi kueri.

Skor output

Nilai Deskripsi
0 Panggilan alat dalam lintasan yang diprediksi tidak cocok dengan urutan dalam lintasan referensi.
1 Trajektori yang diprediksi cocok dengan referensi.

Pencocokan urutan apa pun

Jika lintasan yang diprediksi berisi semua panggilan alat dari lintasan referensi, tetapi urutannya tidak penting dan dapat berisi panggilan alat tambahan, metrik trajectory_any_order_match akan menampilkan skor 1, jika tidak, 0.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory Penggunaan alat yang diharapkan untuk agen agar memenuhi kueri.

Skor output

Nilai Deskripsi
0 Trajektori yang diprediksi tidak berisi semua panggilan alat dalam trajektori referensi.
1 Trajektori yang diprediksi cocok dengan referensi.

Presisi

Metrik trajectory_precision mengukur jumlah panggilan alat dalam lintasan yang diprediksi yang benar-benar relevan atau benar sesuai dengan lintasan referensi.

Presisi dihitung sebagai berikut: Hitung jumlah tindakan dalam lintasan yang diprediksi yang juga muncul dalam lintasan referensi. Bagi jumlah tersebut dengan total jumlah tindakan dalam lintasan yang diprediksi.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory Penggunaan alat yang diharapkan untuk agen agar memenuhi kueri.

Skor output

Nilai Deskripsi
Float dalam rentang [0,1] Makin tinggi skornya, makin presisi lintasan yang diprediksi.

Recall

Metrik trajectory_recall mengukur jumlah panggilan alat penting dari lintasan referensi yang benar-benar diambil dalam lintasan yang diprediksi.

Recall dihitung sebagai berikut: Hitung jumlah tindakan dalam lintasan referensi yang juga muncul dalam lintasan yang diprediksi. Bagi jumlah tersebut dengan total jumlah tindakan dalam lintasan referensi.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory Penggunaan alat yang diharapkan untuk agen agar memenuhi kueri.

Skor output

Nilai Deskripsi
Float dalam rentang [0,1] Makin tinggi skornya, lintasan yang diprediksi memiliki recall yang baik.

Penggunaan satu alat

Metrik trajectory_single_tool_use memeriksa apakah alat tertentu yang ditentukan dalam spesifikasi metrik digunakan dalam lintasan yang diprediksi. Pemeriksaan ini tidak memeriksa urutan panggilan alat atau frekuensi penggunaan alat, hanya apakah alat tersebut ada atau tidak.

Parameter input metrik

Parameter input Deskripsi
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.

Skor output

Nilai Deskripsi
0 Alat tidak ada
1 Alat ini ada.

Selain itu, dua metrik performa agen berikut ditambahkan ke hasil evaluasi secara default. Anda tidak perlu menentukannya di EvalTask.

latency

Waktu yang diperlukan agen untuk memberikan respons.

Nilai Deskripsi
Float Dihitung dalam detik.

failure

Boolean untuk menjelaskan apakah pemanggilan agen menghasilkan error atau berhasil.

Skor output

Nilai Deskripsi
1 Error
0 Respons yang valid ditampilkan

Menyiapkan set data untuk evaluasi agen

Siapkan set data Anda untuk evaluasi respons atau lintasan akhir.

Skema data untuk evaluasi respons akhir mirip dengan evaluasi respons model.

Untuk evaluasi lintasan berbasis komputasi, set data Anda harus memberikan informasi berikut:

Jenis input Konten kolom input
predicted_trajectory Daftar panggilan alat yang digunakan oleh agen untuk mencapai respons akhir.
reference_trajectory (tidak diperlukan untuk trajectory_single_tool_use metric) Penggunaan alat yang diharapkan untuk agen agar memenuhi kueri.

Contoh set data evaluasi

Contoh berikut menunjukkan set data untuk evaluasi lintasan. Perhatikan bahwa reference_trajectory diperlukan untuk semua metrik kecuali trajectory_single_tool_use.

reference_trajectory = [
# example 1
[
  {
    "tool_name": "set_device_info",
    "tool_input": {
        "device_id": "device_2",
        "updates": {
            "status": "OFF"
        }
    }
  }
],
# example 2
[
    {
      "tool_name": "get_user_preferences",
      "tool_input": {
          "user_id": "user_y"
      }
  },
  {
      "tool_name": "set_temperature",
      "tool_input": {
          "location": "Living Room",
          "temperature": 23
      }
    },
  ]
]

predicted_trajectory = [
# example 1
[
  {
    "tool_name": "set_device_info",
    "tool_input": {
        "device_id": "device_3",
        "updates": {
            "status": "OFF"
        }
    }
  }
],
# example 2
[
    {
      "tool_name": "get_user_preferences",
      "tool_input": {
          "user_id": "user_z"
      }
    },
    {
      "tool_name": "set_temperature",
      "tool_input": {
          "location": "Living Room",
          "temperature": 23
      }
    },
  ]
]

eval_dataset = pd.DataFrame({
    "predicted_trajectory": predicted_trajectory,
    "reference_trajectory": reference_trajectory,
})

Mengimpor set data evaluasi

Anda dapat mengimpor set data dalam format berikut:

  • File JSONL atau CSV yang disimpan di Cloud Storage

  • Tabel BigQuery

  • Pandas DataFrame

Kode berikut menunjukkan cara mengimpor contoh set data dari bucket Cloud Storage:

# dataset name to be imported
dataset = "on-device" # customer-support, content-creation

# copy the tools and dataset file
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/tools.py .
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/eval_dataset.json .

# load the dataset examples
import json

eval_dataset = json.loads(open('eval_dataset.json').read())

# run the tools file
%run -i tools.py

Menjalankan evaluasi agen

Jalankan evaluasi untuk evaluasi respons akhir atau lintasan:

Untuk evaluasi agen, Anda dapat menggabungkan metrik evaluasi respons dan metrik evaluasi lintasan seperti dalam kode berikut:

single_tool_use_metric = TrajectorySingleToolUse(tool_name='tool_name')

eval_task = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[
        "rouge_l_sum",
        "bleu",
        custom_response_eval_metric,
        "trajectory_exact_match",
        "trajectory_precision",
        single_tool_use_metric
        pointwise_trajectory_eval_metric # llm-based metric
    ],
)
eval_result = eval_task.evaluate(
    runnable=RUNNABLE,
)

Penyesuaian metrik

Anda dapat menyesuaikan metrik berbasis model bahasa besar untuk evaluasi lintasan menggunakan antarmuka dengan template atau dari awal. Anda juga dapat menentukan metrik berbasis komputasi kustom untuk evaluasi lintasan.

Melihat dan menafsirkan hasil

Untuk evaluasi lintasan atau evaluasi respons akhir, hasil evaluasi ditampilkan sebagai berikut:

Tabel untuk metrik evaluasi agen

Hasil evaluasi berisi informasi berikut:

Metrik respons akhir

Hasil tingkat instance

Kolom Deskripsi
respons Respons akhir yang dihasilkan oleh agen.
latency_in_seconds Waktu yang diperlukan untuk membuat respons.
gagal Menunjukkan bahwa respons yang valid dihasilkan atau tidak.
skor Skor yang dihitung untuk respons yang ditentukan dalam spesifikasi metrik.
penjelasan Penjelasan untuk skor yang ditentukan dalam spesifikasi metrik.

Hasil gabungan

Kolom Deskripsi
rata-rata Skor rata-rata untuk semua instance.
simpangan baku Simpangan baku untuk semua skor.

Metrik lintasan

Hasil tingkat instance

Kolom Deskripsi
predicted_trajectory Urutan panggilan alat yang diikuti oleh agen untuk mencapai respons akhir.
reference_trajectory Urutan panggilan alat yang diharapkan.
skor Skor yang dihitung untuk lintasan prediksi dan lintasan referensi yang ditentukan dalam spesifikasi metrik.
latency_in_seconds Waktu yang diperlukan untuk membuat respons.
gagal Menunjukkan bahwa respons yang valid dihasilkan atau tidak.

Hasil gabungan

Kolom Deskripsi
rata-rata Skor rata-rata untuk semua instance.
simpangan baku Simpangan baku untuk semua skor.

Langkah selanjutnya

Coba notebook evaluasi agen berikut: