Mengembangkan alur evaluasi di Azure AI Studio
Penting
Beberapa fitur yang dijelaskan dalam artikel ini mungkin hanya tersedia dalam pratinjau. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Alur evaluasi adalah jenis alur khusus yang menilai seberapa baik output eksekusi selaras dengan kriteria dan tujuan tertentu.
Dalam alur perintah, Anda dapat menyesuaikan atau membuat alur evaluasi Anda sendiri yang disesuaikan dengan tugas dan tujuan Anda, lalu menggunakannya untuk mengevaluasi alur lain. Dalam dokumen ini Anda mempelajari:
- Cara mengembangkan metode evaluasi.
- Pahami metrik input, output, dan pengelogan untuk evaluasi alur yang diminta.
Mulai mengembangkan metode evaluasi
Ada dua cara untuk mengembangkan metode evaluasi Anda sendiri:
Menyesuaikan Alur Evaluasi Bawaan: Memodifikasi alur evaluasi bawaan.
- Di bawah Alat pilih Alur perintah.
- Pilih Buat untuk membuka wizard pembuatan alur.
- Di galeri alur di bawah Jelajahi galeri pilih Alur evaluasi untuk memfilter menurut jenis tersebut. Pilih sampel dan pilih Kloning untuk melakukan kustomisasi.
Buat Alur Evaluasi Baru dari Awal: Kembangkan metode evaluasi baru dari bawah ke atas.
- Di bawah Alat pilih Alur perintah.
- Pilih Buat untuk membuka wizard pembuatan alur.
- Di galeri alur di bawah Buat berdasarkan jenis dalam kotak "Alur evaluasi" pilih Buat lalu Anda dapat melihat templat alur evaluasi.
Memahami evaluasi dalam alur Prompt
Dalam alur Prompt, alur adalah urutan simpul yang memproses input dan menghasilkan output. Alur evaluasi juga mengambil input yang diperlukan dan menghasilkan output yang sesuai.
Beberapa fitur khusus metode evaluasi adalah:
- Mereka biasanya berjalan setelah eksekusi untuk diuji, dan menerima output dari eksekusi tersebut.
- Terlepas dari output dari eksekusi yang akan diuji, secara opsional mereka dapat menerima himpunan data lain yang mungkin berisi kebenaran dasar yang sesuai.
- Mereka mungkin memiliki simpul agregasi yang menghitung performa keseluruhan alur yang diuji berdasarkan skor individu.
- Mereka dapat mencatat metrik menggunakan
log_metric()
fungsi .
Kami memperkenalkan bagaimana input dan output harus didefinisikan dalam mengembangkan metode evaluasi.
Input
Evaluasi berjalan setelah eksekusi lain untuk menilai seberapa baik output yang berjalan selaras dengan kriteria dan tujuan tertentu. Oleh karena itu, evaluasi menerima output yang dihasilkan dari eksekusi tersebut.
Input lain mungkin juga diperlukan, seperti kebenaran dasar, yang mungkin berasal dari himpunan data. Secara default, evaluasi menggunakan himpunan data yang sama dengan himpunan data pengujian yang disediakan untuk eksekusi yang diuji. Namun, jika label yang sesuai atau nilai kebenaran dasar target berada dalam himpunan data yang berbeda, Anda dapat dengan mudah beralih ke yang itu.
Oleh karena itu, untuk menjalankan evaluasi, Anda perlu menunjukkan sumber input yang diperlukan ini. Untuk melakukannya, saat mengirimkan evaluasi, Anda akan melihat bagian "pemetaan input" .
- Jika sumber data berasal dari output eksekusi Anda, sumber ditunjukkan sebagai
${run.output.[OutputName]}
- Jika sumber data berasal dari himpunan data pengujian Anda, sumber ditunjukkan sebagai
${data.[ColumnName]}
Catatan
Jika evaluasi Anda tidak memerlukan data dari himpunan data, Anda tidak perlu mereferensikan kolom himpunan data apa pun di bagian pemetaan input, yang menunjukkan pemilihan himpunan data adalah konfigurasi opsional. Pemilihan himpunan data tidak akan memengaruhi hasil evaluasi.
Deskripsi input
Untuk mengingatkan input apa yang diperlukan untuk menghitung metrik, Anda dapat menambahkan deskripsi untuk setiap input yang diperlukan. Deskripsi ditampilkan saat memetakan sumber dalam pengiriman eksekusi batch.
Untuk menambahkan deskripsi untuk setiap input, pilih Tampilkan deskripsi di bagian input saat mengembangkan metode evaluasi Anda. Dan Anda dapat memilih "Sembunyikan deskripsi" untuk menyembunyikan deskripsi.
Kemudian deskripsi ini ditampilkan saat menggunakan metode evaluasi ini dalam pengiriman eksekusi batch.
Output dan metrik
Output evaluasi adalah hasil yang mengukur performa alur yang sedang diuji. Output biasanya berisi metrik seperti skor, dan mungkin juga menyertakan teks untuk penalaran dan saran.
Output skor tingkat instans
Dalam alur perintah, alur memproses setiap himpunan data sampel satu per satu dan menghasilkan rekaman output. Demikian pula, dalam sebagian besar kasus evaluasi, ada metrik untuk setiap output, memungkinkan Anda untuk memeriksa performa alur pada setiap data individu.
Untuk merekam skor untuk setiap sampel data, hitung skor untuk setiap output, dan catat skor sebagai output alur dengan mengaturnya di bagian output. Pengalaman penulisan ini sama dengan menentukan output aliran standar.
Kami menghitung skor ini dalam line_process
simpul, yang dapat Anda buat dan edit dari awal saat membuat berdasarkan jenis. Anda juga dapat mengganti simpul python ini dengan simpul LLM untuk menggunakan LLM untuk menghitung skor.
Ketika metode evaluasi ini digunakan untuk mengevaluasi alur lain, skor tingkat instans dapat dilihat di tab Output Gambaran Umum.>
Pencatatan metrik dan simpul agregasi
Selain itu, penting juga untuk memberikan skor keseluruhan untuk eksekusi. Anda dapat memeriksa "diatur sebagai agregasi" dari node Python dalam alur evaluasi untuk mengubahnya menjadi simpul "kurangi", yang memungkinkan simpul untuk mengambil input sebagai daftar dan memprosesnya dalam batch.
Dengan cara ini, Anda dapat menghitung dan memproses semua skor dari setiap output alur dan menghitung hasil keseluruhan untuk setiap varian.
Anda dapat mencatat metrik dalam simpul agregasi menggunakan Prompt flow_sdk.log_metrics(). Metrik harus numerik (float/int). Pengelogan metrik jenis string tidak didukung.
Kami menghitung skor ini dalam simpul aggregate
, yang dapat Anda buat dan edit dari awal saat membuat berdasarkan jenis. Anda juga dapat mengganti simpul Python ini dengan simpul LLM untuk menggunakan LLM untuk menghitung skor. Lihat contoh berikut untuk menggunakan log_metric
API dalam alur evaluasi:
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str], variant_ids: List[str]):
aggregate_grades = {}
for index in range(len(grades)):
grade = grades[index]
variant_id = variant_ids[index]
if variant_id not in aggregate_grades.keys():
aggregate_grades[variant_id] = []
aggregate_grades[variant_id].append(grade)
# calculate accuracy for each variant
for name, values in aggregate_grades.items():
accuracy = round((values.count("Correct") / len(values)), 2)
log_metric("accuracy", accuracy, variant_id=name)
return aggregate_grades
Saat Anda memanggil fungsi ini di simpul Python, Anda tidak perlu menetapkannya di tempat lain, dan Anda dapat melihat metrik nanti. Ketika metode evaluasi ini digunakan dalam eksekusi batch, skor tingkat instans dapat dilihat di tab Ringkasan-Metrik>.
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk