Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Alur evaluasi adalah jenis alur permintaan khusus yang menghitung metrik untuk menilai seberapa baik output eksekusi memenuhi kriteria dan tujuan tertentu. Anda dapat membuat atau menyesuaikan alur evaluasi dan metrik yang disesuaikan dengan tugas dan tujuan Anda, dan menggunakannya untuk mengevaluasi alur prompt lainnya. Artikel ini menjelaskan alur evaluasi, cara mengembangkan dan menyesuaikannya, dan cara menggunakannya dalam eksekusi batch alur yang diminta untuk mengevaluasi performa alur.
Memahami alur evaluasi
Alur prompt adalah urutan simpul yang memproses input dan menghasilkan output. Alur evaluasi juga mengonsumsi input yang diperlukan dan menghasilkan output terkait yang biasanya merupakan skor atau metrik. Alur evaluasi berbeda dari alur standar dalam pengalaman penulisan dan penggunaannya.
Alur evaluasi biasanya berjalan setelah menjalankan pengujian dengan menerima outputnya dan menggunakan output untuk menghitung skor dan metrik. Evaluasi mengalirkan metrik log dengan menggunakan fungsi SDK log_metric()
alur perintah.
Output alur evaluasi adalah hasil yang mengukur performa alur yang sedang diuji. Alur evaluasi dapat memiliki simpul agregasi yang menghitung performa keseluruhan alur yang sedang diuji melalui himpunan data pengujian.
Bagian berikutnya menjelaskan cara menentukan input dan output dalam alur evaluasi.
Input
Alur evaluasi menghitung metrik atau skor untuk eksekusi batch dengan mengambil output dari eksekusi yang sedang mereka uji. Misalnya, jika alur yang sedang diuji adalah alur QnA yang menghasilkan jawaban berdasarkan pertanyaan, Anda mungkin memberi nama input evaluasi sebagai answer
. Jika alur yang sedang diuji adalah alur klasifikasi yang mengklasifikasikan teks ke dalam kategori, Anda mungkin memberi nama input evaluasi sebagai category
.
Anda mungkin memerlukan input lain sebagai kebenaran dasar. Misalnya, jika Anda ingin menghitung akurasi alur klasifikasi, Anda perlu memberikan category
kolom himpunan data sebagai kebenaran dasar. Jika Anda ingin menghitung akurasi aliran QnA, Anda perlu memberikan answer
kolom himpunan data sebagai kebenaran dasar. Anda mungkin memerlukan beberapa input lain untuk menghitung metrik, seperti question
dan context
dalam skenario QnA atau pengambilan augmented generation (RAG).
Anda menentukan input alur evaluasi dengan cara yang sama seperti Anda menentukan input alur standar. Secara default, evaluasi menggunakan himpunan data yang sama dengan eksekusi yang sedang diuji. Namun, jika label yang sesuai atau nilai kebenaran dasar target berada dalam himpunan data yang berbeda, Anda dapat dengan mudah beralih ke himpunan data tersebut.
Deskripsi input
Untuk menjelaskan input yang diperlukan untuk menghitung metrik, Anda dapat menambahkan deskripsi. Deskripsi muncul saat Anda memetakan sumber input dalam pengiriman eksekusi batch.
Untuk menambahkan deskripsi untuk setiap input, pilih Tampilkan deskripsi di bagian input saat mengembangkan metode evaluasi Anda, lalu masukkan deskripsi.
Untuk menyembunyikan deskripsi dari formulir input, pilih Sembunyikan deskripsi.
Output dan metrik
Output evaluasi adalah hasil yang menunjukkan performa alur yang sedang diuji. Output biasanya berisi metrik seperti skor, dan juga dapat menyertakan teks untuk penalaran dan saran.
Skor output
Alur perintah memproses satu baris data sekaligus dan menghasilkan rekaman output. Alur evaluasi juga dapat menghitung skor untuk setiap baris data, sehingga Anda dapat memeriksa performa alur pada setiap titik data individual.
Anda dapat merekam skor untuk setiap instans data sebagai output alur evaluasi dengan menentukannya di bagian output alur evaluasi. Pengalaman penulisan sama dengan menentukan output aliran standar.
Anda dapat melihat skor individual di tab Output saat Anda memilih Tampilkan output, sama seperti Anda memeriksa output dari eksekusi batch alur standar. Anda dapat menambahkan skor tingkat instans ini ke output alur yang Anda uji.
Pengelogan agregasi dan metrik
Alur evaluasi juga memberikan penilaian keseluruhan untuk eksekusi. Untuk membedakan hasil keseluruhan dari skor output individual, nilai performa eksekusi keseluruhan ini disebut metrik.
Untuk menghitung nilai penilaian keseluruhan berdasarkan skor individual, pilih kotak centang Agregasi pada simpul Python dalam alur evaluasi untuk mengubahnya menjadi simpul pengurangan . Simpul kemudian mengambil input sebagai daftar dan memprosesnya sebagai batch.
Dengan menggunakan agregasi, Anda dapat menghitung dan memproses semua skor setiap output alur dan menghitung hasil keseluruhan dengan menggunakan setiap skor. Misalnya, untuk menghitung akurasi alur klasifikasi, Anda dapat menghitung akurasi setiap output skor lalu menghitung akurasi rata-rata semua output skor. Kemudian, Anda dapat mencatat akurasi rata-rata sebagai metrik dengan menggunakan promptflow_sdk.log_metric()
. Metrik harus numerik, seperti float
atau int
. Pengelogan metrik jenis string tidak didukung.
Cuplikan kode berikut adalah contoh menghitung akurasi keseluruhan dengan rata-rata skor grades
akurasi semua titik data. Akurasi keseluruhan dicatat sebagai metrik dengan menggunakan promptflow_sdk.log_metric()
.
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str]): # Receive a list of grades from a previous node
# calculate accuracy
accuracy = round((grades.count("Correct") / len(grades)), 2)
log_metric("accuracy", accuracy)
return accuracy
Karena Anda memanggil fungsi ini di simpul Python, Anda tidak perlu menetapkannya di tempat lain, dan Anda dapat melihat metrik nanti. Setelah Anda menggunakan metode evaluasi ini dalam eksekusi batch, Anda dapat melihat metrik yang menunjukkan performa keseluruhan dengan memilih tab Metrik saat Anda melihat output.
Mengembangkan alur evaluasi
Untuk mengembangkan alur evaluasi Anda sendiri, pilih Buat di halaman alur Prompt studio Azure Pembelajaran Mesin. Pada halaman Buat alur baru, Anda bisa:
Pilih Buat pada kartu alur Evaluasi di bawah Buat menurut jenis. Pilihan ini menyediakan templat untuk mengembangkan metode evaluasi baru.
Pilih Alur evaluasi di galeri Jelajahi, dan pilih dari salah satu alur bawaan yang tersedia. Pilih Tampilkan detail untuk mendapatkan ringkasan setiap alur, dan pilih Kloning untuk membuka dan menyesuaikan alur. Wizard pembuatan alur membantu Anda mengubah alur untuk skenario Anda sendiri.
Menghitung skor untuk setiap poin data
Alur evaluasi menghitung skor dan metrik untuk alur yang berjalan pada himpunan data. Langkah pertama dalam alur evaluasi adalah menghitung skor untuk setiap output data individual.
Misalnya, dalam alur Evaluasi Akurasi Klasifikasi bawaan, grade
yang mengukur akurasi setiap output yang dihasilkan alur ke kebenaran dasar yang sesuai dihitung dalam node Python kelas .
Jika Anda menggunakan templat alur evaluasi, Anda menghitung skor ini dalam simpul Python line_process . Anda juga dapat mengganti simpul python line_process dengan simpul model bahasa besar (LLM) untuk menggunakan LLM untuk menghitung skor, atau menggunakan beberapa simpul untuk melakukan penghitungan.
Anda menentukan output simpul ini sebagai output alur evaluasi, yang menunjukkan bahwa output adalah skor yang dihitung untuk setiap sampel data. Anda juga dapat mengeluarkan penalaran untuk informasi lebih lanjut, dan ini adalah pengalaman yang sama dengan menentukan output dalam alur standar.
Menghitung dan mencatat metrik
Langkah selanjutnya dalam evaluasi adalah menghitung metrik keseluruhan untuk menilai eksekusi. Anda menghitung metrik dalam simpul Python yang memiliki opsi Agregasi dipilih. Simpul ini mengambil skor dari simpul perhitungan sebelumnya dan mengaturnya ke dalam daftar, lalu menghitung nilai keseluruhan.
Jika Anda menggunakan templat evaluasi, skor ini dihitung dalam simpul agregat . Cuplikan kode berikut menunjukkan templat untuk simpul agregasi.
from typing import List
from promptflow import tool
@tool
def aggregate(processed_results: List[str]):
"""
This tool aggregates the processed result of all lines and log metric.
:param processed_results: List of the output of line_process node.
"""
# Add your aggregation logic here
aggregated_results = {}
# Log metric
# from promptflow import log_metric
# log_metric(key="<my-metric-name>", value=aggregated_results["<my-metric-name>"])
return aggregated_results
Anda dapat menggunakan logika agregasi Anda sendiri, seperti menghitung rata-rata skor, median, atau simpang siur standar.
Catat metrik dengan menggunakan promptflow.log_metric()
fungsi . Anda dapat mencatat beberapa metrik dalam satu alur evaluasi. Metrik harus numerik (float
/int
).
Menggunakan alur evaluasi
Setelah membuat alur evaluasi dan metrik Anda sendiri, Anda dapat menggunakan alur untuk menilai performa alur standar. Misalnya, Anda dapat mengevaluasi alur QnA untuk menguji performanya pada himpunan data besar.
Di studio Azure Pembelajaran Mesin, buka alur yang ingin Anda evaluasi, dan pilih Evaluasi di bilah menu atas.
Dalam wizard Jalankan & Evaluasi Batch, selesaikan pengaturan Dasar dan Pengaturan eksekusi Batch untuk memuat himpunan data untuk pengujian dan konfigurasikan pemetaan input. Untuk informasi selengkapnya, lihat Mengirimkan eksekusi batch dan mengevaluasi alur.
Dalam langkah Pilih evaluasi, Anda dapat memilih satu atau beberapa evaluasi yang disesuaikan atau evaluasi bawaan untuk dijalankan. Evaluasi yang dikustomisasi mencantumkan semua alur evaluasi yang Anda buat, kloning, atau disesuaikan. Alur evaluasi yang dibuat oleh orang lain yang mengerjakan proyek yang sama tidak muncul di bagian ini.
Pada layar Konfigurasi evaluasi, tentukan sumber data input apa pun yang diperlukan untuk metode evaluasi. Misalnya, kolom kebenaran dasar mungkin berasal dari himpunan data. Jika metode evaluasi Anda tidak memerlukan data dari himpunan data, Anda tidak perlu memilih himpunan data, atau mereferensikan kolom himpunan data apa pun di bagian pemetaan input.
Di bagian Pemetaan input evaluasi, Anda dapat menunjukkan sumber input yang diperlukan untuk evaluasi. Jika sumber data berasal dari output eksekusi Anda, atur sumbernya sebagai
${run.outputs.[OutputName]}
. Jika data berasal dari himpunan data pengujian Anda, atur sumbernya sebagai${data.[ColumnName]}
. Deskripsi apa pun yang Anda tetapkan untuk input data juga muncul di sini. Untuk informasi selengkapnya, lihat Mengirimkan eksekusi batch dan mengevaluasi alur.Penting
Jika alur evaluasi Anda memiliki simpul LLM atau memerlukan koneksi untuk menggunakan kredensial atau kunci lain, Anda harus memasukkan data koneksi di bagian Koneksi di layar ini untuk dapat menggunakan alur evaluasi.
Pilih Tinjau + kirim lalu pilih Kirim untuk menjalankan alur evaluasi.
Setelah alur evaluasi selesai, Anda dapat melihat skor tingkat instans dengan memilih Tampilkan eksekusi>batch Lihat output eksekusi batch terbaru di bagian atas alur yang Anda evaluasi. Pilih eksekusi evaluasi Anda dari daftar dropdown Tambahkan hasil terkait untuk melihat nilai untuk setiap baris data.