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.
Hanya berlaku untuk:Portal Foundry (klasik). Artikel ini tidak tersedia untuk portal Foundry baru.
Pelajari selengkapnya tentang portal baru.
Catatan
Tautan dalam artikel ini mungkin membuka konten dalam dokumentasi Microsoft Foundry baru alih-alih dokumentasi Foundry (klasik) yang Anda lihat sekarang.
Peringatan
Alur prompt di Microsoft Foundry dan Azure Machine Learning akan dihentikan pada 20 April 2027. Prompt flow tidak lagi disarankan untuk pengembangan baru. Migrasikan aplikasi dan penyebaran alur Prompt yang ada ke Microsoft Agent Framework sebelum 20 April 2027.
Image kontainer Prompt flow tidak lagi menerima pembaruan, termasuk pembaruan keamanan dan paket. Ini berlaku untuk gambar runtime alur Prompt, termasuk promptflow-runtime, , promptflow-runtime-stabledan promptflow-python.
Setelah 20 April 2027, alur Prompt, termasuk pengalaman penulisan web di Microsoft Foundry dan Azure Machine Learning, ekstensi Visual Studio Code, dan gambar kontainer alur Prompt terkait, tidak akan lagi didukung atau tersedia.
Jika aplikasi Anda bergantung pada penyebaran alur perintah atau gambar runtime, rencanakan untuk memindahkan beban kerja tersebut ke alternatif yang didukung seperti Microsoft Agent Framework sebelum tanggal pensiun. Untuk panduan migrasi, lihat Panduan migrasi alur perintah dan sampel kode migrasi.
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.
Prasyarat
Penting
Artikel ini menyediakan dukungan warisan untuk proyek berbasis hub. Ini tidak akan berfungsi untuk proyek Foundry. Lihat Bagaimana cara mengetahui jenis proyek mana yang saya miliki?
catatan kompatibilitas SDK: Contoh kode memerlukan versi SDK Foundry Microsoft tertentu. Jika Anda mengalami masalah kompatibilitas, pertimbangkan untuk bermigrasi dari proyek berbasis hub ke Foundry.
- Akun Azure dengan langganan aktif. Jika Anda tidak memilikinya, buat akun Azure free, yang menyertakan langganan uji coba gratis.
- Jika Anda tidak memilikinya, buat proyek berbasis hub.
Mulai mengembangkan metode evaluasi
Ada dua cara untuk mengembangkan metode evaluasi Anda sendiri:
Kustomisasi Alur Evaluasi Bawaan: Ubah alur evaluasi bawaan.
- Di bawah Buat dan sesuaikan 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 Buat dan sesuaikan 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 pada Prompt flow
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.
Masukan
Evaluasi dilakukan setelah proses sebelumnya untuk menilai seberapa baik output yang dijalankan selaras dengan kriteria dan tujuan tertentu. Oleh karena itu, evaluasi menerima hasil yang dihasilkan dari proses 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
Keluaran evaluasi adalah hasil yang mengukur performa siklus yang diuji. Output biasanya berisi metrik seperti skor, dan mungkin juga menyertakan teks untuk penalaran dan saran.
Output skor tingkat instans
Dalam alur prompt, alur memproses setiap set data sampel satu per satu dan menghasilkan catatan 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 tipe. 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 tabOutput>.
Pencatatan metrik dan simpul pengumpulan
Selain itu, penting juga untuk memberikan skor keseluruhan untuk proses. Anda dapat memeriksa "set as aggregation" dari node Python dalam alur evaluasi untuk mengubahnya menjadi node "reduce", memungkinkan node 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>.