Menjalankan evaluasi dan menafsirkan hasil - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menjalankan evaluasi dan menafsirkan hasil

Melaksanakan pekerjaan evaluasi

Langkah 1: Siapkan data Anda

  • Format data evaluasi Anda sesuai dengan Persyaratan Format Data

  • Unggah file JSONL Anda ke S3: s3://your-bucket/eval-data/eval_data.jsonl

Langkah 2: Konfigurasikan resep Anda

Perbarui resep sampel dengan konfigurasi Anda:

  • Setel model_name_or_path ke lokasi model Anda

  • Atur lambda_arn ke fungsi hadiah ARN Anda

  • Setel output_s3_path ke lokasi keluaran yang Anda inginkan

  • Sesuaikan inference parameter sesuai kebutuhan

Simpan resepnya sebagai rft_eval_recipe.yaml

Langkah 3: Jalankan evaluasi

Jalankan pekerjaan evaluasi menggunakan buku catatan yang disediakan: Buku catatan evaluasi

Wadah evaluasi

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest

Langkah 4: Pantau kemajuan

Pantau pekerjaan evaluasi Anda melalui:

  • SageMaker Konsol: Periksa status pekerjaan dan log

  • CloudWatch Log: Lihat log eksekusi terperinci

  • Lambda Logs: Masalah fungsi hadiah debug

Memahami hasil evaluasi

Format output

Pekerjaan evaluasi menghasilkan hasil ke lokasi S3 yang Anda tentukan dalam format JSONL. Setiap baris berisi hasil evaluasi untuk satu sampel:

{ "id": "sample-001", "aggregate_reward_score": 0.75, "metrics_list": [ { "name": "accuracy", "value": 0.85, "type": "Metric" }, { "name": "fluency", "value": 0.90, "type": "Reward" } ] }
catatan

Output Pekerjaan Evaluasi RFT identik dengan format Respons Lambda. Layanan evaluasi melewati respons fungsi Lambda Anda tanpa modifikasi, memastikan konsistensi antara perhitungan hadiah Anda dan hasil akhir.

Menafsirkan hasil

Skor hadiah agregat

  • Rentang: Biasanya 0,0 (terburuk) hingga 1,0 (terbaik), tetapi tergantung pada implementasi Anda

  • Tujuan: Angka tunggal yang merangkum kinerja keseluruhan

  • Penggunaan: Bandingkan model, lacak peningkatan selama pelatihan

Metrik individu

  • Jenis Metrik: Metrik informasi untuk analisis

  • Jenis Hadiah: Metrik yang digunakan selama pelatihan RFT

  • Interpretasi: Nilai yang lebih tinggi umumnya menunjukkan kinerja yang lebih baik (kecuali jika Anda merancang metrik terbalik)

Tolok ukur kinerja

Apa yang dimaksud dengan kinerja “baik” tergantung pada kasus penggunaan Anda:

Rentang skor Interpretasi Tindakan
0,8 - 1,0 Sangat baik Model siap untuk penyebaran
0,6 - 0,8 Baik Perbaikan kecil mungkin bermanfaat
0,4 - 0,6 Adil Diperlukan peningkatan yang signifikan
0,0 - 0,4 Miskin Tinjau data pelatihan dan fungsi hadiah
penting

Ini adalah pedoman umum. Tentukan ambang batas Anda sendiri berdasarkan:

  • Persyaratan bisnis

  • Kinerja model dasar

  • Kendala khusus domain

  • Analisis biaya-manfaat dari pelatihan lebih lanjut

Menganalisis hasil

Hitung statistik ringkasan

import json import numpy as np scores = [] with open('evaluation_results.jsonl', 'r') as f: for line in f: result = json.loads(line) scores.append(result['aggregate_reward_score']) print(f"Mean: {np.mean(scores):.3f}") print(f"Median: {np.median(scores):.3f}") print(f"Std Dev: {np.std(scores):.3f}") print(f"Min: {np.min(scores):.3f}") print(f"Max: {np.max(scores):.3f}")
  • Identifikasi Kasus Kegagalan: Tinjau sampel dengan skor rendah untuk memahami kelemahan

  • Bandingkan Metrik: Analisis korelasi antara metrik yang berbeda untuk mengidentifikasi trade-off

  • Lacak Seiring Waktu: Bandingkan hasil evaluasi di seluruh iterasi pelatihan

Pemecahan masalah

Masalah umum

Isu Penyebab Solusi
Batas waktu Lambda Perhitungan hadiah yang kompleks Tingkatkan batas waktu Lambda atau optimalkan fungsi
Izin ditolak Izin IAM tidak ada Verifikasi SageMaker peran dapat memanggil Lambda
Skor yang tidak konsisten Fungsi hadiah non-deterministik Gunakan benih tetap atau logika deterministik
Hasil yang hilang Kesalahan Lambda tidak tertangkap Tambahkan penanganan kesalahan komprehensif di Lambda

Daftar periksa debug

  • Verifikasi data input mengikuti format yang benar dengan array konten bersarang

  • Konfirmasikan Lambda ARN benar dan fungsinya diterapkan

  • Periksa izin IAM untuk → Pemanggilan SageMaker Lambda

  • Tinjau CloudWatch log untuk kesalahan Lambda

  • Validasi respons Lambda sesuai dengan format yang diharapkan

Praktik terbaik

  • Mulai Sederhana: Mulailah dengan fungsi hadiah dasar dan ulangi

  • Uji Lambda Secara Terpisah: Gunakan acara uji Lambda sebelum evaluasi penuh

  • Validasi pada Dataset Kecil: Jalankan evaluasi pada subset sebelum dataset lengkap

  • Kontrol Versi: Lacak versi fungsi hadiah bersama versi model

  • Biaya Monitor: Pemanggilan Lambda dan waktu komputasi memengaruhi biaya

  • Log Ekstensif: Gunakan pernyataan cetak di Lambda untuk debugging

  • Atur Timeout dengan Tepat: Seimbangkan antara kesabaran dan biaya

  • Metrik Dokumen: Tentukan dengan jelas apa yang diukur setiap metrik

Langkah selanjutnya

Setelah menyelesaikan evaluasi RFT:

  • Jika hasilnya memuaskan: Terapkan model ke produksi

  • Jika perbaikan diperlukan:

    • Sesuaikan fungsi hadiah

    • Kumpulkan lebih banyak data pelatihan

    • Ubah hiperparameter pelatihan

    • Jalankan iterasi pelatihan RFT tambahan

  • Pemantauan berkelanjutan: Evaluasi ulang secara berkala dengan data baru

Fungsi hadiah preset

Dua fungsi hadiah preset (prime_code, prime_math) dari pustaka verl open source tersedia dalam lapisan Lambda yang dapat Anda bundel dengan Lambda RFT Anda.

Ikhtisar

Fungsi preset ini memberikan kemampuan out-of-the-box evaluasi untuk:

  • prime_code — Pembuatan kode dan evaluasi kebenaran

  • prime_math — Penalaran matematis dan evaluasi pemecahan masalah

Pengaturan cepat

  1. Unduh layer Lambda dari rilis nova-custom-eval-sdk

  2. Publikasikan lapisan Lambda menggunakan: AWS CLI

    aws lambda publish-layer-version \ --layer-name preset-function-layer \ --description "Preset reward function layer with dependencies" \ --zip-file fileb://universal_reward_layer.zip \ --compatible-runtimes python3.9 python3.10 python3.11 python3.12 \ --compatible-architectures x86_64 arm64
  3. Tambahkan layer ke fungsi Lambda Anda di Konsol Manajemen AWS (Pilih preset-function-layer dari lapisan kustom dan juga tambahkan AWSSDKPandas-Python 312 untuk dependensi numpy)

  4. Impor dan gunakan dalam kode Lambda Anda:

    from prime_code import compute_score # For code evaluation from prime_math import compute_score # For math evaluation

fungsi prime_code

Tujuan: Mengevaluasi tugas pembuatan kode Python dengan mengeksekusi kode terhadap kasus uji dan mengukur kebenaran.

Contoh format dataset input dari evaluasi

{"messages":[{"role":"user","content":"Write a function that returns the sum of two numbers."}],"reference_answer":{"inputs":["3\n5","10\n-2","0\n0"],"outputs":["8","8","0"]}} {"messages":[{"role":"user","content":"Write a function to check if a number is even."}],"reference_answer":{"inputs":["4","7","0","-2"],"outputs":["True","False","True","True"]}}

Fitur utama

  • Ekstraksi kode otomatis dari blok kode penurunan harga

  • Deteksi fungsi dan pengujian berbasis panggilan

  • Eksekusi kasus uji dengan perlindungan batas waktu

  • Validasi sintaks dan pemeriksaan kompilasi

  • Pelaporan kesalahan terperinci dengan traceback

fungsi prime_math

Tujuan: Mengevaluasi penalaran matematika dan kemampuan pemecahan masalah dengan dukungan matematika simbolis.

Format masukan

{"messages":[{"role":"user","content":"What is the derivative of x^2 + 3x?."}],"reference_answer":"2*x + 3"}

Fitur utama

  • Evaluasi matematika simbolis menggunakan SymPy

  • Beberapa format jawaban (LaTeX, teks biasa, simbolis)

  • Pemeriksaan kesetaraan matematika

  • Normalisasi dan penyederhanaan ekspresi

Persyaratan format data

Untuk evaluasi kode

  • Input - Array argumen fungsi (tipe yang tepat: bilangan bulat, string, dll.)

  • Output - Array nilai pengembalian yang diharapkan (tipe yang tepat: boolean, angka, dll.)

  • Kode - Harus dalam Python dengan definisi fungsi yang jelas

Untuk evaluasi matematika

  • Jawaban referensi — Ekspresi matematika atau nilai numerik

  • Respons - Bisa LaTe X, teks biasa, atau notasi simbolik

  • Kesetaraan - Diperiksa secara simbolis, bukan hanya pencocokan string

Praktik terbaik

  • Gunakan tipe data yang tepat dalam kasus uji (bilangan bulat vs string, boolean vs “True”)

  • Berikan tanda tangan fungsi yang jelas dalam masalah kode

  • Sertakan kasus tepi dalam input pengujian (nol, angka negatif, input kosong)

  • Format ekspresi matematika secara konsisten dalam jawaban referensi

  • Uji fungsi reward Anda dengan data sampel sebelum penerapan

Penanganan kesalahan

Kedua fungsi tersebut mencakup penanganan kesalahan yang kuat untuk:

  • Kesalahan kompilasi dalam kode yang dihasilkan

  • Pengecualian runtime selama eksekusi

  • Data masukan cacat

  • Skenario batas waktu untuk loop tak terbatas

  • Ekspresi matematika tidak valid