

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

# Sesuaikan pekerjaan pelatihan Anda untuk mengakses gambar di registri Docker pribadi
<a name="docker-containers-adapt-your-own-private-registry"></a>

Anda dapat menggunakan [registri Docker](https://docs.docker.com/registry/) pribadi alih-alih Amazon Elastic Container Registry (Amazon ECR) untuk meng-host gambar Anda untuk Pelatihan AI. SageMaker Petunjuk berikut menunjukkan kepada Anda cara membuat registri Docker, mengonfigurasi cloud pribadi virtual (VPC) dan pekerjaan pelatihan Anda, menyimpan gambar, dan SageMaker memberikan akses AI ke gambar pelatihan di registri docker pribadi. Instruksi ini juga menunjukkan cara menggunakan registri Docker yang memerlukan otentikasi untuk pekerjaan SageMaker pelatihan.

## Buat dan simpan gambar Anda di registri Docker pribadi
<a name="docker-containers-adapt-your-own-private-registry-prerequisites"></a>

Buat registri Docker pribadi untuk menyimpan gambar Anda. Registri Anda harus:
+ gunakan protokol [API HTTP Docker Registry](https://docs.docker.com/registry/spec/api/)
+ dapat diakses dari VPC yang sama yang ditentukan dalam [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#API_CreateTrainingJob_RequestSyntax)parameter di API. `CreateTrainingJob` Masukan `VpcConfig` saat Anda membuat pekerjaan pelatihan Anda.
+ diamankan dengan sertifikat [TLS dari otoritas sertifikat](https://aws.amazon.com/what-is/ssl-certificate/) publik yang dikenal.

Untuk informasi selengkapnya tentang membuat registri Docker, lihat [Menerapkan server registri](https://docs.docker.com/registry/deploying/).

## Konfigurasikan VPC dan SageMaker pekerjaan pelatihan Anda
<a name="docker-containers-adapt-your-own-private-registry-configure"></a>

SageMaker AI menggunakan koneksi jaringan dalam VPC Anda untuk mengakses gambar di registri Docker Anda. Untuk menggunakan gambar di registri Docker Anda untuk pelatihan, registri harus dapat diakses dari VPC Amazon di akun Anda. Untuk informasi selengkapnya, lihat [Gunakan registri Docker yang memerlukan otentikasi untuk pelatihan](docker-containers-adapt-your-own-private-registry-authentication.md).

Anda juga harus mengonfigurasi pekerjaan pelatihan Anda untuk terhubung ke VPC yang sama dengan yang dapat diakses oleh registri Docker Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Pekerjaan Pelatihan untuk Akses VPC Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-configure).

## Buat pekerjaan pelatihan menggunakan gambar dari registri Docker pribadi Anda
<a name="docker-containers-adapt-your-own-private-registry-create"></a>

Untuk menggunakan gambar dari registri Docker pribadi Anda untuk pelatihan, gunakan panduan berikut untuk mengonfigurasi gambar Anda, mengonfigurasi, dan membuat pekerjaan pelatihan. Contoh kode yang mengikuti menggunakan AWS SDK untuk Python (Boto3) klien.

1. Buat objek konfigurasi gambar pelatihan dan `Vpc` masukan `TrainingRepositoryAccessMode` bidang sebagai berikut.

   ```
   training_image_config = {
       'TrainingRepositoryAccessMode': 'Vpc'
   }
   ```
**catatan**  
Jika registri Docker pribadi Anda memerlukan otentikasi, Anda harus menambahkan `TrainingRepositoryAuthConfig` objek ke objek konfigurasi gambar pelatihan. Anda juga harus menentukan Nama Sumber Daya Amazon (ARN) dari AWS Lambda fungsi yang menyediakan kredensyal akses ke SageMaker AI menggunakan `TrainingRepositoryCredentialsProviderArn` bidang objek. `TrainingRepositoryAuthConfig` Untuk informasi lebih lanjut, lihat contoh struktur kode di bawah ini.  

   ```
   training_image_config = {
      'TrainingRepositoryAccessMode': 'Vpc',
      'TrainingRepositoryAuthConfig': {
           'TrainingRepositoryCredentialsProviderArn': '{{arn:aws:lambda:Region:Acct:function:FunctionName}}'
      }
   }
   ```

   Untuk informasi tentang cara membuat fungsi Lambda untuk menyediakan otentikasi, lihat. [Gunakan registri Docker yang memerlukan otentikasi untuk pelatihan](docker-containers-adapt-your-own-private-registry-authentication.md)

1. Gunakan klien Boto3 untuk membuat pekerjaan pelatihan dan meneruskan konfigurasi yang benar ke [create\_training\_job](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API. Petunjuk berikut menunjukkan cara mengkonfigurasi komponen dan membuat pekerjaan pelatihan.

   1. Buat `AlgorithmSpecification` objek yang ingin Anda lewati`create_training_job`. Gunakan objek konfigurasi gambar pelatihan yang Anda buat pada langkah sebelumnya, seperti yang ditunjukkan pada contoh kode berikut.

      ```
      algorithm_specification = {
         'TrainingImage': '{{myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>}}',
         'TrainingImageConfig': training_image_config,
         'TrainingInputMode': '{{File}}'
      }
      ```
**catatan**  
Untuk menggunakan versi tetap, bukan versi gambar yang diperbarui, lihat [intisari](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) gambar alih-alih berdasarkan nama atau tag.

   1. Tentukan nama pekerjaan pelatihan dan peran yang ingin Anda berikan`create_training_job`, seperti yang ditunjukkan pada contoh kode berikut. 

      ```
      training_job_name = '{{private-registry-job}}'
      execution_role_arn = '{{arn:aws:iam::123456789012:role/SageMakerExecutionRole}}'
      ```

   1. Tentukan grup keamanan dan subnet untuk konfigurasi VPC untuk pekerjaan pelatihan Anda. Registri Docker pribadi Anda harus mengizinkan lalu lintas masuk dari grup keamanan yang Anda tentukan, seperti yang ditunjukkan dalam contoh kode berikut.

      ```
      vpc_config = {
          'SecurityGroupIds': ['{{sg-0123456789abcdef0}}'],
          'Subnets': ['{{subnet-0123456789abcdef0}}','{{subnet-0123456789abcdef1}}']
      }
      ```
**catatan**  
Jika subnet Anda tidak dalam VPC yang sama dengan registri Docker pribadi Anda, Anda harus mengatur koneksi jaringan antara dua VPC. SeeConnect VPC menggunakan [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html) peering untuk informasi lebih lanjut.

   1. Tentukan konfigurasi sumber daya, termasuk instance komputasi pembelajaran mesin dan volume penyimpanan yang akan digunakan untuk pelatihan, seperti yang ditunjukkan dalam contoh kode berikut. 

      ```
      resource_config = {
          'InstanceType': '{{ml.m4.xlarge}}',
          'InstanceCount': {{1}},
          'VolumeSizeInGB': {{10}},
      }
      ```

   1. Tentukan konfigurasi data input dan output, tempat dataset pelatihan disimpan, dan di mana Anda ingin menyimpan artefak model, seperti yang ditunjukkan pada contoh kode berikut.

      ```
      input_data_config = [
          {
              "ChannelName": "training",
              "DataSource":
              {
                  "S3DataSource":
                  {
                      "S3DataDistributionType": "{{FullyReplicated}}",
                      "S3DataType": "{{S3Prefix}}",
                      "S3Uri": "{{s3://your-training-data-bucket/training-data-folder}}"
                  }
              }
          }
      ]
      
      output_data_config = {
          'S3OutputPath': '{{s3://your-output-data-bucket/model-folder}}'
      }
      ```

   1. Tentukan jumlah detik maksimum yang dapat dijalankan oleh pekerjaan pelatihan model seperti yang ditunjukkan pada contoh kode berikut.

      ```
      stopping_condition = {
          'MaxRuntimeInSeconds': {{1800}}
      }
      ```

   1. Terakhir, buat pekerjaan pelatihan menggunakan parameter yang Anda tentukan pada langkah sebelumnya seperti yang ditunjukkan pada contoh kode berikut.

      ```
      import boto3
      sm = boto3.client('sagemaker')
      try:
          resp = sm.create_training_job(
              TrainingJobName=training_job_name,
              AlgorithmSpecification=algorithm_specification,
              RoleArn=execution_role_arn,
              InputDataConfig=input_data_config,
              OutputDataConfig=output_data_config,
              ResourceConfig=resource_config,
              VpcConfig=vpc_config,
              StoppingCondition=stopping_condition
          )
      except Exception as e:
          print(f'error calling CreateTrainingJob operation: {e}')
      else:
          print(resp)
      ```