View a markdown version of this page

Evaluasi model - Amazon SageMaker AI

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.

  1. 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.

  2. 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.

  3. Tutupi perilaku yang Anda pedulikan. Latih setiap kombinasi alat dan alat yang digunakan agen Anda. Sertakan petunjuk yang sebelumnya menyebabkan kegagalan sehingga regresi muncul.

  4. 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