Sesuaikan pekerjaan pelatihan Anda untuk mengakses gambar di registri Docker pribadi - Amazon SageMaker

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

Anda dapat menggunakan registri Docker pribadi alih-alih Amazon Elastic Container Registry (Amazon ECR) untuk meng-host gambar Anda untuk Pelatihan. 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 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

Buat registri Docker pribadi untuk menyimpan gambar Anda. Registri Anda harus:

Untuk informasi selengkapnya tentang membuat registri Docker, lihat Menerapkan server registri.

Konfigurasikan VPC dan SageMaker pekerjaan pelatihan Anda

SageMaker 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.

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.

Buat pekerjaan pelatihan menggunakan gambar dari registri Docker pribadi Anda

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 for 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 untuk SageMaker 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

  2. Gunakan klien Boto3 untuk membuat pekerjaan pelatihan dan meneruskan konfigurasi yang benar ke create_training_job API. Petunjuk berikut menunjukkan cara mengkonfigurasi komponen dan membuat pekerjaan pelatihan.

    1. Buat AlgorithmSpecification objek yang ingin Anda lewaticreate_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 gambar alih-alih berdasarkan nama atau tag.

    2. Tentukan nama pekerjaan pelatihan dan peran yang ingin Anda berikancreate_training_job, seperti yang ditunjukkan pada contoh kode berikut.

      training_job_name = 'private-registry-job' execution_role_arn = 'arn:aws:iam::123456789012:role/SageMakerExecutionRole'
    3. 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 peering untuk informasi lebih lanjut.

    4. 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, }
    5. 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' }
    6. Tentukan jumlah detik maksimum yang dapat dijalankan oleh pekerjaan pelatihan model seperti yang ditunjukkan pada contoh kode berikut.

      stopping_condition = { 'MaxRuntimeInSeconds': 1800 }
    7. 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)