Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Evaluasi model
Evaluasi menjalankan agen Anda terhadap set prompt dan melaporkan reward, pass @k, dan metrik lintasan. Gunakan untuk membandingkan model yang disetel dengan basisnya atau benchmark kandidat sebelum penerapan.
Catatan: Evaluasi penggunaan pekerjaan JobCategory: AgentRFTEvaluation (tidak AgentRFT seperti yang digunakan dalam pelatihan). Gunakan kategori ini CreateJob dan DescribeJob panggil untuk pekerjaan eval.
Mempersiapkan data evaluasi
Kumpulan data evaluasi menggunakan format dan skema yang sama dengan kumpulan data pelatihan. Lihat Format kumpulan data yang cepat. Panduan di bawah ini adalah eval-spesifik.
-
Tahan data evaluasi dari kumpulan data pelatihan. Jangan pernah mengevaluasi petunjuk pelatihan karena skor akan melebih-lebihkan kinerja. Cadangan sebagian data untuk set held-out, atau pertahankan dataset eval terpisah. Pertahankan set eval yang sama di seluruh iterasi sehingga hasilnya sebanding.
-
Cocokkan format prompt pelatihan. Agen harus mengurai perintah eval dengan cara yang sama seperti menguraikan petunjuk pelatihan. Jika Anda menggunakan pengkodean atau enkripsi selama pelatihan, gunakan struktur yang sama di sini. Menghasilkan keduanya dari jalur kode yang sama menghindari penyimpangan.
-
Tutupi perilaku yang Anda pedulikan. Latih setiap kombinasi alat dan alat yang digunakan agen Anda. Sertakan petunjuk yang sebelumnya menyebabkan kegagalan sehingga regresi muncul.
-
Lindungi konten sensitif dengan cara yang sama seperti dalam pelatihan saat layanan melewati permintaan tanpa inspeksi.
Meluncurkan pekerjaan evaluasi
Setelah pelatihan selesai, evaluasi model Anda menggunakan salah satu metode berikut.
SageMaker Studio AI
-
Arahkan ke halaman detail model kustom Anda (Model > Model Saya> pilih model MTRL Anda).
-
Pilih Evaluasi untuk membuka halaman konfigurasi evaluasi.
-
Pilih Multi-Turn RL sebagai jenis evaluasi.
-
Konfigurasikan lingkungan agen Anda — pilih AgentCore runtime Bedrock Anda atau berikan ARN forwarder Lambda Anda.
-
Berikan kumpulan data evaluasi Anda (URI S3 atau kumpulan data terdaftar yang berisi petunjuk evaluasi yang ditahan).
-
Pilih Kirim untuk memulai pekerjaan evaluasi.
SageMaker SDK Python AI
MultiTurnRLEvaluatorIni menyediakan antarmuka tingkat tinggi untuk meluncurkan pekerjaan evaluasi. Ketika Anda lulus pelatih yang sudah selesai, evaluator secara otomatis menyelesaikan paket model ARN, konfigurasi agen, dan kualifikasi agen.
Evaluasi model yang disetel dengan baik
from sagemaker.train.evaluate import MultiTurnRLEvaluator from sagemaker.train.multi_turn_rl_trainer import MultiTurnRLTrainer # Attach to a completed training job trainer = MultiTurnRLTrainer.attach(job_name="my-mtrl-job-20260512082005") # Minimal evaluator — everything else inferred from trainer evaluator = MultiTurnRLEvaluator( model=trainer, dataset="s3://my-bucket/eval-prompts.parquet", s3_output_path="s3://my-bucket/eval-output/", ) execution = evaluator.evaluate() print(f"Evaluation started: {execution.arn}") # Wait for completion execution.wait() print(f"Status: {execution.status.overall_status}") print(f"S3 Output: {execution.s3_output_path}") print(f"MLflow: {execution.mlflow_url}")
Mengevaluasi model dasar (tidak ada pelatihan)
Saat mengevaluasi model dasar secara langsung, agent_config diperlukan karena tidak ada pelatih untuk mewarisi dari:
from sagemaker.train.evaluate import MultiTurnRLEvaluator # With Bedrock AgentCore evaluator_base = MultiTurnRLEvaluator( model="openai-reasoning-gpt-oss-20b", dataset="s3://my-bucket/eval-prompts.parquet", agent_config="arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent", s3_output_path="s3://my-bucket/eval-output/base/", mlflow_resource_arn="arn:aws:sagemaker:us-west-2:123456789012:mlflow-tracking-server/my-mlflow", role="arn:aws:iam::123456789012:role/SageMakerRole", accept_eula=True, ) execution = evaluator_base.evaluate() execution.wait()
Side-by-side perbandingan (dasar vs disetel dengan baik)
evaluate()Panggilan tunggal yang mengevaluasi model dasar dan model yang disetel dengan baik dalam satu saluran:
comparison_evaluator = MultiTurnRLEvaluator( model=trainer, dataset="s3://my-bucket/eval-prompts.parquet", s3_output_path="s3://my-bucket/eval-output/comparison/", evaluate_base_model=True, ) execution = comparison_evaluator.evaluate() execution.wait() print(f"Status: {execution.status.overall_status}")
Memantau dan mengambil hasil
# Refresh status execution.refresh() print(f"Status: {execution.status.overall_status}") # Step-level detail for step in execution.status.step_details: print(f" {step.name}: {step.status}") if step.job_arn: print(f" Job ARN: {step.job_arn}") # MLflow URL print(f"MLflow: {execution.mlflow_url}")
AWS CLI dan boto3
Anda juga dapat membuat pekerjaan evaluasi secara langsung menggunakan CreateJob API.
Buat pekerjaan evaluasi (Bedrock AgentCore)
Untuk membuat pekerjaan evaluasi, panggil CreateJob API dengan JobCategory set toAgentRFTEvaluation. Penyiapan dan konfigurasi agen mengikuti proses yang sama dengan pekerjaan pelatihan.
Menggunakan AWS CLI
aws sagemaker create-job \ --job-category AgentRFTEvaluation \ --job-name "my-agent-rft-eval-job" \ --role-arn "arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole" \ --job-config-schema-version "1.0.0" \ --job-config-document '{ "AgentConfig": { "BedrockAgentCoreConfig": { "AgentRuntimeArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent" } }, "InputDataConfig": [{ "ChannelName": "evaluation", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://your-bucket-name/eval-prompts/" } } }], "OutputDataConfig": { "S3OutputPath": "s3://your-bucket-name/eval-output/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:123456789012:mlflow-app/my-rft-mlflow-app" } }, "EvaluationConfig": { "BaseModelArn": "arn:aws:sagemaker:us-west-2:aws:hub-content/SageMakerPublicHub/Model/openai-reasoning-gpt-oss-20b", "AcceptEula": true, "HyperParameters": {"batch": { "eval_group_size": 1 }, "eval_metrics_config": { "pass_k_values": [1, 2, 4, 8, 16, 32], "success_threshold": 1 }} } }' \ --region us-west-2
Menggunakan SageMaker AI Python SDK (boto3)
import json import boto3 sm = boto3.client("sagemaker") response = sm.create_job( JobName="my-agent-rft-eval-job", RoleArn="arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole", JobCategory="AgentRFTEvaluation", JobConfigSchemaVersion="1.0.0", JobConfigDocument=json.dumps({ "AgentConfig": { "BedrockAgentCoreConfig": { "AgentRuntimeArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent" } }, "InputDataConfig": [{ "ChannelName": "evaluation", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://your-bucket-name/eval-prompts/" } } }], "OutputDataConfig": { "S3OutputPath": "s3://your-bucket-name/eval-output/", "MlflowConfig": { "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:123456789012:mlflow-app/my-rft-mlflow-app" } }, "EvaluationConfig": { "BaseModelArn": "arn:aws:sagemaker:us-west-2:aws:hub-content/SageMakerPublicHub/Model/openai-reasoning-gpt-oss-20b", "AcceptEula": True, "HyperParameters": {"batch": { "eval_group_size": 1 }, "eval_metrics_config": { "pass_k_values": [1, 2, 4, 8, 16, 32], "success_threshold": 1 }} } }) ) print(f"Eval Job ARN: {response['JobArn']}")
Mengevaluasi model yang disetel dengan baik
Untuk mengevaluasi model yang dihasilkan oleh pekerjaan pelatihan, sertakan ModelPackageConfig denganInputModelPackageArn:
import json import boto3 sm = boto3.client("sagemaker") response = sm.create_job( JobName="my-agent-rft-eval-finetuned", RoleArn="arn:aws:iam::123456789012:role/SageMakerFineTuningJobRole", JobCategory="AgentRFTEvaluation", JobConfigSchemaVersion="1.0.0", JobConfigDocument=json.dumps({ "AgentConfig": {...}, "InputDataConfig": [...], "OutputDataConfig": {...}, "ModelPackageConfig": { "InputModelPackageArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package/my-final-models/1" }, "EvaluationConfig": {...} }) ) print(f"Eval Job ARN: {response['JobArn']}")
Buat pekerjaan evaluasi (Agen Kustom dengan Lambda Forwarder)
Gunakan pendekatan yang sama dengan AgentCore evaluasi Bedrock tetapi tentukan CustomAgentLambdaConfig dalamAgentConfig:
"AgentConfig": { "CustomAgentLambdaConfig": { "LambdaArn": "arn:aws:lambda:us-west-2:account-id:function:rft-agent-forwarder" } }
Evaluasi hiperparameter
| Kategori | Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|---|
| batch | eval_group_size | integer | 1 | Peluncuran per prompt. Catatan: Untuk menghitung pass @k, atur eval_group_size >= k. |
| eval_metrics_config | pass_k_values | array | [1, 2, 4, 8, 16, 32] | Daftar k nilai untuk komputasi pass @k dan pass^k metrik. lulus @k = probabilitas bahwa setidaknya 1 dari k peluncuran sampel berhasil. pass^k = probabilitas bahwa semua peluncuran k berhasil. |
| eval_metrics_config | success_threshold | float | 1 | Peluncuran “berhasil” saat hadiah> = success_threshold. Perhatikan ini berlaku untuk pass @k, pass^k, metrik succeeded/failed hitungan. |
| eval_sampling_params | suhu | float | 0 | Suhu pengambilan sampel untuk peluncuran evaluasi. Catatan: disarankan untuk meningkatkan nilai ini melebihi 0 untuk metrik pass @k dan pass^k untuk menghindari perilaku deterministik. |
| eval_sampling_params | sampling_top_p | float | 1 | Batas pengambilan sampel nukleus untuk peluncuran evaluasi. |
| eval_sampling_params | sampling_max_tokens | integer | 4096 | Token maksimum yang dapat dihasilkan model per giliran selama peluncuran evaluasi. |
| peluncuran | batas waktu | float | 600 | Waktu (detik) setelah peluncuran evaluasi diperlakukan sebagai gagal dan dapat dicoba lagi. |
| peluncuran | max_concurrency | int | 96 | Jumlah maksimum peluncuran evaluasi yang dapat dieksekusi secara paralel. |
| peluncuran | max_retries | int | 3 | Jumlah percobaan ulang untuk peluncuran evaluasi yang gagal sebelum menandainya sebagai gagal secara permanen. |
Evaluasi pemantauan
aws sagemaker describe-job \ --job-name "my-agent-rft-eval-job" \ --job-category AgentRFTEvaluation \ --region us-west-2
Menafsirkan hasil evaluasi
Buka Aplikasi MLFlow Anda untuk melihat metrik yang dicatat, distribusi hadiah, dan visualisasi lintasan untuk menjalankan evaluasi. Lihat di bawah untuk penjelasan tentang arti masing-masing metrik.
Metrik hadiah (eval/reward/)
| Metrik | Deskripsi |
|---|---|
eval/reward/mean |
Skor hadiah rata-rata di semua peluncuran. |
eval/reward/min |
Skor hadiah minimum di semua peluncuran. |
eval/reward/max |
Skor hadiah maksimum di semua peluncuran. |
eval/reward/std |
Standar deviasi skor hadiah di semua peluncuran. |
eval/reward/zero_frac |
Fraksi peluncuran yang mencetak tepat 0 (kegagalan total). |
eval/reward/pass_at_1 |
Probabilitas bahwa setidaknya 1 dari 1 sampel per prompt berhasil. Ini adalah metrik keberhasilan utama. |
eval/reward/pass_power_1 |
Tingkat kelulusan dengan pembobotan daya. |
eval/reward/succeeded_rollouts |
Jumlah total peluncuran yang mencapai hadiah positif. |
eval/reward/failed_rollouts |
Jumlah total peluncuran yang mencetak 0. |
eval/reward/num_prompts |
Jumlah petunjuk berbeda yang dievaluasi. |
eval/reward/rollouts_per_prompt |
Jumlah upaya (sampel) yang dihasilkan per prompt. |
eval/reward/success_threshold |
Nilai hadiah yang diperlukan untuk menghitung peluncuran sebagai “berhasil”. |
eval/reward/mean_within_groups |
Hadiah rata-rata per grup prompt (memerlukan pengaturan rollouts_per_prompt > 1). |
eval/reward/std_within_groups |
Standar deviasi hadiah dalam setiap kelompok prompt. |
eval/reward/min_within_groups |
Hadiah minimum dalam setiap grup prompt. |
eval/reward/max_within_groups |
Hadiah maksimum dalam setiap grup prompt. |
Metrik Token (eval/tokens/)
| Metrik | Deskripsi |
|---|---|
eval/tokens/prompt_mean |
Panjang prompt rata-rata dalam token (termasuk prompt sistem, deskripsi alat, dan konteks multi-putaran). |
eval/tokens/response_mean |
Panjang respons model rata-rata dalam token per giliran. |
eval/tokens/response_min |
Respons model terpendek dalam token. |
eval/tokens/response_max |
Respons model terpanjang dalam token. |
eval/tokens/response_std |
Standar deviasi panjang respons. Varians yang tinggi dapat menunjukkan perilaku agen yang tidak konsisten. |
Putar metrik (eval/turns/)
| Metrik | Deskripsi |
|---|---|
eval/turns/mean |
Jumlah rata-rata putaran per peluncuran. Nilai tinggi dapat mengindikasikan agen sedang mengulang atau mencoba lagi secara berlebihan. |
eval/turns/min |
Belokan paling sedikit dalam peluncuran apa pun. |
eval/turns/max |
Sebagian besar giliran dalam peluncuran apa pun. Nilai yang sangat tinggi menunjukkan agen terjebak tanpa menyelesaikan tugas. |
Metrik probabilitas log (eval/logprob/)
| Metrik | Deskripsi |
|---|---|
eval/logprob/nz_mean |
Rata-rata log-probabilitas token bukan nol (non-padding). Nilai mendekati 0 menunjukkan kepercayaan model yang tinggi. |
eval/logprob/nz_min |
Token probabilitas log terendah (prediksi paling tidak percaya diri). |
eval/logprob/nz_max |
Token probabilitas log tertinggi (prediksi paling percaya diri). |
eval/logprob/nz_std |
Deviasi standar probabilitas log bukan nol. Nilai rendah berarti kepercayaan diri yang tinggi secara konsisten. |
eval/logprob/zero_frac |
Fraksi token dengan probabilitas log nol persis (probabilitas 1.0), biasanya padding atau token paksa. |
eval/logprob/zero_count |
Jumlah total token zero-logprob. |
eval/logprob/zero_per_group |
Rata-rata token zero-logprob per grup prompt. |
Metrik waktu (timing_s/)
| Metrik | Deskripsi |
|---|---|
timing_s/eval |
Total waktu jam dinding untuk evaluasi dalam hitungan detik. eval/reward/num_promptsBagilah dengan rata-rata waktu per prompt. |
Cara mendiagnosis pola umum
| Pola | Kemungkinan penyebabnya |
|---|---|
pass_at_1 = 0, tinggi turns/mean |
Agen perulangan tanpa menyelesaikan tugas. Periksa penggunaan alat dan pola tindakan dalam lintasan. |
pass_at_1 = 0, rendah tokens/response_mean |
Agen menghasilkan respons yang sangat singkat (mungkin kosong atau cacat). Periksa format prompt dan kompatibilitas model. |
Tinggi turns/max dengan rendah turns/min |
Agen menunjukkan perilaku yang tidak konsisten di seluruh prompt. Beberapa tugas mungkin jauh lebih sulit atau agen mungkin gagal pada interaksi alat tertentu. |
Keyakinan tinggi (logprob/nz_meanmendekati 0) tetapi hadiah rendah |
Model dengan percaya diri menghasilkan output yang salah. Mungkin perlu lebih banyak keragaman data pelatihan atau penyempurnaan sinyal hadiah. |
zero_frac = 1.0dalam pahala |
Kegagalan total. Verifikasi penyebaran agen, konektivitas alat, dan format dataset evaluasi sudah benar. |
Untuk hasil mentah, tinjau artefak yang ditulis ke yang S3OutputPath ditentukan dalamOutputDataConfig.
Batas & kuota untuk evaluasi
Gunakan kuota AWS layanan untuk meminta peningkatan batas pada jumlah maksimum pekerjaan evaluasi bersamaan.
| Kuota | Default |
|---|---|
| rft-evaluation-job pekerjaan bersamaan maksimum | 1 |