Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana Amazon SageMaker Menyediakan Informasi Pelatihan
Bagian ini menjelaskan cara SageMaker membuat informasi pelatihan, seperti data pelatihan, hiperparameter, dan informasi konfigurasi lainnya, tersedia untuk wadah Docker Anda.
Saat Anda mengirim CreateTrainingJob
permintaan SageMaker untuk memulai pelatihan model, Anda menentukan jalur Amazon Elastic Container Registry (AmazonECR) dari image Docker yang berisi algoritme pelatihan. Anda juga menentukan lokasi Amazon Simple Storage Service (Amazon S3) tempat data pelatihan disimpan dan parameter khusus algoritme. SageMaker 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 SageMaker kontainer mengatur informasi, lihatSageMaker Toolkit Pelatihan dan Inferensi.
Topik
Hyperparameter
SageMaker membuat hyperparameters 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
hyperparameters dalam CreateTrainingJob
operasi untuk. XGBoost
{ "num_round": "128", "eta": "0.001" }
Untuk daftar lengkap hyperparameters yang dapat digunakan untuk XGBoost algoritma SageMaker bawaan, lihat XGBoostHyperparameters.
Hiperparameter yang dapat Anda atur bergantung pada algoritme yang Anda latih. Untuk daftar hiperparameter yang tersedia untuk algoritme SageMaker bawaan, temukan yang tercantum di Hyperparameters di bawah tautan algoritme di Gunakan Algoritma SageMaker Bawaan Amazon atau Model Pra-terlatih.
Variabel lingkungan
SageMaker menetapkan variabel lingkungan berikut dalam wadah Anda:
-
TRAINING_ JOB _ NAME — Ditentukan dalam
TrainingJobName
parameterCreateTrainingJob
permintaan. -
TRAINING_ JOB _ ARN — Nama Sumber Daya Amazon (ARN) dari pekerjaan pelatihan dikembalikan sebagai
CreateTrainingJob
tanggapan.TrainingJobArn
-
Semua variabel lingkungan ditentukan dalam parameter Lingkungan dalam
CreateTrainingJob
permintaan.
Konfigurasi Data Masukan
SageMaker membuat informasi saluran data dalam InputDataConfig
parameter dari CreateTrainingJob
permintaan Anda tersedia di /opt/ml/input/config/inputdataconfig.json
file di wadah Docker Anda.
Misalnya, Anda menentukan tiga saluran data (train
,evaluation
, danvalidation
) dalam permintaan Anda. SageMakermenyediakan yang berikutJSON:
{ "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 hanya menyediakan informasi yang relevan tentang setiap saluran data (misalnya, nama saluran dan jenis konten) ke wadah, seperti yang ditunjukkan pada contoh sebelumnya. S3DistributionType
akan diatur FullyReplicated
seolah-olah Anda menentukan EFS atau FSxLustre sebagai sumber data input.
Data Pelatihan
TrainingInputMode
Parameter dalam AlgorithmSpecification
CreateTrainingJob
permintaan menentukan bagaimana kumpulan data pelatihan tersedia untuk penampung Anda. Mode input berikut tersedia.
-
File
modusJika Anda menggunakan
File
mode sebagaiTrainingInputMode
nilai Anda, SageMaker tetapkan parameter berikut dalam wadah Anda.-
TrainingInputMode
Parameter Anda ditulisinputdataconfig.json
sebagai “File”. -
Direktori saluran data Anda ditulis ke
/opt/ml/input/data/
.channel_name
Jika Anda menggunakan
File
mode, SageMaker buat direktori untuk setiap saluran. Misalnya, jika Anda memiliki tiga saluran bernamatraining
,, danvalidation
testing
, SageMaker membuat tiga direktori berikut dalam wadah Docker Anda:-
/opt/ml/input/data/training
-
/opt/ml/input/data/validation
-
/opt/ml/input/data/testing
File
modus juga mendukung sumber data berikut.-
Amazon Simple Storage Service (Amazon S3)
-
Amazon Elastic File System (AmazonEFS)
-
Amazon FSx untuk Lustre
catatan
Saluran yang menggunakan sumber data sistem file seperti Amazon EFS dan Amazon FSx harus menggunakan
File
mode. Dalam hal ini, jalur direktori yang disediakan di saluran dipasang di/opt/ml/input/data/
.channel_name
-
-
FastFile
modusJika Anda menggunakan
FastFile
mode sebagai milik AndaTrainingInputNodeParameter
, SageMaker atur parameter berikut dalam wadah Anda.-
Mirip dengan
File
FastFile
mode, dalam mode,TrainingInputMode
parameter Anda ditulisinputdataconfig.json
sebagai “File”. -
Direktori saluran data Anda ditulis ke
/opt/ml/input/data/
.channel_name
FastFile
modus mendukung sumber data berikut.-
Amazon S3
Jika Anda menggunakan
FastFile
mode, direktori saluran dipasang dengan izin hanya-baca.Secara historis,
File
mode mendahuluiFastFile
mode. Untuk memastikan kompatibilitas mundur, algoritme yang mendukungFile
mode juga dapat bekerja dengan mulus denganFastFile
mode selamaTrainingInputMode
parameter diatur ke dalam.File
inputdataconfig.json.
catatan
Saluran yang menggunakan
FastFile
mode harus menggunakan “S3Prefix”.S3DataType
FastFile
mode menyajikan tampilan folder yang menggunakan garis miring maju (/
) sebagai pembatas untuk mengelompokkan objek Amazon S3 ke dalam folder.S3Uri
awalan tidak harus sesuai dengan nama folder sebagian. Misalnya, jika kumpulan data Amazon S3 berisis3://amzn-s3-demo-bucket/train-01/data.csv
, makas3://amzn-s3-demo-bucket/train
tidak ada yangs3://amzn-s3-demo-bucket/train-01
diizinkan sebagai awalan.S3Uri
Garis miring ke depan disarankan untuk menentukan saluran yang sesuai dengan folder. Misalnya,
s3://amzn-s3-demo-bucket/train-01/
saluran untuktrain-01
folder. Tanpa garis miring ke depan, saluran akan menjadi ambigu jika ada folder atau files3://amzn-s3-demo-bucket/train-011/
lain.s3://amzn-s3-demo-bucket/train-01.txt/
-
-
Pipe
modus-
TrainingInputMode
parameter 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_0
dalam mode baca dan baca ke end-of-file (EOF) atau, jika Anda selesai dengan epoch pertama, tutup file pipa lebih awal. -
Setelah menutup file pipa pertama, cari
/opt/ml/input/data/training_1
dan baca sampai Anda menyelesaikan epoch kedua, dan seterusnya.
Jika file untuk epoch 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
training
saluran dan hanya mulai membacavalidation
saluran saat Anda siap. Atau, Anda dapat membacanya secara bersamaan jika algoritme Anda mengharuskannya.Untuk contoh notebook Jupyter yang menunjukkan cara menggunakan mode Pipa saat membawa wadah Anda sendiri, lihat Membawa algoritme mode pipa Anda sendiri ke
Amazon. SageMaker -
SageMaker pelatihan model 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, bukan bucket tujuan umum Amazon S3. Berikan IAM peran tersebut dengan kebijakan kontrol akses dan izin yang diperlukan. ARN Lihat AmazonSageMakerFullAccesspolicyuntuk detailnya. Anda hanya dapat mengenkripsi data SageMaker keluaran dalam bucket direktori dengan enkripsi sisi server dengan kunci terkelola Amazon S3 (-S3). SSE Enkripsi sisi server dengan AWS KMS kunci (SSE-KMS) saat ini tidak didukung untuk menyimpan data SageMaker keluaran dalam bucket direktori. Untuk informasi selengkapnya, lihat S3 Express One Zone.
Konfigurasi Pelatihan Terdistribusi
Jika Anda melakukan pelatihan terdistribusi dengan beberapa kontainer, SageMaker buat informasi tentang semua kontainer tersedia dalam /opt/ml/input/config/resourceconfig.json
file.
Untuk mengaktifkan komunikasi antar kontainer, JSON file ini berisi informasi untuk semua kontainer. SageMaker membuat file ini tersedia untuk algoritme Pipe
mode File
dan keduanya. File ini memberikan informasi berikut:
-
current_host
—Nama kontainer 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 kontainer 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 terpapar ke wadah Anda. Misalnya, kontainer yang menjalankan Message Passing Interface (MPI) dapat menggunakan informasi ini untuk mengatur nama antarmuka jaringan. -
Jangan gunakan informasi di dalam
/etc/hostname
atau/etc/hosts
karena mungkin tidak akurat. -
Informasi nama host mungkin tidak segera tersedia untuk wadah algoritme. Sebaiknya tambahkan kebijakan coba lagi pada operasi resolusi nama host saat node tersedia di klaster.
Berikut ini adalah contoh file pada node 1 dalam cluster tiga node:
{ "current_host": "algo-1", "hosts": ["algo-1","algo-2","algo-3"], "network_interface_name":"eth1" }