

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# XGBoost algoritma dengan Amazon SageMaker AI
<a name="xgboost"></a>

[XGBoost](https://github.com/dmlc/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. XGBoost Algoritma 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 bawaan Amazon SageMaker AI.
+ 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 SageMaker AI saat ini XGBoost didasarkan pada XGBoost versi asli 1.0, 1.2, 1.3, 1.5, 1.7 dan 3.0.

Untuk informasi selengkapnya tentang XGBoost algoritme Amazon SageMaker AI, lihat posting blog berikut:
+ [Memperkenalkan wadah XGBoost algoritme Amazon SageMaker AI sumber terbuka](https://aws.amazon.com/blogs/machine-learning/introducing-the-open-source-amazon-sagemaker-xgboost-algorithm-container/)
+ [Amazon SageMaker AI XGBoost sekarang menawarkan pelatihan GPU yang didistribusikan sepenuhnya](https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-xgboost-now-offers-fully-distributed-gpu-training/)

## Versi yang didukung
<a name="xgboost-supported-versions"></a>

Untuk detail selengkapnya, lihat [kebijakan dukungan](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-support-policy.html#pre-built-containers-support-policy-ml-framework) kami.
+ Mode kerangka kerja (sumber terbuka): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5
+ Modus algoritma: 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

**Awas**  
Karena kapasitas komputasi yang diperlukan, SageMaker AI versi 3.0-5 tidak XGBoost kompatibel dengan instans GPU dari keluarga instans P3 untuk pelatihan atau inferensi.

**Awas**  
Karena paket yang kompatibel, versi 3.0-5 SageMaker AI XGBoost tidak mendukung SageMaker debugger.

**Awas**  
Karena kapasitas komputasi yang diperlukan, SageMaker AI versi 1.7-1 tidak XGBoost kompatibel dengan instans GPU dari keluarga instans P2 untuk pelatihan atau inferensi.

**Awas**  
Mode Isolasi Jaringan: Jangan meng-upgrade pip di luar versi 25.2. Versi yang lebih baru mungkin mencoba mengambil setuptools dari PyPI selama instalasi modul.

**penting**  
Saat Anda mengambil URI XGBoost gambar SageMaker AI, jangan gunakan `:latest` atau `:1` untuk tag URI gambar. Anda harus menentukan salah satu XGBoost wadah yang SageMaker dikelola AI dengan versi XGBoost paket asli yang ingin Anda gunakan. [Versi yang didukung](#xgboost-supported-versions) Untuk menemukan versi paket yang dimigrasikan ke XGBoost kontainer SageMaker AI, lihat [Docker Registry Paths dan Example](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) 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**  
XGBoost v1.1 tidak didukung pada SageMaker AI. XGBoost 1.1 memiliki kemampuan rusak untuk menjalankan prediksi ketika input pengujian memiliki lebih sedikit fitur daripada data pelatihan dalam input LIBSVM. Kemampuan ini telah dipulihkan di XGBoost v1.2. Pertimbangkan untuk menggunakan SageMaker AI XGBoost 1.2-2 atau yang lebih baru.

**catatan**  
Anda dapat menggunakan XGBoost v1.0-1, tetapi tidak didukung secara resmi.

## Rekomendasi instans EC2 untuk algoritma XGBoost
<a name="Instance-XGBoost"></a>

SageMaker AI XGBoost mendukung pelatihan dan inferensi CPU dan GPU. Rekomendasi instans tergantung pada kebutuhan pelatihan dan inferensi, serta versi XGBoost algoritme. Pilih salah satu opsi berikut untuk informasi lebih lanjut:
+ [Pelatihan CPU](#Instance-XGBoost-training-cpu)
+ [Pelatihan GPU](#Instance-XGBoost-training-gpu)
+ [Pelatihan CPU terdistribusi](#Instance-XGBoost-distributed-training-cpu)
+ [Pelatihan GPU terdistribusi](#Instance-XGBoost-distributed-training-gpu)
+ [Inferensi](#Instance-XGBoost-inference)

### Pelatihan
<a name="Instance-XGBoost-training"></a>

 XGBoost Algoritma SageMaker AI mendukung pelatihan CPU dan GPU.

#### Pelatihan CPU
<a name="Instance-XGBoost-training-cpu"></a>

SageMaker AI XGBoost 1.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. 

#### Pelatihan GPU
<a name="Instance-XGBoost-training-gpu"></a>

SageMaker AI XGBoost versi 1.2-2 atau yang lebih baru mendukung pelatihan GPU. Meskipun biaya per instans lebih tinggi, GPUs latih lebih cepat, membuatnya lebih hemat biaya. 

SageMaker AI XGBoost versi 1.2-2 atau yang lebih baru mendukung keluarga instans GPU P2, P3, G4dn, dan G5.

SageMaker AI XGBoost versi 1.7-1 atau yang lebih baru mendukung keluarga instans GPU P3, G4dn, dan G5. Perhatikan bahwa karena persyaratan kapasitas komputasi, versi 1.7-1 atau yang lebih baru tidak mendukung keluarga instans P2.

SageMaker AI XGBoost versi 3.0-5 atau yang lebih baru mendukung keluarga instance GPU G4dn dan G5. Perhatikan bahwa karena persyaratan kapasitas komputasi, versi 3.0-5 atau yang lebih baru tidak mendukung keluarga instans P3.

Untuk memanfaatkan pelatihan GPU:
+ Tentukan jenis instance sebagai salah satu instance GPU (misalnya, G4dn) 
+ Setel `tree_method` hyperparameter ke `gpu_hist` dalam skrip yang ada XGBoost 

### Pelatihan terdistribusi
<a name="Instance-XGBoost-distributed-training"></a>

SageMaker AI XGBoost mendukung instans CPU dan GPU untuk pelatihan terdistribusi.

#### Pelatihan CPU terdistribusi
<a name="Instance-XGBoost-distributed-training-cpu"></a>

Untuk menjalankan pelatihan CPU 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
<a name="Instance-XGBoost-distributed-training-divide-data"></a>

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.

1. Saat membuat Anda [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html), 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.

#### Pelatihan GPU terdistribusi
<a name="Instance-XGBoost-distributed-training-gpu"></a>

Anda dapat menggunakan pelatihan terdistribusi dengan instans GPU tunggal atau multi-GPU.

**Pelatihan terdistribusi dengan instans GPU tunggal**

SageMaker AI XGBoost versi 1.2-2 hingga 1.3-1 hanya mendukung pelatihan instans GPU tunggal. Ini berarti bahwa bahkan jika Anda memilih instance multi-GPU, 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 instance multi-GPU.

 Untuk informasi selengkapnya, lihat [Bagilah data masukan di seluruh instance](#Instance-XGBoost-distributed-training-divide-data).

**catatan**  
Versi 1.2-2 hingga 1.3-1 SageMaker AI XGBoost hanya menggunakan satu GPU per instans bahkan jika Anda memilih instans multi-GPU.

**Pelatihan terdistribusi dengan instans multi-GPU**

[Dimulai dengan versi 1.5-1, SageMaker AI XGBoost menawarkan pelatihan GPU terdistribusi dengan Dask.](https://www.dask.org/) Dengan Dask Anda dapat menggunakan semua GPUs saat menggunakan satu atau lebih instance multi-GPU. Dask juga berfungsi saat menggunakan instance GPU tunggal. 

Berlatih dengan Dask menggunakan langkah-langkah berikut:

1. Entah menghilangkan `distribution` parameter di Anda [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html)atau mengaturnya ke`FullyReplicated`.

1. Saat mendefinisikan hyperparameters Anda, atur `use_dask_gpu_training` ke. `"true"`

**penting**  
Pelatihan terdistribusi dengan Dask hanya mendukung format input CSV dan Parket. Jika Anda menggunakan format data lain seperti LIBSVM atau PROTOBUF, 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 melatih SageMaker AI 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 GPU. 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](https://docs.dask.org/en/stable/best-practices.html).

#### Variasi dalam output
<a name="Instance-XGBoost-distributed-training-output"></a>

`tree_method`Hyperparameter yang ditentukan menentukan algoritma yang digunakan untuk XGBoost pelatihan. Metode pohon`approx`, `hist` dan semuanya `gpu_hist` merupakan metode perkiraan dan menggunakan sketsa untuk perhitungan kuantil. Untuk informasi selengkapnya, lihat [Metode Pohon](https://xgboost.readthedocs.io/en/stable/treemethod.html) 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
<a name="Instance-XGBoost-inference"></a>

SageMaker AI XGBoost mendukung instance CPU dan GPU untuk inferensi. Untuk informasi tentang jenis instans untuk inferensi, lihat [Jenis Instance Amazon SageMaker AI ML](https://aws.amazon.com/sagemaker/pricing/).