

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

# Forecast model Autopilot yang digunakan
<a name="timeseries-forecasting-deploy-models"></a>

Setelah melatih model Anda menggunakan AutoML API, Anda dapat menerapkannya untuk peramalan real-time atau berbasis batch. 

AutoML API melatih beberapa kandidat model untuk data deret waktu Anda dan memilih model peramalan optimal berdasarkan metrik sasaran target Anda. Setelah kandidat model Anda dilatih, Anda dapat menemukan kandidat terbaik dalam respons [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) di [BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-CandidateName).

Untuk mendapatkan prediksi menggunakan model berkinerja terbaik ini, Anda dapat mengatur titik akhir untuk mendapatkan perkiraan secara interaktif atau menggunakan perkiraan batch untuk membuat prediksi pada batch pengamatan.

**Pertimbangan-pertimbangan**
+ Saat memberikan data input untuk peramalan, skema data Anda harus tetap sama dengan yang digunakan untuk melatih model Anda, termasuk jumlah kolom, header kolom, dan tipe data. Anda dapat memperkirakan item yang ada atau baru IDs dalam rentang waktu yang sama atau berbeda untuk memprediksi periode waktu yang berbeda.
+ Model peramalan memprediksi titik horizon perkiraan di masa depan yang ditentukan dalam permintaan input saat pelatihan, yaitu dari tanggal akhir *target hingga tanggal akhir* *target\$1cakrawala perkiraan*. Untuk menggunakan model untuk memprediksi tanggal tertentu, Anda harus memberikan data dalam format yang sama dengan data input asli, memperpanjang hingga tanggal *akhir target* yang ditentukan. Dalam skenario ini, model akan mulai memprediksi dari tanggal akhir target baru.

  Misalnya, jika dataset Anda memiliki data bulanan dari Januari hingga Juni dengan cakrawala Forecast 2, maka model akan memprediksi nilai target untuk 2 bulan ke depan, yaitu Juli dan Agustus. Jika pada bulan Agustus, Anda ingin memprediksi untuk 2 bulan ke depan, kali ini data input Anda harus dari Januari hingga Agustus dan model akan memprediksi untuk 2 bulan ke depan (September, Oktober).
+ Saat memperkirakan titik data future, tidak ada minimum yang ditetapkan untuk jumlah data historis yang akan disediakan. Sertakan data yang cukup untuk menangkap pola musiman dan berulang dalam deret waktu Anda.

**Topics**
+ [Peramalan waktu nyata](timeseries-forecasting-realtime.md)
+ [Peramalan Batch](timeseries-forecasting-batch.md)

# Peramalan waktu nyata
<a name="timeseries-forecasting-realtime"></a>

Peramalan waktu nyata berguna ketika Anda perlu menghasilkan prediksi on-the-fly, seperti untuk aplikasi yang memerlukan tanggapan segera atau saat memperkirakan titik data individual.

Dengan menerapkan model AutoML Anda sebagai titik akhir waktu nyata, Anda dapat menghasilkan perkiraan sesuai permintaan dan meminimalkan latensi antara menerima data baru dan mendapatkan prediksi. Ini membuat peramalan waktu nyata cocok untuk aplikasi yang membutuhkan kemampuan peramalan langsung, dipersonalisasi, atau didorong oleh peristiwa.

Untuk peramalan waktu nyata, kumpulan data harus menjadi bagian dari kumpulan data input. Titik akhir waktu nyata memiliki ukuran data input sekitar 6MB dan batasan batas waktu respons 60 detik. Kami merekomendasikan membawa satu atau beberapa item sekaligus.

Anda dapat menggunakan SageMaker APIs untuk mengambil kandidat terbaik dari pekerjaan AutoML dan kemudian membuat titik akhir AI SageMaker menggunakan kandidat tersebut.

Atau, Anda dapat memilih opsi penerapan otomatis saat membuat eksperimen Autopilot Anda. Untuk informasi tentang pengaturan penerapan otomatis model, lihat[Cara mengaktifkan penyebaran otomatis](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-auto-model-deployment).

**Untuk membuat titik akhir SageMaker AI menggunakan kandidat model terbaik Anda:**

1. 

**Ambil detail pekerjaan AutoML.**

   Contoh AWS CLI perintah berikut menggunakan [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API untuk mendapatkan rincian pekerjaan AutoML, termasuk informasi tentang kandidat model terbaik.

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**Ekstrak definisi wadah dari [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers)untuk kandidat model terbaik.**

   Definisi kontainer adalah lingkungan kontainer yang digunakan untuk menampung model SageMaker AI terlatih untuk membuat prediksi.

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
     --auto-ml-job-name job-name 
     --region region \
     --query 'BestCandidate.InferenceContainers[0]' \
     --output json
   ```

   Perintah ini mengekstrak definisi wadah untuk kandidat model terbaik dan menyimpannya dalam `BEST_CANDIDATE` variabel.

1. 

**Buat model SageMaker AI menggunakan definisi kontainer kandidat terbaik.**

   Gunakan definisi container dari langkah sebelumnya untuk membuat model SageMaker AI dengan menggunakan [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API.

   ```
   aws sagemaker create-model \
               --model-name 'your-candidate-name>' \
               --primary-container "$BEST_CANDIDATE"
               --execution-role-arn 'execution-role-arn>' \
               --region 'region>
   ```

   `--execution-role-arn`Parameter menentukan peran IAM yang diasumsikan SageMaker AI saat menggunakan model untuk inferensi. Untuk detail tentang izin yang diperlukan untuk peran ini, lihat [CreateModel API: Izin Peran Eksekusi](https://docs.aws.amazon.com/).

1. 

**Buat konfigurasi titik akhir SageMaker AI menggunakan model.**

    AWS CLI Perintah berikut menggunakan [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)API untuk membuat konfigurasi endpoint.

   ```
   aws sagemaker create-endpoint-config \
     --production-variants file://production-variants.json \
     --region 'region'
   ```

   Dimana `production-variants.json` file berisi konfigurasi model, termasuk nama model dan jenis instance.
**catatan**  
Sebaiknya gunakan instans [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) untuk peramalan waktu nyata.

   ```
   [
       {
         "VariantName": "variant-name",
         "ModelName": "model-name",
         "InitialInstanceCount": 1,
         "InstanceType": "m5.12xlarge"
       }
     ]
   }
   ```

1. 

**Buat titik akhir SageMaker AI menggunakan konfigurasi titik akhir.**

    AWS CLI Contoh berikut menggunakan [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)API untuk membuat titik akhir.

   ```
   aws sagemaker create-endpoint \
               --endpoint-name 'endpoint-name>' \
               --endpoint-config-name 'endpoint-config-name' \
               --region 'region'
   ```

   Periksa kemajuan penerapan titik akhir inferensi real-time Anda dengan menggunakan API. [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) Lihat AWS CLI perintah berikut sebagai contoh.

   ```
   aws sagemaker describe-endpoint \
               --endpoint-name 'endpoint-name' \
               --region 'region'
   ```

   Setelah `EndpointStatus` perubahan`InService`, titik akhir siap digunakan untuk inferensi waktu nyata.

1. 

**Panggil titik akhir SageMaker AI untuk membuat prediksi.**

   ```
   aws sagemaker invoke-endpoint \
               --endpoint-name 'endpoint-name' \ 
               --region 'region' \
               --body file://input-data-in-bytes.json \
               --content-type 'application/json' outfile
   ```

   Dimana `input-data-in-bytes.json` file berisi data input untuk prediksi.

# Peramalan Batch
<a name="timeseries-forecasting-batch"></a>

Peramalan Batch, juga dikenal sebagai inferensi offline, menghasilkan prediksi model pada batch pengamatan. Inferensi Batch adalah pilihan yang baik untuk kumpulan data besar atau jika Anda tidak memerlukan respons langsung terhadap permintaan prediksi model.

Sebaliknya, inferensi online (inferensi waktu nyata) menghasilkan prediksi secara real time. 

Anda dapat menggunakan SageMaker APIs untuk mengambil kandidat terbaik dari pekerjaan AutoML dan kemudian mengirimkan sekumpulan data masukan untuk inferensi menggunakan kandidat tersebut.

1. 

**Ambil detail pekerjaan AutoML.**

   Contoh AWS CLI perintah berikut menggunakan [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API untuk mendapatkan rincian pekerjaan AutoML, termasuk informasi tentang kandidat model terbaik.

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**Ekstrak definisi wadah dari [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers)untuk kandidat model terbaik.**

   Definisi kontainer adalah lingkungan kontainer yang digunakan untuk menampung model SageMaker AI terlatih untuk membuat prediksi.

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
         --auto-ml-job-name job-name 
         --region region \
         --query 'BestCandidate.InferenceContainers[0]' \
         --output json
   ```

   Perintah ini mengekstrak definisi wadah untuk kandidat model terbaik dan menyimpannya dalam `BEST_CANDIDATE` variabel.

1. 

**Buat model SageMaker AI menggunakan definisi kontainer kandidat terbaik.**

   Gunakan definisi container dari langkah sebelumnya untuk membuat model SageMaker AI dengan menggunakan [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API.

   ```
   aws sagemaker create-model \
         --model-name 'model-name' \
         --primary-container "$BEST_CANDIDATE"
         --execution-role-arn 'execution-role-arn>' \
         --region 'region>
   ```

   `--execution-role-arn`Parameter menentukan peran IAM yang diasumsikan SageMaker AI saat menggunakan model untuk inferensi. Untuk detail tentang izin yang diperlukan untuk peran ini, lihat [CreateModel API: Izin Peran Eksekusi](https://docs.aws.amazon.com/).

1. 

**Buat pekerjaan transformasi batch.**

   Contoh berikut membuat pekerjaan transformasi menggunakan [CreateTransformJob](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-transform-job.html)API. 

   ```
   aws sagemaker create-transform-job \ 
          --transform-job-name 'transform-job-name' \
          --model-name 'model-name'\
          --transform-input file://transform-input.json \
          --transform-output file://transform-output.json \
          --transform-resources file://transform-resources.json \
          --region 'region'
   ```

   Input, output, dan rincian sumber daya didefinisikan dalam file JSON terpisah:
   + `transform-input.json`:

     ```
     {
       "DataSource": {
         "S3DataSource": {
           "S3DataType": "S3Prefix",
           "S3Uri": "s3://my-input-data-bucket/path/to/input/data"
         }
       },
       "ContentType": "text/csv",
       "SplitType": "None"
     }
     ```
   + `transform-output.json`:

     ```
     {
       "S3OutputPath": "s3://my-output-bucket/path/to/output",
       "AssembleWith": "Line"
     }
     ```
   + `transform-resources.json`:
**catatan**  
Sebaiknya gunakan instans [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) untuk beban kerja tujuan umum dan instance untuk tugas peramalan data besar. `m5.24xlarge`

     ```
     {
       "InstanceType": "instance-type",
       "InstanceCount": 1
     }
     ```

1. 

**Pantau kemajuan pekerjaan transformasi Anda menggunakan [DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html)API.**

   Lihat AWS CLI perintah berikut sebagai contoh.

   ```
   aws sagemaker describe-transform-job \
         --transform-job-name 'transform-job-name' \
         --region region
   ```

1. 

**Ambil output transformasi batch.**

   Setelah pekerjaan selesai, hasil prediksi tersedia di`S3OutputPath`. 

   Nama file output memiliki format berikut:`input_data_file_name.out`. Sebagai contoh, jika file input Anda`text_x.csv`, nama output akan menjadi`text_x.csv.out`.

   ```
   aws s3 ls s3://my-output-bucket/path/to/output/
   ```

Contoh kode berikut menggambarkan penggunaan AWS SDK untuk Python (boto3) dan for batch forecasting. AWS CLI 

------
#### [ AWS SDK for Python (boto3) ]

 Contoh berikut menggunakan **AWS SDK untuk Python (boto3**) untuk membuat prediksi dalam batch.

```
import sagemaker 
import boto3

session = sagemaker.session.Session()

sm_client = boto3.client('sagemaker', region_name='us-west-2')
role = 'arn:aws:iam::1234567890:role/sagemaker-execution-role'
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

best_candidate = sm_client.describe_auto_ml_job_v2(AutoMLJobName=job_name)['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

# create model
reponse = sm_client.create_model(
    ModelName = best_candidate_name,
    ExecutionRoleArn = role,
    Containers = best_candidate_containers 
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName=f'{best_candidate_name}-transform-job',
    ModelName=model_name,
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/csv",
        'SplitType': 'None'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m5.2xlarge',
        'InstanceCount': 1,
    },
)
```

Pekerjaan inferensi batch mengembalikan respons dalam format berikut.

```
{'TransformJobArn': 'arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-transform-job',
 'ResponseMetadata': {'RequestId': '659f97fc-28c4-440b-b957-a49733f7c2f2',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '659f97fc-28c4-440b-b957-a49733f7c2f2',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '96',
   'date': 'Thu, 11 Aug 2022 22:23:49 GMT'},
  'RetryAttempts': 0}}
```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. **Dapatkan definisi wadah kandidat terbaik**.

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. **Buat modelnya**.

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/tuning/flicdf10v2-dpp0-xgb/test-job1E9-244-7490a1c0/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", 
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code" 
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \
   --region 'us-west-2'
   ```

1. **Buat pekerjaan transformasi**.

   ```
   aws sagemaker create-transform-job --transform-job-name 'test-tranform-job'\
    --model-name 'test-sagemaker-model'\
    --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "SplitType": "None"
       }'\
   --transform-output '{
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line"
       }'\
   --transform-resources '{
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       }'\
   --region 'us-west-2'
   ```

1. **Periksa kemajuan pekerjaan transformasi**. 

   ```
   aws sagemaker describe-transform-job --transform-job-name  'test-tranform-job' --region us-west-2
   ```

   Berikut ini adalah respons dari pekerjaan transformasi.

   ```
   {
       "TransformJobName": "test-tranform-job",
       "TransformJobArn": "arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-tranform-job",
       "TransformJobStatus": "InProgress",
       "ModelName": "test-model",
       "TransformInput": {
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "CompressionType": "None",
           "SplitType": "None"
       },
       "TransformOutput": {
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line",
           "KmsKeyId": ""
       },
       "TransformResources": {
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       },
       "CreationTime": 1662495635.679,
       "TransformStartTime": 1662495847.496,
       "DataProcessing": {
           "InputFilter": "$",
           "OutputFilter": "$",
           "JoinSource": "None"
       }
   }
   ```

   Setelah `TransformJobStatus` perubahan`Completed`, Anda dapat memeriksa hasil inferensi di. `S3OutputPath`

------