Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara Amazon SageMaker AI Memberikan Informasi Pelatihan
Bagian ini menjelaskan bagaimana SageMaker AI membuat informasi pelatihan, seperti data pelatihan, hyperparameter, dan informasi konfigurasi lainnya, tersedia untuk wadah Docker Anda.
Saat mengirim CreateTrainingJob permintaan ke SageMaker AI untuk memulai pelatihan model, Anda menentukan jalur Amazon Elastic Container Registry (Amazon ECR) dari gambar Docker yang berisi algoritma pelatihan. Anda juga menentukan lokasi Amazon Simple Storage Service (Amazon S3) tempat data pelatihan disimpan dan parameter spesifik algoritme. SageMaker AI membuat informasi ini tersedia untuk wadah Docker sehingga algoritma pelatihan Anda dapat menggunakannya. Bagian ini menjelaskan bagaimana kami membuat informasi ini tersedia untuk wadah Docker Anda. Untuk informasi tentang membuat pekerjaan pelatihan, lihatCreateTrainingJob. Untuk informasi selengkapnya tentang cara wadah SageMaker AI mengatur informasi, lihatSageMaker Toolkit Pelatihan dan Inferensi.
Topik
Hyperparameter
SageMaker AI membuat hyperparameter dalam CreateTrainingJob permintaan tersedia di wadah Docker dalam file. /opt/ml/input/config/hyperparameters.json
Berikut ini adalah contoh konfigurasi hyperparameter hyperparameters.json untuk menentukan num_round dan eta hyperparameter dalam CreateTrainingJob operasi untuk XGBoost.
{ "num_round": "128", "eta": "0.001" }
Untuk daftar lengkap hyperparameter yang dapat digunakan untuk algoritma XGBoost bawaan SageMaker AI, lihat Hyperparameter XGBoost.
Hyperparameter yang dapat Anda setel bergantung pada algoritma yang Anda latih. Untuk daftar hyperparameter yang tersedia untuk algoritma bawaan SageMaker AI, temukan mereka tercantum di Hyperparameter di bawah tautan algoritma di Gunakan Algoritma atau SageMaker Pre-trained Model AI Built-in Amazon.
Variabel lingkungan
SageMaker AI menetapkan variabel lingkungan berikut dalam wadah Anda:
-
TRAINING_JOB_NAME — Ditentukan dalam parameter permintaan.
TrainingJobNameCreateTrainingJob -
TRAINING_JOB_ARN — Nama Sumber Daya Amazon (ARN) dari pekerjaan pelatihan dikembalikan sebagai respons.
TrainingJobArnCreateTrainingJob -
Semua variabel lingkungan ditentukan dalam parameter Lingkungan dalam
CreateTrainingJobpermintaan.
Konfigurasi Data Masukan
SageMaker AI membuat informasi saluran data dalam InputDataConfig parameter dari CreateTrainingJob permintaan Anda tersedia dalam /opt/ml/input/config/inputdataconfig.json file di wadah Docker Anda.
Misalnya, Anda menentukan tiga saluran data (train,evaluation, danvalidation) dalam permintaan Anda. SageMaker AI menyediakan JSON berikut:
{ "train" : {"ContentType": "trainingContentType", "TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"}, "evaluation" : {"ContentType": "evalContentType", "TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"}, "validation" : {"TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"} }
catatan
SageMaker AI hanya menyediakan informasi yang relevan tentang setiap saluran data (misalnya, nama saluran dan jenis konten) ke wadah, seperti yang ditunjukkan pada contoh sebelumnya. S3DistributionTypeakan diatur FullyReplicated seolah-olah Anda menentukan EFS atau FSxLustre sebagai sumber data input.
Data Pelatihan
TrainingInputModeParameter dalam AlgorithmSpecification CreateTrainingJob permintaan menentukan bagaimana dataset pelatihan tersedia untuk wadah Anda. Mode input berikut tersedia.
-
FilemodeJika Anda menggunakan
Filemode sebagaiTrainingInputModenilai Anda, SageMaker AI menetapkan parameter berikut di wadah Anda.-
TrainingInputModeParameter Anda ditulisinputdataconfig.jsonsebagai “File”. -
Direktori saluran data Anda ditulis ke
/opt/ml/input/data/.channel_name
Jika Anda menggunakan
Filemode, SageMaker AI membuat direktori untuk setiap saluran. Misalnya, jika Anda memiliki tiga saluran bernamatraining,validation, dantesting, SageMaker AI membuat tiga direktori berikut dalam wadah Docker Anda:-
/opt/ml/input/data/training -
/opt/ml/input/data/validation -
/opt/ml/input/data/testing
Filemode juga mendukung sumber data berikut.-
Amazon Simple Storage Service (Amazon S3)
-
Amazon Elastic File System (Amazon EFS)
-
Amazon FSx for Lustre
catatan
Saluran yang menggunakan sumber data sistem file seperti Amazon EFS dan Amazon FSx harus menggunakan
Filemode. Dalam hal ini, jalur direktori yang disediakan di saluran dipasang di/opt/ml/input/data/.channel_name -
-
FastFilemodeJika Anda menggunakan
FastFilemode sebagai milik AndaTrainingInputNodeParameter, SageMaker AI menetapkan parameter berikut di wadah Anda.-
Mirip dengan
FileFastFilemode, dalam mode,TrainingInputModeparameter Anda ditulisinputdataconfig.jsonsebagai “File”. -
Direktori saluran data Anda ditulis ke
/opt/ml/input/data/.channel_name
FastFilemode mendukung sumber data berikut.-
Amazon S3
Jika Anda menggunakan
FastFilemode, direktori saluran dipasang dengan izin baca-saja.Secara historis,
Filemode mendahuluiFastFilemode. Untuk memastikan kompatibilitas mundur, algoritma yang mendukungFilemode juga dapat bekerja dengan mulus denganFastFilemodeTrainingInputModeselama parameter diatur keFiledalaminputdataconfig.json..catatan
Saluran yang menggunakan
FastFilemode harus menggunakan “S3DataTypeS3Prefix”.FastFilemode menyajikan tampilan folder yang menggunakan garis miring maju (/) sebagai pembatas untuk mengelompokkan objek Amazon S3 ke dalam folder.S3Uriawalan tidak boleh sesuai dengan nama folder parSIAL. Misalnya, jika kumpulan data Amazon S3 berisis3://amzn-s3-demo-bucket/train-01/data.csv, maka keduanya tidak diperbolehkans3://amzn-s3-demo-bucket/trainatau tidaks3://amzn-s3-demo-bucket/train-01diizinkan sebagai awS3Urialan.Garis miring ke depan disarankan untuk menentukan saluran yang sesuai dengan folder. Misalnya,
s3://amzn-s3-demo-bucket/train-01/saluran untuktrain-01folder. Tanpa garis miring ke depan, saluran akan menjadi ambigu jika ada folders3://amzn-s3-demo-bucket/train-011/atau file lain.s3://amzn-s3-demo-bucket/train-01.txt/ -
-
Pipemode-
TrainingInputModeparameter ditulis keinputdataconfig.json: “Pipa” -
Direktori saluran data dalam wadah Docker:
/opt/ml/input/data/channel_name_epoch_number -
Sumber data yang didukung: Amazon S3
Anda perlu membaca dari pipa terpisah untuk setiap saluran. Misalnya, jika Anda memiliki tiga saluran bernama
training,validation, dantesting, Anda perlu membaca dari pipa berikut:-
/opt/ml/input/data/training_0, /opt/ml/input/data/training_1, ... -
/opt/ml/input/data/validation_0, /opt/ml/input/data/validation_1, ... -
/opt/ml/input/data/testing_0, /opt/ml/input/data/testing_1, ...
Baca pipa secara berurutan. Misalnya, jika Anda memiliki saluran yang disebut
training, baca pipa dalam urutan ini:-
Buka
/opt/ml/input/data/training_0dalam mode baca dan baca sampai akhir file (EOF) atau, jika Anda selesai dengan zaman pertama, tutup file pipa lebih awal. -
Setelah menutup file pipa pertama, cari
/opt/ml/input/data/training_1dan membacanya sampai Anda menyelesaikan zaman kedua, dan seterusnya.
Jika file untuk zaman tertentu belum ada, kode Anda mungkin perlu mencoba lagi sampai pipa dibuat. Tidak ada batasan pengurutan di seluruh jenis saluran. Misalnya, Anda dapat membaca beberapa zaman untuk
trainingsaluran dan hanya mulai membacavalidationsaluran ketika Anda siap. Atau, Anda dapat membacanya secara bersamaan jika algoritma Anda mengharuskannya.Untuk contoh notebook Jupyter yang menunjukkan cara menggunakan mode Pipe saat membawa wadah Anda sendiri, lihat Mem bawa algoritma mode pipa Anda sendiri ke Amazon AI. SageMaker
-
SageMaker Pelatihan model AI mendukung bucket direktori S3 Express One Zone berkinerja tinggi sebagai lokasi input data untuk mode file, mode file cepat, dan mode pipa. Untuk menggunakan S3 Express One Zone, masukkan lokasi bucket direktori S3 Express One Zone alih-alih bucket tujuan umum Amazon S3. Berikan ARN untuk peran IAM dengan kebijakan kontrol akses dan izin yang diperlukan. Lihat AmazonSageMakerFullAccesspolicy untuk detailnya. Anda hanya dapat mengenkripsi data keluaran SageMaker AI Anda dalam bucket direktori dengan enkripsi sisi server dengan kunci terkelola Amazon S3 ()SSE-S3. Server-side enkripsi dengan AWS KMS kunci (SSE-KMS) saat ini tidak didukung untuk menyimpan data keluaran SageMaker AI dalam bucket direktori. Untuk informasi selengkapnya, lihat S3 Express One Zone.
Konfigurasi Pelatihan Terdistribusi
Jika Anda melakukan pelatihan terdistribusi dengan beberapa wadah, SageMaker AI membuat informasi tentang semua wadah tersedia dalam /opt/ml/input/config/resourceconfig.json file.
Untuk mengaktifkan komunikasi antar kontainer, file JSON ini berisi informasi untuk semua kontainer. SageMaker AI membuat file ini tersedia untuk kedua algoritma File dan Pipe mode. File menyediakan informasi berikut:
-
current_host—Nama wadah saat ini di jaringan kontainer. Misalnya,algo-1. Nilai host dapat berubah kapan saja. Jangan menulis kode dengan nilai spesifik untuk variabel ini. -
hosts—Daftar nama semua wadah di jaringan kontainer, diurutkan secara leksikografis. Misalnya,["algo-1", "algo-2", "algo-3"]untuk cluster tiga simpul. Kontainer dapat menggunakan nama-nama ini untuk menangani kontainer lain di jaringan kontainer. Nilai host dapat berubah kapan saja. Jangan menulis kode dengan nilai spesifik untuk variabel-variabel ini. -
network_interface_name—Nama antarmuka jaringan yang diekspos ke wadah Anda. Misalnya, kontainer yang menjalankan Message Passing Interface (MPI) dapat menggunakan informasi ini untuk mengatur nama antarmuka jaringan. -
Jangan gunakan informasi dalam
/etc/hostnameatau/etc/hostskarena mungkin tidak akurat. -
Informasi nama host mungkin tidak segera tersedia untuk wadah algoritma. Sebaiknya tambahkan kebijakan coba ulang pada operasi resolusi nama host saat node tersedia di cluster.
Berikut ini adalah contoh file pada node 1 dalam cluster tiga simpul:
{ "current_host": "algo-1", "hosts": ["algo-1","algo-2","algo-3"], "network_interface_name":"eth1" }