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:
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: