Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
XGBoostalgoritma dengan Amazon SageMaker
The XGBoost
-
Penanganannya yang kuat dari berbagai tipe data, hubungan, distribusi.
-
Berbagai hiperparameter yang dapat Anda sesuaikan.
Anda dapat menggunakan XGBoost untuk regresi, klasifikasi (biner dan multiclass), dan masalah peringkat.
Anda dapat menggunakan rilis baru XGBoost algoritma sebagai:
-
Algoritma SageMaker bawaan Amazon.
-
Kerangka kerja untuk menjalankan skrip pelatihan di lingkungan lokal Anda.
Implementasi ini memiliki footprint memori yang lebih kecil, logging yang lebih baik, validasi hyperparameter yang lebih baik, dan set metrik yang lebih besar daripada versi aslinya. Ini menyediakan XGBoost estimator
yang menjalankan skrip pelatihan di XGBoost lingkungan yang dikelola. Rilis saat ini SageMaker XGBoost didasarkan pada XGBoost versi asli 1.0, 1.2, 1.3, 1.5, dan 1.7.
Untuk informasi selengkapnya tentang SageMaker XGBoost algoritme Amazon, lihat posting blog berikut:
Versi yang didukung
-
Mode kerangka kerja (sumber terbuka): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1
-
Modus algoritma: 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1
Awas
Karena kapasitas komputasi yang diperlukan, versi 1.7-1 tidak SageMaker XGBoost kompatibel dengan GPU instance dari keluarga instans P2 untuk pelatihan atau inferensi.
penting
Saat Anda mengambil SageMaker XGBoost gambarURI, jangan gunakan :latest
atau :1
untuk URI tag gambar. Anda harus menentukan salah satu Versi yang didukung untuk memilih XGBoost kontainer SageMaker -managed dengan versi XGBoost paket asli yang ingin Anda gunakan. Untuk menemukan versi paket yang dimigrasikan ke dalam SageMaker XGBoost container, lihat Docker Registry Paths dan Example Code. Kemudian pilih Anda Wilayah AWS, dan arahkan ke bagian XGBoost(algoritma).
Awas
Versi XGBoost 0.90 tidak digunakan lagi. Dukungan untuk pembaruan keamanan atau perbaikan bug untuk XGBoost 0,90 dihentikan. Kami sangat menyarankan Anda meningkatkan XGBoost versi ke salah satu versi yang lebih baru.
catatan
XGBoostv1.1 tidak didukung pada SageMaker. XGBoost1.1 memiliki kemampuan rusak untuk menjalankan prediksi ketika input pengujian memiliki lebih sedikit fitur daripada data pelatihan dalam LIBSVM input. Kemampuan ini telah dipulihkan di XGBoost v1.2. Pertimbangkan untuk menggunakan SageMaker XGBoost 1.2-2 atau yang lebih baru.
catatan
Anda dapat menggunakan XGBoost v1.0-1, tetapi tidak didukung secara resmi.
EC2rekomendasi contoh untuk XGBoost algoritma
SageMaker XGBoostdukungan CPU dan GPU pelatihan dan inferensi. Rekomendasi instans tergantung pada kebutuhan pelatihan dan inferensi, serta versi XGBoost algoritme. Pilih salah satu opsi berikut untuk informasi lebih lanjut:
Pelatihan
SageMaker XGBoostAlgoritma mendukung CPU dan GPU melatih.
CPUpelatihan
SageMaker XGBoost1.0-1 atau sebelumnya hanya menggunakan kereta. CPUs Ini adalah algoritma yang terikat memori (sebagai lawan dari compute-bound). Jadi, instance komputasi tujuan umum (misalnya, M5) adalah pilihan yang lebih baik daripada instance yang dioptimalkan komputasi (misalnya, C4). Selanjutnya, kami menyarankan Anda memiliki memori total yang cukup dalam instance yang dipilih untuk menyimpan data pelatihan. Ini mendukung penggunaan ruang disk untuk menangani data yang tidak sesuai dengan memori utama. Ini adalah hasil dari out-of-core fitur yang tersedia dengan modus input libsvm. Meski begitu, menulis file cache ke disk memperlambat waktu pemrosesan algoritma.
GPUpelatihan
SageMaker XGBoostversi 1.2-2 atau yang lebih baru mendukung GPU pelatihan. Meskipun biaya per instans lebih tinggi, GPUs latih lebih cepat, membuatnya lebih hemat biaya.
SageMaker XGBoostversi 1.2-2 atau yang lebih baru mendukung keluarga instance P2, P3, G4dn, dan G5. GPU
SageMaker XGBoostversi 1.7-1 atau yang lebih baru mendukung keluarga instance P3, G4dn, dan G5. GPU Perhatikan bahwa karena persyaratan kapasitas komputasi, versi 1.7-1 atau yang lebih baru tidak mendukung keluarga instans P2.
Untuk memanfaatkan GPU pelatihan:
-
Tentukan jenis instance sebagai salah satu GPU instance (misalnya, P3)
-
Setel
tree_method
hyperparameter kegpu_hist
dalam skrip yang ada XGBoost
Pelatihan terdistribusi
SageMaker XGBoostdukungan CPU dan GPU contoh untuk pelatihan terdistribusi.
CPUPelatihan terdistribusi
Untuk menjalankan CPU pelatihan pada beberapa instance, atur instance_count
parameter untuk estimator ke nilai yang lebih besar dari satu. Data input harus dibagi antara jumlah total instance.
Bagilah data masukan di seluruh instance
Bagilah data input menggunakan langkah-langkah berikut:
-
Pecah data input menjadi file yang lebih kecil. Jumlah file harus setidaknya sama dengan jumlah instance yang digunakan untuk pelatihan terdistribusi. Menggunakan beberapa file yang lebih kecil sebagai lawan dari satu file besar juga mengurangi waktu pengunduhan data untuk pekerjaan pelatihan.
-
Saat membuat Anda TrainingInput
, atur parameter distribusi ke ShardedByS3Key
. Dengan ini, setiap instance mendapat sekitar 1/n dari jumlah file di S3 jika ada n instance yang ditentukan dalam pekerjaan pelatihan.
GPUPelatihan terdistribusi
Anda dapat menggunakan pelatihan terdistribusi baik dengan single- GPU atau multi- GPU instance.
Pelatihan terdistribusi dengan GPU contoh tunggal
SageMaker XGBoostversi 1.2-2 hingga 1.3-1 hanya mendukung pelatihan instans tunggal. GPU Ini berarti bahwa bahkan jika Anda memilih multi- GPU instance, hanya satu GPU yang digunakan per instance.
Anda harus membagi data input Anda antara jumlah total instance jika:
-
Anda menggunakan XGBoost versi 1.2-2 hingga 1.3-1.
-
Anda tidak perlu menggunakan multi- GPU instance.
Untuk informasi selengkapnya, lihat Bagilah data masukan di seluruh instance.
catatan
Versi 1.2-2 hingga 1.3-1 SageMaker XGBoost hanya menggunakan satu GPU per instance bahkan jika Anda memilih multi- instance. GPU
Pelatihan terdistribusi dengan multi GPU instans
Dimulai dengan versi 1.5-1, SageMaker XGBoost menawarkan GPU pelatihan terdistribusi dengan Dask.
Berlatih dengan Dask menggunakan langkah-langkah berikut:
Entah menghilangkan
distribution
parameter di Anda TrainingInputatau mengaturnya ke FullyReplicated
.Saat mendefinisikan hyperparameters Anda, atur
use_dask_gpu_training
ke."true"
penting
Pelatihan terdistribusi dengan Dask hanya mendukung CSV dan format input Parket. Jika Anda menggunakan format data lain seperti LIBSVM atauPROTOBUF, pekerjaan pelatihan gagal.
Untuk data Parket, pastikan bahwa nama kolom disimpan sebagai string. Kolom yang memiliki nama tipe data lain akan gagal dimuat.
penting
Pelatihan terdistribusi dengan Dask tidak mendukung mode pipa. Jika mode pipa ditentukan, pekerjaan pelatihan gagal.
Ada beberapa pertimbangan yang harus diperhatikan saat berlatih SageMaker XGBoost dengan Dask. Pastikan untuk membagi data Anda menjadi file yang lebih kecil. Dask membaca setiap file Parket sebagai partisi. Ada pekerja Dask untuk setiap orangGPU. Akibatnya, jumlah file harus lebih besar dari jumlah total GPUs (jumlah instance* jumlah GPUs per instance). Memiliki jumlah file yang sangat besar juga dapat menurunkan kinerja. Untuk informasi selengkapnya, lihat Praktik Terbaik Dask
Variasi dalam output
tree_method
Hyperparameter yang ditentukan menentukan algoritma yang digunakan untuk XGBoost pelatihan. Metode pohonapprox
, hist
dan semuanya gpu_hist
merupakan metode perkiraan dan menggunakan sketsa untuk perhitungan kuantil. Untuk informasi selengkapnya, lihat Metode Pohon
Inferensi
SageMaker XGBoostdukungan CPU dan GPU contoh untuk inferensi. Untuk informasi tentang jenis instance untuk inferensi, lihat Jenis Instance SageMaker Amazon Amazon