

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

# Rencana pelatihan pemanfaatan untuk pekerjaan SageMaker pelatihan
<a name="training-plan-utilization-for-training-jobs"></a>

Anda dapat menggunakan rencana SageMaker pelatihan untuk pekerjaan pelatihan Anda dengan menentukan rencana pilihan Anda saat membuat pekerjaan pelatihan.

**catatan**  
Rencana pelatihan harus dalam `Active` status `Scheduled` atau yang akan digunakan oleh pekerjaan pelatihan.

Jika kapasitas yang diperlukan tidak segera tersedia untuk pekerjaan pelatihan, pekerjaan menunggu sampai tersedia, atau sampai `StoppingCondition` terpenuhi, atau pekerjaan telah `Pending` untuk kapasitas selama 2 hari, mana yang lebih dulu. Jika kondisi berhenti terpenuhi, pekerjaan dihentikan. Jika pekerjaan telah tertunda selama 2 hari, itu diakhiri dengan a. `InsufficientCapacityError`

**penting**  
**Proses penghentian Kapasitas Cadangan:** Anda memiliki akses penuh ke semua instans cadangan hingga 30 menit sebelum waktu akhir Kapasitas Cadangan. Jika ada 30 menit tersisa dalam Kapasitas Cadangan Anda, rencana SageMaker pelatihan memulai proses penghentian instans yang sedang berjalan dalam Kapasitas Cadangan tersebut.  
Untuk memastikan Anda tidak kehilangan kemajuan karena penghentian ini, kami sarankan untuk memeriksa pekerjaan pelatihan Anda.

## Pos pemeriksaan pekerjaan pelatihan Anda
<a name="training-jobs-checkpointing"></a>

Saat menggunakan rencana SageMaker pelatihan untuk pekerjaan SageMaker pelatihan Anda, pastikan untuk menerapkan pos pemeriksaan dalam skrip pelatihan Anda. Ini memungkinkan Anda untuk menyimpan kemajuan pelatihan Anda sebelum Kapasitas Cadangan berakhir. Checkpointing sangat penting ketika bekerja dengan kapasitas yang dicadangkan, karena memungkinkan Anda untuk melanjutkan pelatihan dari titik terakhir yang disimpan jika pekerjaan Anda terganggu antara dua kapasitas yang dicadangkan atau ketika rencana pelatihan Anda mencapai tanggal berakhirnya.

Untuk mencapai ini, Anda dapat menggunakan variabel `SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP` lingkungan. Variabel ini membantu menentukan kapan harus memulai proses checkpointing. Dengan memasukkan logika ini ke dalam skrip pelatihan Anda, Anda memastikan bahwa kemajuan model Anda disimpan pada interval yang sesuai.

Berikut adalah contoh bagaimana Anda dapat menerapkan logika checkpointing ini dalam skrip pelatihan Python Anda:

```
import os
import time
from datetime import datetime, timedelta

def is_close_to_expiration(threshold_minutes=30):
    # Retrieve the expiration timestamp from the environment variable
    expiration_time_str = os.environ.get('SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP', '0')
    
    # If the timestamp is not set (default '0'), return False
    if expiration_time_str == '0':
        return False
    
    # Convert the timestamp string (in milliseconds) to a datetime object
    expiration_time = datetime(1970, 1, 1) + timedelta(milliseconds=int(expiration_time_str))
    
    # Calculate the time difference between now and the expiration time
    time_difference = expiration_time - datetime.now()
    
    # Return True if we're within the threshold time of expiration
    return time_difference < timedelta(minutes=threshold_minutes)

def start_checkpointing():
    # Placeholder function for checkpointing logic
    print("Starting checkpointing process...")
    # TODO: Implement actual checkpointing logic here
    # For example:
    # - Save model state
    # - Save optimizer state
    # - Save current epoch and iteration numbers
    # - Save any other relevant training state

# Main training loop
num_epochs = 100
final_checkpointing_done = False
for epoch in range(num_epochs):
    # TODO: Replace this with your actual training code
    # For example:
    # - Load a batch of data
    # - Forward pass
    # - Calculate loss
    # - Backward pass
    # - Update model parameters
    
    # Check if we're close to capacity expiration and haven't done final checkpointing
    if not final_checkpointing_done and is_close_to_expiration():
        start_checkpointing()
        final_checkpointing_done = True
    
    # Simulate some training time (remove this in actual implementation)
    time.sleep(1)
print("Training completed.")
```

**catatan**  
Penyediaan pekerjaan pelatihan mengikuti urutan First-In-First-Out (FIFO), tetapi pekerjaan klaster yang lebih kecil yang dibuat kemudian mungkin diberi kapasitas sebelum pekerjaan klaster yang lebih besar dibuat sebelumnya, jika pekerjaan yang lebih besar tidak dapat dipenuhi.
SageMaker kolam hangat yang dikelola pelatihan kompatibel dengan rencana SageMaker pelatihan. Untuk penggunaan kembali cluster, Anda harus memberikan `TrainingPlanArn` nilai yang identik dalam `CreateTrainingJob` permintaan berikutnya untuk menggunakan kembali cluster yang sama.

**Topics**
+ [Pos pemeriksaan pekerjaan pelatihan Anda](#training-jobs-checkpointing)
+ [Buat pekerjaan pelatihan menggunakan konsol SageMaker AI](use-training-plan-for-training-jobs-using-console.md)
+ [Membuat pekerjaan pelatihan menggunakan API, AWS CLI, SageMaker SDK](use-training-plan-for-training-jobs-using-api-cli-sdk.md)

# Buat pekerjaan pelatihan menggunakan konsol SageMaker AI
<a name="use-training-plan-for-training-jobs-using-console"></a>

Anda dapat menggunakan rencana SageMaker pelatihan untuk pekerjaan pelatihan Anda menggunakan SageMaker AI UI. Saat membuat pekerjaan pelatihan, rencana yang tersedia disarankan kepada Anda jika pilihan instans dan wilayah Anda cocok dengan paket yang tersedia.

Untuk membuat pekerjaan pelatihan menggunakan kapasitas cadangan rencana pelatihan di SageMaker konsol:

1. Arahkan ke konsol SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Di panel navigasi kiri, pilih **Pelatihan**, lalu **Pelatihan pekerjaan**.

1. Pilih tombol **Buat pekerjaan pelatihan**.

1. Saat mengonfigurasi sumber daya untuk pekerjaan pelatihan Anda, cari bagian **Kapasitas instans**. Jika ada paket yang tersedia yang cocok dengan jenis dan wilayah instans pilihan Anda, mereka akan ditampilkan di sini. Pilih rencana pelatihan yang sesuai dengan kebutuhan kapasitas komputasi Anda.

   Jika tidak ada rencana yang sesuai, Anda dapat menyesuaikan jenis atau wilayah instans Anda, atau melanjutkan tanpa menggunakan rencana pelatihan.

1. Setelah memilih rencana pelatihan (atau memilih untuk melanjutkan tanpa satu), selesaikan sisa konfigurasi pekerjaan pelatihan Anda dan pilih **Buat pekerjaan pelatihan** untuk memulai proses.

![\[SageMaker Halaman konsol AI untuk membuat pekerjaan pelatihan baru. Halaman ini menampilkan berbagai opsi konfigurasi termasuk pengaturan pekerjaan, opsi algoritme, konfigurasi sumber daya, pemilihan rencana pelatihan, dan kondisi penghentian.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/training-plans/tp-create-training-job.png)


Tinjau dan luncurkan pekerjaan Anda. Pekerjaan Anda mulai berjalan segera setelah rencana pelatihan menjadi`Active`, kapasitas tertunda.

# Membuat pekerjaan pelatihan menggunakan API, AWS CLI, SageMaker SDK
<a name="use-training-plan-for-training-jobs-using-api-cli-sdk"></a>

Untuk menggunakan rencana SageMaker pelatihan untuk pekerjaan SageMaker pelatihan Anda, tentukan `TrainingPlanArn` parameter rencana yang diinginkan di `ResourceConfig` saat memanggil operasi [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API. Anda dapat menggunakan tepat satu rencana per pekerjaan.

**penting**  
`InstanceType`Bidang yang ditetapkan di `ResourceConfig` bagian `CreateTrainingJob` permintaan harus sesuai dengan rencana pelatihan Anda. `InstanceType`

## Jalankan pekerjaan pelatihan pada rencana menggunakan CLI
<a name="training-job-cli"></a>

Contoh berikut menunjukkan cara membuat pekerjaan SageMaker pelatihan dan mengaitkannya dengan rencana pelatihan yang disediakan menggunakan `TrainingPlanArn` atribut dalam `create-training-job` AWS CLI perintah. 

Untuk informasi selengkapnya tentang cara membuat pekerjaan pelatihan menggunakan AWS CLI [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)perintah, lihat [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-training-job.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-training-job.html).

```
# Create a training job
aws sagemaker create-training-job \
  --training-job-name training-job-name \
  ...
    
  --resource-config '{
        "InstanceType": "ml.p5.48xlarge",
        "InstanceCount": 8,
        "VolumeSizeInGB": 10,
        "TrainingPlanArn": "training-plan-arn"
        }
    }' \
    ...
```

Perintah AWS CLI contoh ini menciptakan pekerjaan pelatihan baru di SageMaker AI yang melewati rencana pelatihan dalam `--resource-config` argumen.

```
aws sagemaker create-training-job \
  --training-job-name job-name \
  --role-arn arn:aws:iam::111122223333:role/DataAndAPIAccessRole \
  --algorithm-specification '{"TrainingInputMode": "File","TrainingImage": "111122223333.dkr.ecr.us-east-1.amazonaws.com/algo-image:tag", "ContainerArguments": [" "]}' \
  --input-data-config '[{"ChannelName":"training","DataSource":{"S3DataSource":{"S3DataType":"S3Prefix","S3Uri":"s3://bucketname/input","S3DataDistributionType":"ShardedByS3Key"}}}]' \
  --output-data-config '{"S3OutputPath": "s3://bucketname/output"}' \
  --resource-config '{"VolumeSizeInGB":10,"InstanceCount":4,"InstanceType":"ml.p5.48xlarge", "TrainingPlanArn" : "arn:aws:sagemaker:us-east-1:111122223333:training-plan/plan-name"}' \
  --stopping-condition '{"MaxRuntimeInSeconds": 1800}' \
  --region us-east-1
```

Setelah membuat pekerjaan pelatihan, Anda dapat memverifikasi bahwa itu telah ditetapkan dengan benar ke rencana pelatihan dengan memanggil `DescribeTrainingJob` API.

```
aws sagemaker describe-training-job --training-job-name training-job-name
```

## Jalankan pekerjaan pelatihan pada rencana menggunakan SageMaker AI Python SDK
<a name="training-job-sdk"></a>

Atau, Anda dapat membuat pekerjaan pelatihan yang terkait dengan rencana pelatihan menggunakan [SageMaker Python](https://sagemaker.readthedocs.io/en/stable/v2.html) SDK.

Jika Anda menggunakan SageMaker Python SDK dari JupyterLab Studio untuk membuat pekerjaan pelatihan, pastikan bahwa peran eksekusi yang digunakan oleh ruang yang menjalankan JupyterLab aplikasi Anda memiliki izin yang diperlukan untuk menggunakan rencana pelatihan. SageMaker Untuk mempelajari tentang izin yang diperlukan untuk menggunakan rencana SageMaker pelatihan, lihat[IAM untuk rencana SageMaker pelatihan](training-plan-iam-permissions.md).

Contoh berikut menunjukkan cara membuat pekerjaan SageMaker pelatihan dan mengaitkannya dengan rencana pelatihan yang disediakan menggunakan `training_plan` atribut dalam `Estimator` objek saat menggunakan SageMaker Python SDK.

Untuk informasi selengkapnya tentang SageMaker Estimator, lihat [Menggunakan SageMaker estimator untuk menjalankan pekerjaan pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers-adapt-your-own-private-registry-estimator.html).

```
import sagemaker
import boto3
from sagemaker import get_execution_role
from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

# Set up the session and SageMaker client
session = boto3.Session()
region = session.region_name
sagemaker_session = session.client('sagemaker')

# Get the execution role for the training job
role = get_execution_role()

# Define the input data configuration
trainingInput = TrainingInput(
    s3_data='s3://input-path',
    distribution='ShardedByS3Key',
    s3_data_type='S3Prefix'
)

estimator = Estimator(
    entry_point='train.py',
    image_uri="123456789123.dkr.ecr.{}.amazonaws.com/image:tag",
    role=role,
    instance_count=4,
    instance_type='ml.p5.48xlarge',
    training_plan="training-plan-arn",
    volume_size=20,
    max_run=3600,
    sagemaker_session=sagemaker_session,
    output_path="s3://output-path"
)

# Create the training job
estimator.fit(inputs=trainingInput, job_name=job_name)
```

Setelah membuat pekerjaan pelatihan, Anda dapat memverifikasi bahwa itu telah ditetapkan dengan benar ke rencana pelatihan dengan memanggil `DescribeTrainingJob` API.

```
# Check job details
sagemaker_session.describe_training_job(TrainingJobName=job_name)
```