

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
<a name="generative-ai-inference-recommendations-workload-config"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-inline"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-dataset"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-benchmark"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-manage"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-reference"></a>

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

### Sintaksis
<a name="generative-ai-inference-recommendations-workload-config-syntax"></a>

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
<a name="generative-ai-inference-recommendations-workload-config-keys"></a>

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

#### patokan
<a name="workload-config-ref-benchmark"></a>

Pemetaan yang diperlukan. Mengidentifikasi alat benchmarking yang akan digunakan.

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

#### parameter
<a name="workload-config-ref-parameters"></a>

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
<a name="workload-config-ref-secrets"></a>

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
<a name="workload-config-ref-tooling"></a>

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.