View a markdown version of this page

Siapkan konfigurasi beban kerja untuk rekomendasi inferensi AI generatif - Amazon SageMaker AI

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

Siapkan konfigurasi beban kerja untuk rekomendasi inferensi AI generatif

Konfigurasi beban kerja menentukan pola lalu lintas dan parameter benchmark yang digunakan SageMaker AI saat mengevaluasi model atau titik akhir Anda. Anda membuat konfigurasi beban kerja sebelum menjalankan pekerjaan rekomendasi atau pekerjaan benchmark. Konfigurasi beban kerja yang sama dapat digunakan kembali di beberapa pekerjaan.

Anda dapat menentukan beban kerja Anda dengan dua cara:

  • Spesifikasi sebaris. Tentukan distribusi token dan parameter lalu lintas secara langsung dalam panggilan API.

  • Dataset dari Amazon S3. Berikan kumpulan data representatif dari permintaan nyata menggunakan DatasetConfig parameter.

Buat konfigurasi beban kerja dengan parameter inline

Gunakan parameter inline untuk menentukan distribusi token saat Anda tidak memiliki kumpulan data yang representatif.

Python (boto3)

import boto3 import json client = boto3.client("sagemaker", region_name="us-west-2") workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150, "output_tokens_mean": 150, "output_tokens_stddev": 50, }, } response = client.create_ai_workload_config( AIWorkloadConfigName="my-workload-config", AIWorkloadConfigs={ "WorkloadSpec": {"Inline": json.dumps(workload_spec)} }, ) print(response["AIWorkloadConfigArn"])

AWS CLI

aws sagemaker create-ai-workload-config \ --ai-workload-config-name "my-workload-config" \ --ai-workload-configs '{"WorkloadSpec": {"Inline": "{\"benchmark\": {\"type\": \"aiperf\"}, \"parameters\": {\"prompt_input_tokens_mean\": 550, \"output_tokens_mean\": 150}}"}}' \ --region us-west-2

Membuat konfigurasi beban kerja dengan dataset

Jika Anda memiliki kumpulan data representatif dari permintaan nyata, berikan melalui Amazon S3 menggunakan parameter dengan DatasetConfig InputDataConfig saluran.

response = client.create_ai_workload_config( AIWorkloadConfigName="my-dataset-workload", DatasetConfig={ "InputDataConfig": [ { "ChannelName": "traffic", "DataSource": { "S3DataSource": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET/datasets/traffic-trace/" } } } ] }, AIWorkloadConfigs={ "WorkloadSpec": {"Inline": json.dumps(workload_spec)} }, )

Secara default, prompt sintetis dihasilkan. Anda juga dapat menggunakan kumpulan data publik atau menyediakan kumpulan data khusus dari Amazon S3.

Konfigurasi beban kerja untuk pembandingan

Saat membuat konfigurasi beban kerja untuk membandingkan titik akhir yang ada, Anda dapat menentukan parameter tambahan seperti tokenizer, konkurensi, jumlah permintaan, dan tingkat permintaan.

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "tokenizer": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "concurrency": 1, "request_count": 10, "streaming": True, "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150, "output_tokens_mean": 50, "output_tokens_stddev": 10, "request_rate": 1.0, "benchmark_duration": 60, }, "tooling": {"api_standard": "openai", "version": "0.6.0"}, }

Kelola konfigurasi beban kerja

Gunakan operasi berikut untuk mengelola konfigurasi beban kerja Anda.

# List workload configurations response = client.list_ai_workload_configs(MaxResults=10) for config in response["AIWorkloadConfigs"]: print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}") # Describe a workload configuration response = client.describe_ai_workload_config( AIWorkloadConfigName="my-workload-config" ) # Delete a workload configuration client.delete_ai_workload_config( AIWorkloadConfigName="my-workload-config" )

Referensi spesifikasi beban kerja

Bagian ini menyediakan skema lengkap untuk dokumen JSON spesifikasi beban kerja yang Anda lewati di WorkloadSpec.Inline bidang saat membuat konfigurasi beban kerja.

Sintaksis

Berikut ini adalah contoh representatif dari spesifikasi beban kerja dengan parameter yang umum digunakan. Semua parameter didokumentasikan dalam tabel referensi di bawah ini.

{ "benchmark": { "type": "aiperf" }, "parameters": { "prompt_input_tokens_mean": 550, "prompt_input_tokens_stddev": 150.0, "output_tokens_mean": 150, "output_tokens_stddev": 50.0, "concurrency": 10, "request_count": 100, "request_rate": 5.0, "benchmark_duration": 120, "streaming": true, "tokenizer": "meta-llama/Llama-3.2-1B" }, "secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" }, "tooling": { "api_standard": "openai" } }

Kunci spesifikasi beban kerja

Spesifikasi beban kerja berisi kunci tingkat atas berikut. Kunci yang tidak diketahui ditolak.

patokan

Pemetaan yang diperlukan. Mengidentifikasi alat benchmarking yang akan digunakan.

benchmark/type

Wajib. Mesin benchmark. Satu-satunya nilai yang valid adalah aiperf.

parameter

Pemetaan opsional. Parameter benchmark diteruskan ke mesin AiPerf. Nama parameter yang tidak diketahui ditolak. Semua parameter adalah opsional kecuali dinyatakan lain.

Distribusi token

prompt_input_tokens_mean

Integer. Jumlah rata-rata token input per permintaan untuk pembuatan prompt sintetis. Alias:synthetic_input_tokens_mean,isl.

prompt_input_tokens_stddev

Mengapung. Standar deviasi jumlah token masukan. Alias:synthetic_input_tokens_stddev,isl_stddev.

output_tokens_mean

Integer. Rata-rata jumlah token keluaran per permintaan. Alias:prompt_output_tokens_mean,osl.

output_tokens_stddev

Mengapung. Standar deviasi jumlah token keluaran. Alias:prompt_output_tokens_stddev,osl_stddev.

Pembentukan lalu lintas

concurrency

Integer. Jumlah permintaan bersamaan untuk dikirim selama benchmark.

request_count

Integer. Jumlah total permintaan untuk dikirim. Alias:num_requests.

request_rate

Mengapung. Target permintaan per detik.

benchmark_duration

Integer. Durasi benchmark dalam hitungan detik.

max_concurrency

Integer. Jumlah maksimum permintaan bersamaan yang diizinkan.

request_rate_mode

String. Permintaan pola kedatangan. Alias:arrival_pattern.

arrival_smoothness

Mengapung. Mengontrol kesibukan kedatangan permintaan. Nilai yang lebih tinggi menghasilkan lalu lintas yang lebih lancar. Alias:vllm_burstiness.

prefill_concurrency

Integer. Jumlah permintaan prefill bersamaan.

Umum

streaming

Boolean. Apakah akan menggunakan respons streaming. Default: true.

tokenizer

Tali. HuggingFace nama model atau jalur direktori lokal untuk tokenizer yang digunakan untuk menghitung token. Contoh:meta-llama/Llama-3.2-1B.

hf_token

String. Token akses Hugging Face untuk mengunduh model dan tokenizer yang terjaga keamanannya. Alias:HF_TOKEN. Untuk nilai sensitif, gunakan secrets bagian alih-alih meneruskan token dalam teks biasa.

request_timeout_seconds

Integer. Batas waktu dalam hitungan detik untuk permintaan individu.

benchmark_grace_period

Integer. Masa tenggang dalam hitungan detik setelah benchmark selesai untuk memungkinkan permintaan dalam penerbangan selesai.

extra_inputs

String. JSON-encoded Masukan tambahan untuk disertakan dalam setiap payload permintaan.

random_seed

Integer. Benih untuk pembuatan angka acak. Default: 42.

verbose

Boolean. Aktifkan pencatatan verbose. Default: false.

num_conversations

Integer. Jumlah percakapan multi-putaran untuk disimulasikan. Alias:conversation_num,num_sessions.

model_selection_strategy

String. Strategi untuk memilih model ketika beberapa model tersedia di titik akhir.

Pemanasan

Parameter pemanasan mengontrol fase pemanasan opsional yang berjalan sebelum tolok ukur yang diukur. Ini memunculkan cache server model dan kompilasi JIT.

warmup_duration

Integer. Durasi fase pemanasan dalam hitungan detik.

warmup_request_count

Integer. Jumlah permintaan pemanasan. Alias:num_warmup_requests.

warmup_concurrency

Integer. Tingkat konkurensi selama pemanasan.

warmup_prefill_concurrency

Integer. Isi konkurensi selama pemanasan.

warmup_request_rate

Mengapung. Tingkat permintaan selama pemanasan.

warmup_arrival_pattern

String. Pola kedatangan selama pemanasan.

warmup_grace_period

Mengapung. Masa tenggang dalam hitungan detik setelah pemanasan selesai.

num_warmup_sessions

Integer. Jumlah sesi pemanasan.

Dataset

public_dataset

String. Nama kumpulan data publik yang akan digunakan untuk petunjuk benchmark alih-alih pembuatan sintetis.

custom_dataset_type

String. Format kumpulan data khusus yang disediakan melalui Amazon S3.

input_file

String. Jalur ke file dataset input di dalam wadah benchmark. Saat Anda memberikan kumpulan data melalui DatasetConfig parameter, data dipasang di/opt/ml/input/data/{ChannelName}/. Gunakan parameter ini untuk menunjuk ke file tertentu di dalam jalur pemasangan itu.

Input gambar

Parameter untuk benchmarking model multimodal yang menerima input gambar.

image_width_mean

Mengapung. Lebar rata-rata gambar sintetis dalam piksel.

image_width_stddev

Mengapung. Standar deviasi lebar gambar.

image_height_mean

Mengapung. Rata-rata tinggi gambar sintetis dalam piksel.

image_height_stddev

Mengapung. Standar deviasi tinggi gambar.

image_batch_size

Integer. Jumlah gambar per permintaan. Alias:batch_size_image.

image_format

String. Format gambar (misalnya,png,jpeg).

Masukan video

Parameter untuk benchmarking model multimodal yang menerima input video.

video_batch_size

Integer. Jumlah video per permintaan. Alias:batch_size_video.

video_duration

Mengapung. Durasi video sintetis dalam hitungan detik.

video_fps

Integer. Bingkai per detik untuk video sintetis.

video_width

Integer. Lebar video sintetis dalam piksel.

video_height

Integer. Ketinggian video sintetis dalam piksel.

video_synth_type

String. Jenis generasi video sintetis.

video_format

String. Format wadah video.

video_codec

String. Codec video.

video_audio_sample_rate

Integer. Kecepatan sampel audio dalam Hz.

video_audio_num_channels

Integer. Jumlah saluran audio.

video_audio_codec

String. Codec audio.

video_audio_depth

String. Kedalaman bit audio.

rahasia

Pemetaan opsional. Gunakan bagian ini untuk meneruskan nilai sensitif (seperti token akses Hugging Face) dengan AWS mereferensikan rahasia Secrets Manager alih-alih memasukkannya sebagai plaintext. parameters

Setiap kunci adalah nama parameter, dan nilainya adalah ARN AWS rahasia di Secrets Manager. Pada waktu mulai pekerjaan, layanan menyelesaikan rahasia dan menyuntikkan nilai ke dalam lingkungan benchmark.

"secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" }

perkakas

Pemetaan opsional. Menentukan standar API dan versi alat.

tooling/api_standard

Tidak wajib. Standar API yang digunakan oleh endpoint. Misalnya, openai.

tooling/version

Tidak wajib. Versi alat benchmarking. Default ke versi terbaru yang tersedia.