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
Pen dekatan evaluasi sebelumnya (berdasarkan lighteval
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_urimenunjuk ke jalur pos pemeriksaan.
Cara kerjanya
Anda memberikan dua input ke wadah:
-
File konfigurasi YAML (resep) yang mendefinisikan penyedia inferensi, tolok ukur, dan parameter evaluasi
-
File benchmark (skrip Python dengan
@taskdekorator) 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
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 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
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:
-
Startup - Inisialisasi kontainer dan validasi konfigurasi
-
Unduhan benchmark - Mengunduh file benchmark dan menginstal dependensi
-
Pengaturan titik akhir — Membuat atau menghubungkan ke titik akhir inferensi
-
Evalu asi — Menjalankan tugas benchmark dengan indikator kemajuan
-
Unggah hasil — Menulis hasil ke S3 dan secara opsional mencatat ke MLFlow
-
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
-
Instal ekstensi dari pasar VS Code (cari “Periksa AI”)
-
Di Inspect Activity Bar, cari panel Logs dan pilih ikon folder
-
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
Untuk menulis tolok ukur Anda sendiri, lihat dokumentasi penulisan tugas Insp ect 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:
-
Menyebarkan titik akhir dengan pemanggilan alat diaktifkan
-
Pilih tolok ukur agentic dari repositori inspect-evals
(cari tolok ukur yang menggunakan pemecah panggilan alat) -
Konfigurasikan resep Anda dengan
max_tokensnilai yang sesuaitimeoutuntuk interaksi multi-putaran
Titik akhir Amazon Bedrock
-
Untuk pengaturan dan penerapan lengkap, lihat titik akhir Amazon Bedrock.
-
Untuk dukungan panggilan alat, lihat bagian pemanggilan alat sisi klien di Penggunaan alat dengan Amazon Bedrock.
Contoh notebook
Notebook berikut menunjukkan menjalankan tolok ukur agen pemanggilan alat dengan wadah Inspect AI:
-
tau-bench (berbasis pekerjaan)
— Mengevaluasi penalaran tambahan alat pada tugas layanan pelanggan menggunakan wadah Inspect AI
Untuk tolok ukur agen yang memerlukan kotak pasir Docker, gunakan Inspect AI SDK:
-
SWE-bench dengan Inspect AI SDK
- Evaluasi kemampuan rekayasa perangkat lunak menggunakan kotak pasir Docker
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.xlargebukanml.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.rproxy.govskope.cauntuk mengambil peran -
Pengguna atau peran Anda memiliki
iam:PassRoleizin 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.0untuk 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: trueesaian 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. |