Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
XGBoost algoritmo con Amazon SageMaker AI
XGBoost
-
La sua solida gestione di una varietà di tipi di dati, relazioni e distribuzioni.
-
La varietà di iperparametri che puoi ottimizzare.
È possibile utilizzarla XGBoost per problemi di regressione, classificazione (binaria e multiclasse) e classificazione.
È possibile utilizzare la nuova versione dell'algoritmo in uno dei seguenti XGBoost modi:
-
Un algoritmo integrato di Amazon SageMaker AI.
-
Un framework per eseguire script di formazione nei tuoi ambienti locali.
Questa implementazione ha un ingombro di memoria inferiore, una migliore registrazione, una migliore convalida degli iperparametri e un set di metriche più ampio rispetto alle versioni originali. Fornisce un programma XGBoost estimator
che esegue uno script di formazione in un ambiente gestito. XGBoost L'attuale versione di SageMaker AI si XGBoost basa sulle XGBoost versioni originali 1.0, 1.2, 1.3, 1.5 e 1.7.
Per ulteriori informazioni sull' XGBoost algoritmo Amazon SageMaker AI, consulta i seguenti post del blog:
Versioni supportate
-
Modalità framework (open source): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1
-
Modalità algoritmo: 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1
avvertimento
A causa della capacità di elaborazione richiesta, la versione 1.7-1 di SageMaker AI non XGBoost è compatibile con le istanze GPU della famiglia di istanze P2 per l'addestramento o l'inferenza.
Importante
Quando recuperate l'URI dell' XGBoost immagine SageMaker AI, non utilizzate o come tag URI dell'immagine. :latest
:1
È necessario specificare uno di questi Versioni supportate per scegliere il XGBoost contenitore SageMaker gestito dall'intelligenza artificiale con la versione del XGBoost pacchetto nativo che si desidera utilizzare. Per trovare la versione del pacchetto migrata nei XGBoost contenitori SageMaker AI, consulta Docker Registry Paths and Example Code. Quindi scegli il tuo Regione AWS e vai alla sezione XGBoost (algoritmo).
avvertimento
Le versioni XGBoost 0.90 sono obsolete. Il supporto per gli aggiornamenti di sicurezza o le correzioni di bug per la versione 0.90 non è più disponibile. XGBoost Ti consigliamo vivamente di aggiornare la XGBoost versione a una delle versioni più recenti.
Nota
XGBoost la v1.1 non è supportata su SageMaker AI. XGBoost 1.1 ha una capacità inferiore di eseguire la previsione quando l'input del test ha meno funzionalità rispetto ai dati di addestramento negli input LIBSVM. Questa funzionalità è stata ripristinata nella versione 1.2. XGBoost Prendi in considerazione l'utilizzo di SageMaker AI XGBoost 1.2-2 o versioni successive.
Nota
Puoi usare la XGBoost v1.0-1, ma non è supportata ufficialmente.
EC2 raccomandazione di istanza per l'algoritmo XGBoost
SageMaker L'intelligenza artificiale XGBoost supporta l'addestramento e l'inferenza di CPU e GPU. I consigli sulle istanze dipendono dalle esigenze di formazione e inferenza, nonché dalla versione dell'algoritmo. XGBoost Per ulteriori informazioni, consulta una delle seguenti opzioni:
Addestramento
L' XGBoost algoritmo SageMaker AI supporta l'addestramento di CPU e GPU.
Addestramento della CPU
SageMaker AI XGBoost 1.0-1 o versioni precedenti utilizzano solo i treni. CPUs Poiché si tratta di un algoritmo basato su memoria e non su calcolo, un'istanza di calcolo a scopo generico (ad esempio, M5) rappresenta una scelta migliore rispetto a un'istanza ottimizzata per il calcolo (ad esempio, C4). Inoltre, consigliamo di disporre di memoria sufficiente nelle istanze selezionate per conservare i dati di addestramento. Supporta l'uso dello spazio su disco per gestire dati che non rientrano nella memoria principale. Questo è il risultato della out-of-core funzionalità disponibile con la modalità di input libsvm. Tuttavia, la scrittura di file di cache su disco rallenta il tempo di elaborazione dell'algoritmo.
Addestramento della GPU
SageMaker XGBoost La versione AI 1.2-2 o successiva supporta l'addestramento tramite GPU. Nonostante i maggiori costi per istanza, i corsi di GPUs formazione sono più rapidi, il che li rende più convenienti.
SageMaker XGBoost La versione AI 1.2-2 o successiva supporta le famiglie di istanze GPU P2, P3, G4dn e G5.
SageMaker XGBoost La versione AI 1.7-1 o successiva supporta le famiglie di istanze GPU P3, G4dn e G5. Si noti che, a causa dei requisiti di capacità di elaborazione, la versione 1.7-1 o successiva non supporta la famiglia di istanze P2.
Per sfruttare i vantaggi della formazione sulla GPU:
-
Specificate il tipo di istanza come istanza GPU (ad esempio, P3)
-
Imposta l'
tree_method
iperparametro su nello script esistentegpu_hist
XGBoost
Addestramento distribuito
SageMaker L'intelligenza artificiale XGBoost supporta istanze CPU e GPU per l'addestramento distribuito.
Addestramento distribuito della CPU
Per eseguire l’addestramento della CPU su più istanze, imposta il parametro instance_count
dello strumento di valutazione su un valore maggiore di uno. I dati di input devono essere suddivisi tra il numero totale di istanze.
Suddividi i dati di input tra le istanze
Suddividi i dati di input utilizzando le fasi seguenti:
-
Suddividi i dati di input in file più piccoli. Il numero di file deve essere almeno uguale al numero di istanze utilizzate per l’addestramento distribuito. L'utilizzo di più file più piccoli anziché un unico file di grandi dimensioni riduce inoltre il tempo di download dei dati per il processo di addestramento.
-
Quando crei il tuo TrainingInput
, imposta il parametro di distribuzione su. ShardedByS3Key
In questo modo, ogni istanza ottiene circa 1/n del numero di file in S3 se ci sono n istanze specificate nel processo di formazione.
Addestramento distribuito della GPU
Puoi utilizzare l’addestramento distribuito con istanze a GPU singola o multipla.
Addestramento distribuito con istanze a GPU singola
SageMaker XGBoost Le versioni AI da 1.2-2 a 1.3-1 supportano solo l'addestramento su istanze a GPU singola. Ciò significa che anche se si seleziona un'istanza a GPU multipla, viene utilizzata solo una GPU per istanza.
È necessario dividere i dati di input tra il numero totale di istanze se:
-
Utilizzate XGBoost le versioni da 1.2-2 a 1.3-1.
-
Non è necessario utilizzare istanze multi-GPU.
Per ulteriori informazioni, consulta Suddividi i dati di input tra le istanze.
Nota
Le versioni da 1.2-2 a 1.3-1 di SageMaker AI utilizzano XGBoost solo una GPU per istanza, anche se si sceglie un'istanza multi-GPU.
Addestramento distribuito con istanze a GPU multiple
A partire dalla versione 1.5-1, AI offre formazione distribuita sulla GPU con Dask. SageMaker XGBoost
Addestra con Dask utilizzando le fasi seguenti:
Omettete il
distribution
parametro nel vostro o impostatelo su. TrainingInputFullyReplicated
Quando definisci gli iperparametri, imposta
use_dask_gpu_training
su"true"
.
Importante
L’addestramento distribuito con Dask supporta solo i formati di input CSV e Parquet. Se si utilizzano altri formati di dati come LIBSVM o PROTOBUF, il processo di addestramento non fallisce.
Per i dati di Parquet, assicurati che i nomi delle colonne siano salvati come stringhe. Le colonne con nomi di altri tipi di dati non verranno caricate.
Importante
L’addestramento distrubuito con Dask non supporta la modalità pipe. Se viene specificata la modalità pipe, il processo di addestramento fallisce.
Ci sono alcune considerazioni da tenere a mente quando si addestra l' SageMaker IA XGBoost con Dask. Assicurati di suddividere i dati in file più piccoli. Dask legge ogni file Parquet come una partizione. Esiste un Dask worker per ogni GPU. Di conseguenza, il numero di file deve essere maggiore del numero totale di GPUs (numero di istanze * numero di istanze GPUs per istanza). Avere un numero molto elevato di file può anche ridurre le prestazioni. Per ulteriori informazioni, consulta Best practice Dask
Variazioni nell'output
L'tree_method
iperparametro specificato determina l'algoritmo utilizzato per l' XGBoost addestramento. I metodi ad albero approx
, hist
e gpu_hist
sono tutti metodi approssimativi e utilizzano lo schizzo per il calcolo dei quantili. Per ulteriori informazioni, vedete Tree Methods
Inferenza
SageMaker L'intelligenza artificiale XGBoost supporta istanze CPU e GPU per l'inferenza. Per informazioni sui tipi di istanza per l'inferenza, consulta Amazon SageMaker AI ML Instance Types