Bagikan melalui


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.

    1. Di bawah Alat pilih Alur perintah.
    2. Pilih Buat untuk membuka wizard pembuatan alur.
    3. 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.

    1. Di bawah Alat pilih Alur perintah.
    2. Pilih Buat untuk membuka wizard pembuatan alur.
    3. 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