

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

# Konfigurasikan output inferensi dalam wadah yang dihasilkan
<a name="autopilot-automate-model-development-container-output"></a>

Autopilot menghasilkan daftar yang diurutkan. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html) Ini dapat digunakan untuk membangun model untuk diterapkan dalam pipa pembelajaran mesin. Model ini dapat digunakan untuk hosting online dan inferensi. 

Pelanggan dapat membuat daftar definisi kontainer inferensi dengan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html)API. Daftar definisi wadah inferensi yang mewakili kandidat terbaik juga tersedia dalam [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html)tanggapan.

## Definisi wadah inferensi untuk jenis masalah regresi dan klasifikasi
<a name="autopilot-problem-type-container-output"></a>

Autopilot menghasilkan wadah inferensi khusus untuk [mode pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode) dan [jenis masalah pekerjaan](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types).

### Definisi wadah untuk mode optimasi hyperparameter (HPO)
<a name="autopilot-problem-type-container-output-hpo"></a>
+ **Regresi**: HPO menghasilkan dua kontainer:

  1. Wadah rekayasa fitur yang mengubah fitur asli menjadi fitur yang dapat dilatih oleh algoritme regresi.

  1. Wadah algoritme yang mengubah fitur dan menghasilkan skor regresi untuk kumpulan data.
+ **Klasifikasi**: HPO menghasilkan tiga kontainer:

  1. Wadah rekayasa fitur yang mengubah fitur asli menjadi fitur yang dapat dilatih oleh algoritma klasifikasi.

  1. Sebuah wadah algoritma yang menghasilkan `predicted_label` dengan probabilitas tertinggi. Wadah ini juga dapat menghasilkan berbagai probabilitas yang terkait dengan hasil klasifikasi dalam respons inferensi.

  1. Sebuah wadah rekayasa fitur yang melakukan pasca-pemrosesan prediksi algoritma. Misalnya, ia dapat melakukan transformasi terbalik pada label yang diprediksi dan mengubahnya ke label asli. 

### Definisi wadah untuk mode ansambel
<a name="autopilot-problem-type-container-output-ensemble"></a>

Dalam mode ansambel, tipe masalah regresi dan klasifikasi hanya memiliki satu wadah inferensi. Wadah inferensi ini mengubah fitur dan menghasilkan prediksi berdasarkan jenis masalah. 

## Respons inferensi per jenis masalah
<a name="autopilot-problem-type-inference-response"></a>

### Respons inferensi untuk model klasifikasi
<a name="autopilot-problem-type-inference-response-classification"></a>

Untuk wadah inferensi klasifikasi, Anda dapat memilih konten respons inferensi dengan menggunakan empat kunci yang telah ditentukan:
+ `predicted_label`: Label dengan probabilitas tertinggi untuk memprediksi label yang benar, sebagaimana ditentukan oleh Autopilot.
+ `probability`: 
  + **Model HPO:** Probabilitas `True` kelas untuk klasifikasi biner. Probabilitas `predicted_label` untuk klasifikasi multiclass.
  + **Model ansambel:** Probabilitas klasifikasi biner dan multikelas. `predicted_label`
+ `probabilities`: Daftar probabilitas untuk semua kelas yang sesuai.
+ `labels`: Daftar semua label.

Misalnya, untuk masalah klasifikasi biner, jika Anda melewatkan kunci respons inferensi `['predicted_label', 'probability', 'probabilities', 'labels']` dan respons keluaran muncul sebagai`[1, 0.1, "[0.9, 0.1]", "['1', '0']"]`, Anda harus menafsirkannya sebagai berikut:

1. `predicted_label`sama `1` karena label “1" memiliki probabilitas yang lebih tinggi (`0.9`dalam hal ini).

1. Untuk model HPO, `probability` sama dengan `0.1` probabilitas `positive_class` (`0`dalam hal ini) yang dipilih oleh Autopilot.

   Untuk model Ensemble, `probability` sama dengan `0.9` yang merupakan probabilitas dari. `predicted_label`

1. `probabilities`daftar `probability` setiap label di`labels`.

1. `labels`adalah label unik dalam kumpulan data, di mana label kedua (“0" dalam kasus ini) `positive_class` dipilih oleh Autopilot.

Secara default, kontainer inferensi dikonfigurasi untuk menghasilkan hanya file. `predicted_label` Untuk memilih konten inferensi tambahan, Anda dapat memperbarui `inference_response_keys` parameter untuk menyertakan hingga tiga variabel lingkungan ini:
+ `SAGEMAKER_INFERENCE_SUPPORTED`: Ini diatur untuk memberikan petunjuk kepada Anda tentang konten apa yang didukung setiap wadah.
+ `SAGEMAKER_INFERENCE_INPUT`: Ini harus diatur ke kunci yang diharapkan kontainer dalam muatan input.
+ `SAGEMAKER_INFERENCE_OUTPUT`: Ini harus diisi dengan set kunci yang dikeluarkan kontainer.

### Respons inferensi untuk model klasifikasi dalam mode HPO
<a name="autopilot-problem-type-inference-response-classification-hpo"></a>

Bagian ini menunjukkan cara mengonfigurasi respons inferensi dari model klasifikasi menggunakan mode optimasi hyperparameter (HPO).

Untuk memilih konten respons inferensi dalam mode HPO: Tambahkan `SAGEMAKER_INFERENCE_OUTPUT` variabel `SAGEMAKER_INFERENCE_INPUT` dan ke wadah kedua dan ketiga yang dihasilkan dalam mode HPO untuk masalah klasifikasi.

Kunci yang didukung oleh wadah kedua (algoritma) adalah predicted\_label, probabilitas, dan probabilitas. Perhatikan `labels` bahwa sengaja tidak ditambahkan ke`SAGEMAKER_INFERENCE_SUPPORTED`.

Kunci yang didukung oleh wadah model klasifikasi ketiga adalah`predicted_label`,`labels`,`probability`, dan`probabilities`. Oleh karena itu, `SAGEMAKER_INFERENCE_SUPPORTED` lingkungan menyertakan nama-nama kunci ini.

Untuk memperbarui definisi wadah inferensi untuk menerima `predicted_label` dan`probability`, gunakan contoh kode berikut.

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

Contoh kode berikut memperbarui definisi wadah inferensi untuk menerima`predicted_label`,`probabilities`, dan`labels`. Jangan meneruskan `labels` ke wadah kedua (wadah algoritma), karena dihasilkan oleh wadah ketiga secara independen. 

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probabilities,labels'})
```

Bagian yang dapat dilipat berikut memberikan contoh kode untuk AWS SDK untuk Python (Boto3) dan untuk SageMaker SDK untuk Python. Setiap bagian menunjukkan cara memilih konten tanggapan inferensi dalam mode HPO untuk contoh kode masing-masing.

#### AWS SDK untuk Python (Boto3)
<a name="autopilot-problem-type-inference-response-classification-hpo-boto3"></a>

```
import boto3

sm_client = boto3.client('sagemaker', region_name='{{<Region>}}')

role = '{{<IAM role>}}'
input_data = '{{<S3 input uri>}}'
output_path = '{{<S3 output uri>}}'

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='{{<AutoML Job Name>}}')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['{{CandidateName}}']

best_candidate_containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})

# create model
reponse = sm_client.create_model(
    ModelName = '{{<Model Name>}}',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='{{<Transform Job Name>}}',
    ModelName='{{<Model Name>}}',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': '{{S3Prefix}}',
                'S3Uri': {{input_data}}
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': {{output_path}},
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': '{{ml.m4.xlarge}}',
        'InstanceCount': 1,
    },
)
```

#### SageMaker SDK untuk Python
<a name="autopilot-problem-type-inference-response-classification-hpo-sdk"></a>

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='{{<AutoML Job Name>}}')
aml_best_model = aml.create_model(name='{{<Model Name>}}',
                                  candidate=None,
                                  inference_response_keys**=['probabilities', 'labels'])

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='{{ml.m5.xlarge}}',
                                            instance_count=1,)

aml_transformer.transform('{{<S3 input uri>}}',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='{{<Transform Job Name>}}',
                          wait=True)
```

### Respons inferensi untuk model klasifikasi dalam mode ansambel
<a name="autopilot-problem-type-inference-response-classification-ensemble"></a>

Bagian ini menunjukkan cara mengonfigurasi respons inferensi dari model klasifikasi menggunakan mode ansambel. 

Dalam **mode ansambel**, untuk memilih konten respons inferensi, perbarui variabel lingkungan. `SAGEMAKER_INFERENCE_OUTPUT`

Kunci yang didukung oleh wadah model klasifikasi adalah`predicted_label`,`labels`,`probability`, dan`probabilities`. Kunci-kunci ini termasuk dalam `SAGEMAKER_INFERENCE_SUPPORTED` lingkungan.

Untuk memperbarui definisi kontainer inferensi untuk menerima `predicted_label` dan`probability`, lihat contoh kode berikut.

```
containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

Bagian yang dapat dilipat berikut memberikan contoh kode untuk memilih konten respons inferensi dalam mode ansambel. Contoh menggunakan AWS SDK untuk Python (Boto3).

#### AWS SDK untuk Python (Boto3)
<a name="autopilot-problem-type-inference-response-classification-ensembling-boto3"></a>

```
import boto3
sm_client = boto3.client('sagemaker', region_name='{{<Region>}}')

role = '{{<IAM role>}}'
input_data = '{{<S3 input uri>}}'
output_path = '{{<S3 output uri>}}' 

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='{{<AutoML Job Name>}}')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['{{CandidateName}}']

*best_candidate_containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
*
# create model
reponse = sm_client.create_model(
    ModelName = '{{<Model Name>}}',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='{{<Transform Job Name>}}',
    ModelName='{{<Model Name>}}',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': '{{S3Prefix}}',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': '{{ml.m4.xlarge}}',
        'InstanceCount': 1,
    },
)
```

Bagian collapsible berikut memberikan contoh kode yang identik dengan SageMaker SDK untuk contoh Python untuk HPO. Ini termasuk untuk kenyamanan Anda.

#### SageMaker SDK untuk Python
<a name="autopilot-problem-type-inference-response-classification-ensembling-sdk"></a>

Contoh kode HPO berikut menggunakan SageMaker SDK untuk Python.

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='<AutoML Job Name>')
aml_best_model = aml.create_model(name='<Model Name>',
                                  candidate=None,
                                  *inference_response_keys**=['probabilities', 'labels'])*

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='ml.m5.xlarge',
                                            instance_count=1,)

aml_transformer.transform('<S3 input uri>',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='<Transform Job Name>',
                          wait=True)
```