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
DatasetConfigparameter.
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, gunakansecretsbagian 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
DatasetConfigparameter, 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.