View a markdown version of this page

Evaluasi dengan Inspect AI Container - Amazon Nova

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

Evaluasi dengan Inspect AI Container

Wad SageMaker ah Inspect AI menjalankan evaluasi model LLM pada Pekerjaan SageMaker Pelatihan. Wadah menggunakan Insp ect AI untuk menyediakan proses evaluasi standar untuk model yang digunakan ke titik akhir SageMaker inferensi atau Amazon Bedrock — termasuk model Amazon Nova 1.0 (Micro, Lite, Pro) dan 2.0 (Lite 2).

Pen dekatan evaluasi sebelumnya (berdasarkan lighteval) menggabungkan inferensi offline dan logika evaluasi secara erat, yang membatasi fleksibilitas dalam bagaimana model dapat disajikan dan diuji. Wadah Inspect AI memisahkan logika evaluasi dari inferensi sepenuhnya.

Gambaran umum

Manfaat utama meliputi:

  • Bawalah tolok ukur Anda sendiri — tulis tugas evaluasi dalam format Inspect AI, lalu masukkan tugas evaluasi khusus domain tanpa bergantung pada tim terpusat untuk memasukkannya.

  • Evaluasi dengan opsi inferensi yang berbeda — bekerja dengan SageMaker Inferensi (titik akhir yang ada atau buat secara langsung), Amazon Bedrock, dan lebih banyak backend inferensi yang masuk.

  • Iterasi lebih cepat — beralih dari pengembangan benchmark ke evaluasi produksi tanpa perubahan infrastruktur. Orientasi benchmark baru yang sebelumnya memakan waktu berhari-hari terjadi dalam hitungan menit.

  • Jalankan dalam skala besar — rangkaian beberapa tolok ukur dalam satu pekerjaan, gabungkan tolok ukur standar dari pustaka inspect-evals dengan tugas khusus Anda sendiri dalam pekerjaan yang sama.

  • Satu titik masuk untuk semua teknik pelatihan - apakah model Anda disetel dengan SFT (SMTJ, SMHP), CPT (SMHP), atau RFT (SMTJ, SMHP), wadah mengevaluasinya melalui antarmuka yang sama. Mengevaluasi pos pemeriksaan pertengahan pelatihan yang disimpan pada langkah-langkah tertentu juga didukung (misalnya, langkah 500, langkah 1000) dengan model_s3_uri menunjuk ke jalur pos pemeriksaan.

Cara kerjanya

Anda memberikan dua input ke wadah:

  1. File konfigurasi YAML (resep) yang mendefinisikan penyedia inferensi, tolok ukur, dan parameter evaluasi

  2. File benchmark (skrip Python dengan @task dekorator) diunggah ke Amazon S3

Wadah menangani manajemen titik akhir, eksekusi evaluasi, dan pengumpulan hasil. Ketika pekerjaan pelatihan selesai, hasilnya ditulis ke lokasi keluaran S3 yang Anda tentukan.

Gambar kontainer

Tabel berikut mencantumkan URI gambar kontainer Inspect AI by AWS Region.

Region URI gambar kontainer
us-east-1 763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest
us-west-2 763104351884.dkr.ecr.us-west-2.amazonaws.com/sagemaker-inspect-ai:latest
eu-west-2 763104351884.dkr.ecr.eu-west-2.amazonaws.com/sagemaker-inspect-ai:latest

Prasyarat

Sebelum Anda mulai, pastikan Anda memiliki sumber daya dan akses berikut.

Persyaratan Deskripsi
AWS akun dengan SageMaker akses Aktif Akun AWS dengan izin untuk membuat Pekerjaan SageMaker Pelatihan
Bucket S3 Keranjang untuk menyimpan resep evaluasi Anda, file benchmark, dan hasil keluaran
Peran eksekusi IAM Peran yang SageMaker dapat diasumsikan untuk mengakses sumber daya Anda
SageMaker titik akhir inferensi atau akses Amazon Bedrock Titik akhir model yang digunakan atau akses model Amazon Bedrock untuk model yang ingin Anda evaluasi
AWS CLI atau SageMaker Python SDK Alat untuk mengirimkan pekerjaan pelatihan dan mengelola sumber daya
Reservasi kapasitas (model besar) Untuk model yang memerlukan instans dipercepat (seperti p5 untuk Nova Lite 2), hubungi AWS Dukungan untuk memesan kapasitas untuk SageMaker Inferensi atau Amazon Bedrock

Langkah 1: Siapkan izin IAM

Pekerjaan SageMaker Pelatihan berjalan di bawah peran eksekusi yang Anda berikan. Peran ini memerlukan izin untuk membaca tolok ukur dari S3, menulis hasil, memanggil titik akhir inferensi, dan menulis CloudWatch log.

1.1 Buat kebijakan kepercayaan

Simpan yang berikut ini sebagaitrust_policy.json:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

1.2 Buat peran

aws iam create-role \ --role-name InspectLensEvalRole \ --assume-role-policy-document file://trust_policy.json

1.3 Lampirkan kebijakan izin

Simpan yang berikut ini sebagaieval_policy.json, ganti semua nilai placeholder (REGION,ACCOUNT_ID, nama bucket) dengan nilai Anda:

Lingkup hingga sumber daya yang digunakan

Lingkup setiap sumber daya ARN hanya menjadi sumber daya yang Anda butuhkan. Kebijakan di bawah ini menyediakan template awal — batasi nama bucket, ARN titik akhir, dan sumber daya lainnya agar sesuai dengan lingkungan Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ReadBenchmarkData", "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": [ "arn:aws:s3:::YOUR_BENCHMARK_BUCKET", "arn:aws:s3:::YOUR_BENCHMARK_BUCKET/*" ] }, { "Sid": "S3WriteResults", "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"], "Resource": [ "arn:aws:s3:::YOUR_RESULTS_BUCKET", "arn:aws:s3:::YOUR_RESULTS_BUCKET/*" ] }, { "Sid": "SageMakerInvokeExistingEndpoint", "Effect": "Allow", "Action": [ "sagemaker:InvokeEndpoint", "sagemaker:InvokeEndpointWithResponseStream", "sagemaker:DescribeEndpoint" ], "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*" }, { "Sid": "BedrockInference", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:REGION::foundation-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:inference-profile/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:provisioned-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:imported-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model-deployment/*" ] }, { "Sid": "BedrockCustomModelAccess", "Effect": "Allow", "Action": [ "bedrock:GetCustomModel", "bedrock:GetImportedModel", "bedrock:GetProvisionedModelThroughput", "bedrock:GetCustomModelDeployment", "bedrock:GetInferenceProfile" ], "Resource": [ "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:imported-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:provisioned-model/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:custom-model-deployment/*", "arn:aws:bedrock:REGION:ACCOUNT_ID:inference-profile/*" ] }, { "Sid": "SageMakerCreateEndpointLifecycle", "Effect": "Allow", "Action": [ "sagemaker:CreateModel", "sagemaker:DescribeModel", "sagemaker:DeleteModel", "sagemaker:CreateEndpointConfig", "sagemaker:DescribeEndpointConfig", "sagemaker:DeleteEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DescribeEndpoint", "sagemaker:DeleteEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:InvokeEndpointWithResponseStream" ], "Resource": [ "arn:aws:sagemaker:REGION:ACCOUNT_ID:model/*", "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*", "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint-config/*" ] }, { "Sid": "ECRAuth", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" }, { "Sid": "PassRoleToSageMaker", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNT_ID:role/InspectLensEvalRole", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Sid": "VPCNetworkingForEndpoint", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid": "CloudWatchLogs", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/sagemaker/TrainingJobs:*", "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/sagemaker/Endpoints/*" ] }, { "Sid": "MLflowTrackingServer", "Effect": "Allow", "Action": [ "sagemaker:DescribeMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:mlflow-tracking-server/*" }, { "Sid": "MLflowTrackingOperations", "Effect": "Allow", "Action": [ "sagemaker-mlflow:AccessUI", "sagemaker-mlflow:CreateExperiment", "sagemaker-mlflow:GetExperiment", "sagemaker-mlflow:GetExperimentByName", "sagemaker-mlflow:SearchExperiments", "sagemaker-mlflow:CreateRun", "sagemaker-mlflow:GetRun", "sagemaker-mlflow:UpdateRun", "sagemaker-mlflow:SearchRuns", "sagemaker-mlflow:LogMetric", "sagemaker-mlflow:LogParam", "sagemaker-mlflow:LogBatch", "sagemaker-mlflow:SetTag", "sagemaker-mlflow:LogArtifact", "sagemaker-mlflow:ListArtifacts" ], "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:mlflow-tracking-server/*" }, { "Sid": "KMSForVolumeEncryption", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*" } ] }

Lampirkan kebijakan ke peran:

aws iam put-role-policy \ --role-name InspectLensEvalRole \ --policy-name InspectLensEvalPolicy \ --policy-document file://eval_policy.json

Langkah 2: Tulis resep eval Anda

Resep eval adalah file konfigurasi YAML yang menentukan bagaimana wadah menjalankan evaluasi Anda. Resep menentukan penyedia inferensi, tolok ukur, parameter evaluasi, dan pengaturan output.

Untuk contoh ujung ke ujung, lihat buku catatan berikut di repositori Amazon Nova Samples di GitHub:

Opsi A: Mengevaluasi titik akhir yang SageMaker ada

Gunakan opsi ini jika Anda memiliki model yang sudah diterapkan pada titik akhir SageMaker inferensi.

inference_provider: sagemaker_endpoint: endpoint_name: "my-existing-endpoint" region: "us-east-1" benchmarks: s3_path: "s3://your-bucket/benchmarks/my_benchmarks/" tasks: - name: mmlu eval: max_connections: 10 max_retries: 100 timeout: 600 output: s3_path: "s3://your-bucket/eval-results/"

Opsi B: Buat titik akhir, evaluasi, lalu bersihkan

Gunakan opsi ini agar wadah menerapkan basis Amazon Nova atau model yang disetel dengan baik, menjalankan evaluasi, dan meruntuhkan titik akhir secara otomatis. Ini adalah pendekatan yang direkomendasikan untuk evaluasi satu kali. Ambil wadah SageMaker inferensi terbaru dari dokumentasi gambar wadah Amazon Nova SageMaker Inference.

inference_provider: sagemaker_endpoint: endpoint_name: null # null = create new endpoint model_s3_uri: "s3://your-bucket/models/nova-micro/" inference_image_uri: "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-inference-repo:SM-Inference-latest" instance_type: "ml.p5.48xlarge" instance_count: 1 execution_role_arn: "arn:aws:iam::ACCOUNT_ID:role/InspectLensEvalRole" region: "us-east-1" context_length: "16000" max_concurrency: "32" cleanup_endpoint: true # Auto-delete after eval benchmarks: s3_path: "s3://your-bucket/benchmarks/my_benchmarks/" tasks: - name: mmlu_pro - name: arc_c - name: boolq eval: fail_on_error: false decoding: temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 16000 reasoning_effort: null max_connections: 16 max_retries: 100 timeout: 600 extra_args: - "-M" - "completion_mode=True" - "--logprobs" - "--top-logprobs" - "5" output: s3_path: "s3://your-bucket/eval-results/"
Catatan tentang model_s3_uri
  • Model Amazon Nova GA (pos pemeriksaan dasar): Misalnya, s3://escrow-nova-model-708977205387-us-east-1/nova-lite-2/prod/ — SageMaker mengelola akses secara otomatis, tidak diperlukan izin S3 tambahan.

  • Model Amazon Nova yang disesuaikan (pos pemeriksaan pasca-pelatihan): s3://customer-escrow-ACCOUNT_ID-SUFFIX/YOUR_RUN_NAME/outputs/checkpoints/step_N/ — ini adalah jalur bucket escrow dari output pekerjaan pelatihan Anda.

Sumber daya titik akhir yang dikelola

Berikan izin opsional berikut untuk peran eksekusi Anda sehingga wadah dapat menandai sumber daya inferensi terkelola dengan nama pekerjaan pelatihan asal dan ARN. Sumber daya yang ditandai termasuk titik akhir, konfigurasi titik akhir, dan model. Ini membantu mengidentifikasi sumber daya jika pembersihan terganggu. Wadah hanya menerapkan tag saat dijalankan sebagai Pekerjaan SageMaker Pelatihan.

{ "Sid": "SageMakerTagManagedResources", "Effect": "Allow", "Action": "sagemaker:AddTags", "Resource": [ "arn:aws:sagemaker:REGION:ACCOUNT_ID:model/*", "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/*", "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint-config/*" ] }

Wadah menerapkan tag berikut ke sumber daya terkelola:

Tombol tanda Nilai contoh
sagemaker-inspect-ai:TrainingJobName my-eval-job-20260828-145940
sagemaker-inspect-ai:TrainingJobArn arn:aws:sagemaker:us-east-1:123456789012:training-job/my-eval-job-20260828-145940

Sumber eksternal dapat mengganggu manajemen sumber daya selama runtime. Untuk informasi tentang penanganan sumber daya sisa, lihatPemecahan masalah.

Opsi C: Evaluasi melalui Amazon Bedrock Runtime

Gunakan opsi ini untuk mengevaluasi model yang tersedia melalui Amazon Bedrock Runtime tanpa mengelola titik akhir. Untuk informasi selengkapnya tentang opsi titik akhir Amazon Bedrock, lihat titik akhir Amazon Bedrock.

inference_provider: bedrock: model_id: amazon.nova-pro-v1:0 region: us-east-1 benchmarks: - name: mmlu path: benchmarks/mmlu_pro.py limit: 100 eval: fail_on_error: false decoding: temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 8192 reasoning_effort: null max_connections: 10 max_retries: 50 timeout: 600 extra_args: - "--display" - "plain" output: s3_path: s3://your-bucket/eval/output/

Opsi D: Evaluasi melalui Amazon Bedrock Mantle

Amazon Bedrock Mantle menyediakan titik akhir inferensi yang OpenAI kompatibel untuk model yang tersedia melalui Amazon Bedrock. Opsi ini tidak memerlukan kredensi tersimpan. Wadah menghasilkan token pembawa berumur pendek dari kredentif IAM peran eksekusi Anda dan secara otomatis menyegarkannya di antara tolok ukur.

inference_provider: openai_compatible_endpoint: auth: "bedrock_mantle" region: "us-east-1" model_name: "us.amazon.nova-pro-v1:0" benchmarks: s3_path: "s3://your-bucket/benchmarks/my_benchmarks/" tasks: - name: mmlu eval: max_connections: 10 max_retries: 50 timeout: 600 output: s3_path: s3://your-bucket/eval/output/

Tambahkan izin berikut ke peran eksekusi Anda (lihatLangkah 1: Siapkan izin IAM):

{ "Sid": "BedrockMantleInference", "Effect": "Allow", "Action": [ "bedrock-mantle:CreateInference", "bedrock-mantle:CallWithBearerToken" ], "Resource": "*" }

Untuk panduan izin, lihat izin inferensi Amazon Bedrock dan kontrol izin kunci API di dokumentasi Amazon Bedrock.

Opsi E: Evaluasi sebuah OpenAI-titik akhir yang kompatibel

Gunakan opsi ini untuk mengevaluasi melalui titik akhir API OpenAI yang kompatibel — termasuk SageMaker Inferensi (AWS blog) atau penyedia lain yang kompatibelOpenAI. Opsi ini menggunakan penyedia API yang OpenAI kompatibel dengan Inspect AI di situs web Inspect AI, yang mengirimkan kredensi yang dikonfigurasi sebagai token pembawa di Authorization header dengan setiap permintaan inferensi. Token pembawa tidak dicatat secara default.

Panduan penyedia token

Selalu periksa dokumentasi penyedia token Anda untuk praktik manajemen kunci yang direkomendasikan, kebijakan rotasi, dan panduan keamanan sebelum mengonfigurasi pengiriman kredensia.

Persyaratan HTTPS

HTTPS diperlukan untuk semua titik akhir yang menggunakan otentikasi token pembawa. HTTP hanya diperbolehkan untuk alamat localhost.

Penggunaan AWS Manajer Rahasia (disarankan)

AWS Secrets Manager menyediakan penyimpanan terenkripsi, audit akses melalui CloudTrail, dan rotasi otomatis untuk kunci API dan rahasia lainnya. Simpan kunci API di Secrets Manager dan referensikan oleh ARN dalam resep. Wadah mengambil kunci saat runtime dan menyegarkan secara otomatis di antara tolok ukur.

inference_provider: openai_compatible_endpoint: model_name: "my-model" base_url: "https://my-endpoint/v1" auth: api_key api_key_secret_arn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:prod/my-api-key" region: "us-east-1" benchmarks: s3_path: "s3://your-bucket/benchmarks/my_benchmarks/" tasks: - name: mmlu eval: max_connections: 10 max_retries: 50 timeout: 600 output: s3_path: s3://your-bucket/eval/output/

Tambahkan izin berikut ke peran eksekusi Anda (lihatLangkah 1: Siapkan izin IAM):

{ "Sid": "GetApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:REGION:ACCOUNT_ID:secret:YOUR_SECRET_NAME" }

Menggunakan variabel lingkungan

Kunci API dapat dilewatkan melalui variabel lingkunganINFERENCE_API_KEY. Periksa dengan dokumentasi lingkungan runtime Anda untuk mengetahui bagaimana variabel lingkungan diteruskan dan implikasi keamanannya. Untuk SageMaker Pekerjaan Pelatihan, variabel lingkungan terlihat dalam respons DescribeTrainingJob API dan dibatasi hingga 512 karakter. Untuk informasi selengkapnya, lihat Vari SageMaker abel lingkungan Pekerjaan Pelatihan.

inference_provider: openai_compatible_endpoint: model_name: "my-model" base_url: "https://my-endpoint/v1" auth: api_key # No key source specified — reads from INFERENCE_API_KEY environment variable benchmarks: s3_path: "s3://your-bucket/benchmarks/my_benchmarks/" tasks: - name: mmlu eval: max_connections: 10 max_retries: 50 timeout: 600 output: s3_path: s3://your-bucket/eval/output/

Misalnya, pada Pekerjaan SageMaker Pelatihan:

aws sagemaker create-training-job \ ... --environment '{"INFERENCE_API_KEY": "your-api-key"}'

Konfigurasi tolok ukur

benchmarksBagian ini mendefinisikan tugas evaluasi mana yang akan dijalankan. Anda dapat merangkai beberapa tolok ukur dalam satu pekerjaan.

Bidang Diperlukan Default Deskripsi
name Ya Nama deskriptif untuk menjalankan benchmark
path Ya Jalur relatif ke file benchmark Python di direktori tolok ukur S3 Anda
limit Tidak Tidak ada (semua sampel) Jumlah sampel maksimum untuk dievaluasi. Gunakan untuk pengujian sebelum berjalan penuh.
epochs Tidak 1 Jumlah kali untuk mengulangi evaluasi untuk signifikansi statistik
task_args Tidak Key-value pasangan diteruskan sebagai argumen ke fungsi tugas benchmark

Konfigurasi Eval

evalBagian ini mengontrol bagaimana wadah mengeksekusi evaluasi.

Parameter Diperlukan Default Deskripsi
fail_on_error Tidak false Hentikan evaluasi jika ada sampel yang gagal. Setel ke true untuk validasi ketat.
max_connections Tidak 10 Jumlah permintaan paralel ke titik akhir inferensi
max_retries Tidak 3 Jumlah percobaan ulang untuk permintaan inferensi yang gagal
timeout Tidak 600 Minta batas waktu dalam detik untuk setiap panggilan inferensi
extra_args Tidak Pasangan kunci-nilai tambahan diteruskan langsung ke perintah Inspect AI eval

Parameter decoding

Konfigurasikan parameter decoding model dalam eval.decoding bagian:

Parameter Diperlukan Default Deskripsi
temperature Tidak 0,0 Mengontrol keacakan dalam generasi. Gunakan 0.0 untuk hasil benchmark deterministik dan dapat direproduksi.
top_p Tidak 1.0 Ambang pengambilan sampel inti. 1.0berarti tidak ada batasan.
top_k Tidak -1 Membatasi pilihan kata ke token K teratas yang paling mungkin. -1menonaktifkan filter ini.
max_tokens Tidak 8192 Jumlah maksimum token yang dihasilkan per respons. Peningkatan untuk tolok ukur yang membutuhkan rantai penalaran panjang.
reasoning_effort Tidak null Mengontrol kedalaman penalaran untuk model yang mendukungnya (misalnya, model Amazon Nova dengan pemikiran yang diperluas). Opsi:low,high, atau null untuk menonaktifkan.

Konfigurasi keluaran

outputBagian ini mendefinisikan di mana dan bagaimana hasil evaluasi disimpan.

Bidang Diperlukan Default Deskripsi
s3_path Ya S3 URI tempat hasil evaluasi ditulis
output_format Tidak evaluasi Format untuk file hasil. Lihat tabel berikut untuk opsi.

Format output berikut tersedia:

Format Deskripsi
eval Format AI Inspeksi Asli. Kompatibel dengan inspect view untuk analisis interaktif.
csv Comma-separated nilai-nilai. Cocokan untuk analisis spreadsheet dan pipeline data.
jsonl Format Garis JSON. Satu objek JSON per baris untuk pemrosesan streaming.
json Format JSON standar. Hasil lengkap dalam satu file terstruktur.

Konfigurasi MLFlow

Secara opsional, Anda dapat mencatat metrik evaluasi ke server pelacakan MLFlow. Tambahkan tracking bagian ke resep Anda:

tracking: mlflow_tracking_arn: null # ARN of SageMaker MLflow tracking server mlflow_experiment_name: "inspectlens" # experiment name mlflow_tracing: true # log full request/response traces mlflow_log_artifacts: true # upload .eval files to MLflow
Bidang Diperlukan Default Deskripsi
mlflow_tracking_arn Tidak null ARN dari server pelacakan SageMaker MLFlow Anda. Menyetel ini memungkinkan pencatatan MLFlow. Hilangkan atau atur untuk null menonaktifkan.
mlflow_experiment_name Tidak inspeksi lensa Nama percobaan MLFlow yang akan dijalankan di bawah log.
mlflow_tracing Tidak true Kapantrue, mencatat request/response jejak penuh untuk setiap sampel.
mlflow_log_artifacts Tidak true Kapantrue, mengunggah file .eval log sebagai artefak MLFlow.

Referensi resep lengkap

Contoh berikut menunjukkan resep lengkap dengan semua opsi konfigurasi yang tersedia:

inference_provider: sagemaker_endpoint: endpoint_name: my-nova-endpoint model_s3_uri: s3://your-bucket/models/my-model/ inference_image_uri: "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-inference-repo:SM-Inference-latest" instance_type: ml.g5.12xlarge cleanup_endpoint: true region: us-west-2 benchmarks: - name: mmlu path: benchmarks/mmlu_pro.py limit: 100 epochs: 3 task_args: subject: math - name: truthfulqa path: benchmarks/truthfulqa.py limit: 50 eval: fail_on_error: false decoding: temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 8192 reasoning_effort: null max_connections: 256 max_retries: 50 timeout: 600 extra_args: - "--display" - "plain" output: s3_path: s3://your-bucket/eval/output/ output_format: eval tracking: mlflow_tracking_arn: "arn:aws:sagemaker:us-west-2:123456789012:mlflow-tracking-server/my-server" mlflow_experiment_name: "inspectlens" mlflow_tracing: true mlflow_log_artifacts: true

Langkah 3: Siapkan file benchmark

Tolok ukur adalah file Python yang menggunakan @task dekorator Inspect AI untuk menentukan tugas evaluasi. Repositori inspect-evals menyediakan 128+ tolok ukur siap pakai, atau Anda dapat menulis sendiri.

Contoh tolok ukur

Contoh berikut menunjukkan benchmark minimal yang mengevaluasi kinerja pilihan ganda pada dataset: HuggingFace

from inspect_ai import task, Task from inspect_ai.dataset import hf_dataset from inspect_ai.scorer import choice from inspect_ai.solver import multiple_choice @task def my_benchmark(): return Task( dataset=hf_dataset( path="cais/mmlu", name="abstract_algebra", split="test", ), solver=multiple_choice(), scorer=choice(), )

Ketergantungan

Jika tolok ukur Anda membutuhkan dependensi tambahan, sertakan pyproject.toml atau requirements.txt di direktori S3 yang sama:

[project] name = "my-benchmark" version = "0.1.0" requires-python = ">=3.12" dependencies = [ "datasets>=2.14.0", ]

Pre-installed paket

Wadah termasuk paket berikut. Anda tidak perlu mencantumkan ini di dalam daftar Andapyproject.toml.

Paket Versi
Python 3.12
inspect-ai 0.3.220
boto3 1.40.61
Aioboto3 15.5.0
openai 2.36.0
Ml flow 3.12.0
pyyaml 6.0.3

Pemilihan tugas

Bid tasks ang di resep Anda mengontrol tugas mana dalam file benchmark yang akan dijalankan.

Konfigurasi Contoh Perilaku
Kosong tasks tasks: [] Menjalankan semua tugas yang ditentukan dalam file benchmark
Filter nama tasks: ["algebra"] Menjalankan tugas yang namanya berisi substring “aljabar”
limit limit: 50 Membatasi jumlah sampel yang dievaluasi per tugas
epochs epochs: 3 Mengulangi evaluasi beberapa kali untuk mengukur varians

Langkah 4: Siapkan struktur S3 Anda

Struktur berikut adalah rekomendasi untuk menjaga konfigurasi, tolok ukur, dan hasil tetap teratur. Anda dapat mengarahkan wadah ke lokasi S3 mana pun — struktur itu sendiri tidak diperlukan.

s3://your-bucket/ ├── config/ │ └── inspect_config.yaml # Your eval recipe ├── benchmarks/ │ └── my_benchmarks/ # Your benchmark Python files │ ├── pyproject.toml # Optional: benchmark dependencies │ ├── my_task.py # @task decorated functions │ └── _helpers.py # Shared utilities └── output/ # Results written here

Unggah file Anda ke S3:

# Upload benchmark files aws s3 cp my_benchmarks/ s3://your-bucket/benchmarks/my_benchmarks/ --recursive # Upload your eval recipe aws s3 cp inspect_config.yaml s3://your-bucket/config/inspect_config.yaml

Langkah 5: Kirim pekerjaan pelatihan

Kirim SageMaker Pekerjaan Pelatihan untuk menjalankan evaluasi Anda. Anda dapat menggunakan AWS CLI atau SageMaker Python SDK.

Opsi A: AWS CLI

aws sagemaker create-training-job \ --training-job-name inspect-eval-$(date +%Y%m%d-%H%M%S) \ --algorithm-specification \ TrainingImage=763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest,TrainingInputMode=File \ --role-arn arn:aws:iam::123456789012:role/SageMakerInspectAIRole \ --resource-config \ InstanceType=ml.m5.large,InstanceCount=1,VolumeSizeInGB=30 \ --stopping-condition MaxRuntimeInSeconds=86400 \ --input-data-config '[ { "ChannelName": "config", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://your-bucket/eval/config/", "S3DataDistributionType": "FullyReplicated" } } } ]' \ --output-data-config S3OutputPath=s3://your-bucket/eval/output/ \ --region us-west-2

Opsi B: SageMaker Python SDK v3

from sagemaker.train.evaluate import InspectAIEvaluator evaluator = InspectAIEvaluator( model="nova-textgeneration-lite-v2", bedrock_model_id="us.amazon.nova-lite-v2:0", benchmarks_path="s3://your-bucket/benchmarks/my_benchmarks/", tasks=[{"name": "my_task", "limit": 100}], s3_output_path="s3://your-bucket/eval/output/", instance_type="ml.m5.large", ) execution = evaluator.evaluate() execution.wait() execution.show_results()

Parameter kunci

Parameter Nilai Deskripsi
TrainingImage 763104351884.dkr.ecr.us-east-1.amazonaws.com/sagemaker-inspect-ai:latest Gambar wadah Inspect AI
InstanceType ml.m5.large Jenis instance Orchestrator (bukan instance inferensi)
VolumeSizeInGB 30 Penyimpanan untuk data benchmark dan log
MaxRuntimeInSeconds 86400 Durasi kerja maksimum (24 jam)
ChannelName config Saluran input yang berisi file resep dan tolok ukur Anda

Panduan jenis instance orkestrator

Contoh pekerjaan pelatihan menjalankan logika orkestrasi evaluasi, bukan inferensi model. Pilih jenis instans berdasarkan beban kerja evaluasi Anda.

Tipe instans Kasus penggunaan Bimbingan
ml.m5.large Standar yang disarankan Cukup untuk sebagian besar beban kerja evaluasi dengan paralelisme sedang
ml.m5.4xlarge Suite benchmark besar Gunakan saat menjalankan banyak tolok ukur dengan max_connections nilai tinggi
ml.c5.large Cost-sensitive Alternatif biaya lebih rendah untuk evaluasi sederhana dengan paralelisme rendah

Variabel lingkungan

Anda dapat meneruskan variabel lingkungan ke wadah untuk otentikasi atau konfigurasi. Tambahkan --environment parameter ke AWS CLI perintah:

aws sagemaker create-training-job \ ... --environment '{ "HF_TOKEN": "hf_your_token_here", "HF_HUB_DOWNLOAD_TIMEOUT": "300" }'

Langkah 6: Pantau pekerjaan

Setelah Anda mengirimkan pekerjaan pelatihan, Anda dapat memantau kemajuannya melalui AWS CLI atau CloudWatch Log.

Periksa status pekerjaan

aws sagemaker describe-training-job \ --training-job-name your-job-name \ --query "TrainingJobStatus" \ --output text

Streaming log

aws logs tail /aws/sagemaker/TrainingJobs \ --log-stream-name-prefix your-job-name \ --follow

Apa yang diharapkan di log

Log kontainer menunjukkan kemajuan melalui tahapan berikut:

  1. Startup - Inisialisasi kontainer dan validasi konfigurasi

  2. Unduhan benchmark - Mengunduh file benchmark dan menginstal dependensi

  3. Pengaturan titik akhir — Membuat atau menghubungkan ke titik akhir inferensi

  4. Evalu asi — Menjalankan tugas benchmark dengan indikator kemajuan

  5. Unggah hasil — Menulis hasil ke S3 dan secara opsional mencatat ke MLFlow

  6. Pembersihan — Menghapus titik akhir sementara jika cleanup_endpoint: true

Perkiraan jadwal

Stage Perkiraan durasi
Startup kontainer 2—5 menit
Pembuatan titik akhir (jika berlaku) 15—30 menit
Evaluasi Bervariasi berdasarkan ukuran benchmark dan latensi model
Pembersihan 1—2 menit

Langkah 7: Melihat dan menafsirkan hasil

Setelah pekerjaan selesai, lihat hasil evaluasi Anda.

Lihat dengan Inspect AI

Gunakan penampil Inspect AI untuk menjelajahi hasil secara interaktif langsung dari S3:

inspect view --log-dir s3://your-bucket/eval-results/

Perintah ini membuka antarmuka web lokal tempat Anda dapat menelusuri skor, melihat sampel individual, dan membandingkan proses.

Unduh dan bagikan

Untuk mengunduh hasil secara lokal:

aws s3 cp s3://your-bucket/eval/output/ ./results/ --recursive INSPECT_LOG_DIR=./results inspect view

Ekstensi VS Code

Ekstensi Insp ect AI VS Code memungkinkan Anda menelusuri log eval langsung dari S3 tanpa mengunduhnya terlebih dahulu.

  1. Instal ekstensi dari pasar VS Code (cari “Periksa AI”)

  2. Di Inspect Activity Bar, cari panel Logs dan pilih ikon folder

  3. Masukkan jalur S3 Anda: s3://your-bucket/eval-results/

Struktur keluaran

Setiap evaluasi menghasilkan file .eval log yang berisi bagian-bagian berikut:

  • results.scores— Skor agregat untuk setiap metrik

  • samples— Sampel evaluasi individu dengan input, output, dan skor

  • stats— Statistik runtime termasuk penggunaan token dan latensi

  • eval.config— Konfigurasi yang digunakan untuk menjalankan evaluasi

Lihat hasil di MLFlow (opsional)

Jika Anda mengonfigurasi MLFlow dalam resep Anda, buat URL yang telah ditandatangani sebelumnya untuk mengakses server pelacakan:

aws sagemaker create-presigned-mlflow-tracking-server-url \ --tracking-server-name my-server \ --region us-west-2

Buka URL yang dikembalikan di browser Anda untuk melihat metrik, membandingkan proses, dan menganalisis tren di seluruh evaluasi.

Tolok ukur yang tersedia

Wadah Inspect AI berfungsi dengan tolok ukur apa pun yang ditulis dalam format tugas Inspect AI. Repositori inspect-evals menyediakan 128+ tolok ukur siap pakai yang mencakup bidang-bidang seperti penalaran, pengetahuan, pengkodean, dan keamanan.

Untuk menulis tolok ukur Anda sendiri, lihat dokumentasi penulisan tugas Insp ect AI. Jika Anda menemukan tolok ukur publik yang belum tersedia di inspect-evals, Anda dapat menggunakan prompt orientasi asisten AI untuk membantu mengonversinya ke format Inspect AI.

Evaluasi agen

Tolok ukur agentic menguji kemampuan model untuk menyelesaikan tugas multi-langkah yang memerlukan penggunaan alat, perencanaan, dan penalaran berulang. Evaluasi ini mensimulasikan skenario dunia nyata di mana model harus memanggil alat, menafsirkan hasil, dan memutuskan tindakan selanjutnya.

Persyaratan titik akhir

Evaluasi agen memerlukan titik akhir yang mendukung kemampuan berikut:

  • Pemanggilan alat - Titik akhir harus mendukung pemanggilan fungsi untuk memungkinkan model memanggil alat selama evaluasi

  • Ukuran konteks besar — Multi-turn percakapan dengan hasil alat memerlukan panjang konteks yang cukup untuk mempertahankan riwayat percakapan

SageMaker Konfigurasi titik akhir inferensi

Saat menggunakan titik akhir SageMaker inferensi untuk evaluasi agen, konfigurasikan variabel lingkungan berikut pada titik akhir Anda:

Variabel lingkungan Nilai Deskripsi
ENABLE_TOOL_CALLING True Mengaktifkan dukungan pemanggilan alat pada titik akhir inferensi
CONTEXT_LENGTH Cukup untuk multi-putaran Setel ke nilai yang cukup besar untuk mengakomodasi percakapan multi-putaran dengan hasil alat

Untuk informasi tentang menyiapkan titik akhir Amazon Nova pada SageMaker Inferensi, lihat Menye barkan model Amazon Nova pada. SageMaker Untuk informasi tentang fitur dan konfigurasi wadah, lihat Fitur kontainer.

Titik akhir Amazon Bedrock

Untuk titik akhir Amazon Bedrock, pemanggilan alat didukung secara native untuk model yang kompatibel. Untuk informasi selengkapnya, lihat Penggunaan alat dengan Amazon Bedrock.

Memulai evaluasi agen

Untuk menjalankan evaluasi agen, lengkapi prasyarat berikut:

  1. Menyebarkan titik akhir dengan pemanggilan alat diaktifkan

  2. Pilih tolok ukur agentic dari repositori inspect-evals (cari tolok ukur yang menggunakan pemecah panggilan alat)

  3. Konfigurasikan resep Anda dengan max_tokens nilai yang sesuai timeout untuk interaksi multi-putaran

Titik akhir Amazon Bedrock

Contoh notebook

Notebook berikut menunjukkan menjalankan tolok ukur agen pemanggilan alat dengan wadah Inspect AI:

Untuk tolok ukur agen yang memerlukan kotak pasir Docker, gunakan Inspect AI SDK:

penting

Tolok ukur agen yang memerlukan kotak pasir Docker (seperti SWE-bench) tidak didukung dalam pengalaman wadah Inspect AI. Lingkungan SageMaker Pekerjaan Pelatihan tidak menyediakan Docker-in-Docker kemampuan. Untuk menjalankan tolok ukur ini, gunakan Inspect AI SDK pada lingkungan komputasi dengan akses Docker (misalnya, instans Amazon EC2 atau SageMaker notebook dengan Docker diinstal).

Pemecahan masalah

Bagian ini memberikan solusi untuk masalah umum saat menjalankan evaluasi dengan wadah Inspect AI.

Tip iterasi cepat

Sebelum mengirimkan Pekerjaan Pel SageMaker atihan, uji tolok ukur Anda secara lokal dengan Inspect AI SDK. Jalan inspect eval my_benchmark.py kan pada mesin lokal Anda untuk memvalidasi definisi tugas, dependensi, dan logika penilaian sebelum berjalan dalam skala besar.

InsufficientInstanceCapacity kesalahan

Kesalahan ini terjadi ketika AWS tidak memiliki kapasitas yang cukup untuk jenis instans yang diminta di Wilayah Anda.

  • Coba jenis instans yang berbeda, atau kirimkan pekerjaan di Wil AWS ayah lain

  • Gunakan jenis instance yang berbeda (misalnya, ml.m5.xlarge bukanml.m5.large)

  • Coba kembali permintaan setelah beberapa menit

AccessDenied kesalahan

Jika pekerjaan pelatihan gagal dengan kesalahan akses ditolak, verifikasi hal berikut:

  • Peran ARN dalam konfigurasi pekerjaan Anda benar

  • Kebijakan kepercayaan memungkinkan sagemaker.amazonaws.com untuk mengambil peran

  • Pengguna atau peran Anda memiliki iam:PassRole izin untuk peran eksekusi

  • Peran eksekusi memiliki izin untuk mengakses bucket S3, titik akhir inferensi, atau model Amazon Bedrock

Pembuatan titik akhir gagal

Saat menggunakan cleanup_endpoint: true dengan pembuatan titik akhir otomatis, masalah berikut mungkin terjadi:

Kesalahan Solusi
ResourceLimitExceeded Meminta peningkatan kuota layanan untuk jenis instans inferensi di Wilayah Anda
OutOfMemoryError Gunakan tipe instance inferensi yang lebih besar atau kurangi ukuran model
Salah model_s3_uri Verifikasi jalur S3 mengarah ke direktori artefak model yang valid
URI gambar inferensi yang salah Verifikasi URI gambar benar untuk Wilayah dan kerangka model Anda
Endpoint macet dalam Membuat Periksa CloudWatch Log untuk titik akhir. Model tersebut mungkin gagal dalam pemeriksaan kesehatan. Tingkatkan MaxRuntimeInSeconds jika titik akhir membutuhkan lebih banyak waktu.

Membersihkan sumber daya terkelola secara manual

Dengan titik akhir terkelola diaktifkan, informasi sumber daya terkelola CloudWatch dicatat dengan istilah INFRA filter. Log menyertakan AWS CLI perintah untuk pembersihan manual jika wadah tidak dapat menyelesaikan pembongkaran. Hanya jalankan langkah-langkah penghentian manual setelah pekerjaan tidak lagi dalam keadaan berjalan.

Contoh keluaran log:

[WARNING] [INFRA] Managed SMI resources created; auto-deleted on normal completion or stop. If this job is force-killed or stopped mid-creation, delete them manually: aws sagemaker delete-endpoint --endpoint-name inspectlens-ep-1787856688 --region us-east-1 aws sagemaker delete-endpoint-config --endpoint-config-name inspectlens-config-1787856688 --region us-east-1 aws sagemaker delete-model --model-name inspectlens-model-1787856688 --region us-east-1

Setelah penghentian pekerjaan secara manual melalui stop-training-job, wadah melakukan pembersihan sumber daya terkelola dengan upaya terbaik dalam masa tenggang 120 detik. Jika sumber daya tidak dapat dibersihkan, pekerjaan berakhir dengan status kesalahan. Jika pembersihan selesai dengan sukses, pekerjaan berakhir dalam keadaan berhenti.

HuggingFace batas waktu unduhan

Jika tolok ukur yang mengunduh kumpulan data dari HuggingFace Hub habis waktu, setel variabel HF_HUB_DOWNLOAD_TIMEOUT lingkungan ke nilai yang lebih tinggi (dalam detik):

--environment '{"HF_HUB_DOWNLOAD_TIMEOUT": "600"}'

Konflik ketergantungan tolok ukur

Jika benchmark gagal karena konflik ketergantungan dengan paket pra-instal, buat sebuah pyproject.toml di direktori benchmark dengan batasan versi eksplisit. Wadah menginstal dependensi benchmark secara terpisah untuk meminimalkan konflik.

Skor Eval terlihat salah

Jika skor evaluasi tidak terduga rendah atau tidak konsisten, periksa pengaturan berikut dalam resep Anda:

  • suhu — Disetel ke 0.0 untuk hasil deterministik dan dapat direproduksi

  • max_tokens — Pastikan nilainya cukup besar bagi model untuk menyelesaikan responsnya

  • completion_mode — Untuk model dasar (non-obrolan), atur resep Anda untuk menggunakan prompt gaya penyel completion_mode: true esaian alih-alih format obrolan

Privasi data

Data evaluasi Anda ditangani secara berbeda tergantung pada penyedia inferensi yang Anda gunakan.

SageMaker titik akhir

Saat Anda menggunakan titik akhir SageMaker Inferensi, semua data tetap berada di dalam titik akhir Anda Akun AWS. Permintaan evaluasi dan respons model tidak dikirim ke luar akun Anda dan tidak digunakan untuk meningkatkan AWS layanan. Tidak diperlukan kebijakan opt-out.

Amazon Bedrock

Saat Anda menggunakan Amazon Bedrock sebagai penyedia inferensi, data Anda tunduk pada Kebijakan Layanan AWS Opt-Out AI. Untuk mencegah data Anda digunakan untuk meningkatkan layanan AWS AI, aktifkan kebijakan opt-out di tingkat AWS Organisasi. Untuk informasi selengkapnya, lihat Kebijakan opt-out layanan AI.

Penyedia inferensi Opt-out diperlukan Rincian
SageMaker titik akhir Tidak Data tetap ada di akun Anda. Tidak tercakup oleh kebijakan pengecualian AI.
Amazon Bedrock Ya Aktif AWS kan Opt-Out Kebijakan Layanan AI di tingkat Organisasi untuk mencegah penggunaan data untuk peningkatan layanan.