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_pathke lokasi model Anda -
Atur
lambda_arnke fungsi hadiah ARN Anda -
Setel
output_s3_pathke lokasi keluaran yang Anda inginkan -
Sesuaikan
inferenceparameter 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
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
-
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 -
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)
-
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