XGBoostalgoritma dengan Amazon SageMaker - Amazon SageMaker

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(eXtreme Gradient Boosting) adalah implementasi open-source yang populer dan efisien dari algoritma gradient boosted trees. Peningkatan gradien adalah algoritma pembelajaran yang diawasi yang mencoba memprediksi variabel target secara akurat dengan menggabungkan beberapa perkiraan dari serangkaian model yang lebih sederhana. XGBoostAlgoritma berkinerja baik dalam kompetisi pembelajaran mesin karena alasan berikut:

  • 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 ke gpu_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:

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

  2. Saat membuat Anda TrainingInput, atur parameter distribusi keShardedByS3Key. 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. Dengan Dask Anda dapat menggunakan semua GPUs saat menggunakan satu atau lebih multi- GPU instance. Dask juga berfungsi saat menggunakan GPU instance tunggal.

Berlatih dengan Dask menggunakan langkah-langkah berikut:

  1. Entah menghilangkan distribution parameter di Anda TrainingInputatau mengaturnya keFullyReplicated.

  2. 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_methodHyperparameter 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 dalam XGBoost dokumentasi. Sketsa adalah algoritma perkiraan. Oleh karena itu, Anda dapat mengharapkan variasi dalam model tergantung pada faktor-faktor seperti jumlah pekerja yang dipilih untuk pelatihan terdistribusi. Signifikansi variasi bergantung pada data.

Inferensi

SageMaker XGBoostdukungan CPU dan GPU contoh untuk inferensi. Untuk informasi tentang jenis instance untuk inferensi, lihat Jenis Instance SageMaker Amazon Amazon.