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à.
Algoritmo XGBoost con Amazon AI SageMaker
XGBoost
-
Gestione affidabile di una varietà di tipi di dati, relazioni e distribuzioni.
-
Varietà di iperparametri di cui è possibile eseguire il fine-tuning.
È possibile utilizzare XGBoost per problemi di regressione, classificazione (binaria e multiclass) e ordinamento.
Puoi utilizzare la nuova versione dell’algoritmo XGBoost anche come:
-
Un algoritmo integrato di Amazon SageMaker AI.
-
Framework per eseguire script di addestramento negli ambienti locali.
Questa implementazione è caratterizzata da impatto minore sulla memoria, migliore registrazione di log, convalida degli iperparametri perfezionata e un set più esteso di metriche rispetto alle versioni originali. Fornisce inoltre un XGBoost estimator che esegue uno script di addestramento in un ambiente XGBoost gestito. L'attuale versione di SageMaker AI XGBoost si basa sulle versioni originali di XGBoost 1.0, 1.2, 1.3, 1.5, 1.7 e 3.0.
Per ulteriori informazioni sull'algoritmo Amazon SageMaker AI XGBoost, consulta i seguenti post di blog:
Versioni supportate
Per ulteriori dettagli, consulta la nostra politica di supporto.
-
Modalità framework (open source): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5
-
Modalità algoritmo: 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1, 3,0-5
avvertimento
A causa della capacità di elaborazione richiesta, la versione 3.0-5 di SageMaker AI XGBoost non è compatibile con le istanze GPU della famiglia di istanze P3 per l'addestramento o l'inferenza.
avvertimento
A causa della compatibilità dei pacchetti, la versione 3.0-5 di AI XGBoost non supporta il debugger. SageMaker SageMaker
avvertimento
A causa della capacità di calcolo richiesta, la versione 1.7-1 di SageMaker AI XGBoost non è compatibile con le istanze GPU della famiglia di istanze P2 per l'addestramento o l'inferenza.
avvertimento
Modalità di isolamento di rete: non aggiornare pip oltre la versione 25.2. Le versioni più recenti possono tentare di recuperare setuptools da PyPI durante l'installazione del modulo.
Importante
Quando recuperate l'URI dell'immagine SageMaker AI XGBoost, non utilizzate o come tag URI dell'immagine. :latest :1 È necessario specificare uno dei contenitori XGBoost con la SageMaker AI-managed versione del pacchetto XGBoost nativa che si desidera utilizzare. Versioni supportate Per trovare la versione del pacchetto migrata nei contenitori SageMaker AI XGBoost, 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 XGBoost 0.90 non sono più disponibili. Si consiglia vivamente di eseguire l’upgrade di XGBoost a una delle versioni più recenti.
Nota
XGBoost v1.1 non è supportato su AI. SageMaker XGBoost 1.1 non è infatti in grado di eseguire la previsione quando l’input di test ha meno funzionalità rispetto ai dati di addestramento negli input di LIBSVM. Questa funzionalità è stata ripristinata in XGBoost v1.2. Prendi in considerazione l'utilizzo di SageMaker AI XGBoost 1.2-2 o versioni successive.
Nota
Puoi utilizzare XGBoost v1.0-1, ma non è ufficialmente supportato.
Raccomandazione dell’istanza EC2 per l’algoritmo XGBoost
SageMaker AI XGBoost supporta l'addestramento e l'inferenza di CPU e GPU. I consigli sulle istanze dipendono dalle esigenze di addestramento e inferenza, nonché dalla versione dell'algoritmo XGBoost. Per ulteriori informazioni, consulta una delle seguenti opzioni:
Addestramento
L'algoritmo SageMaker AI XGBoost supporta l'addestramento di CPU e GPU.
Addestramento della CPU
SageMaker AI XGBoost 1.0-1 o versioni precedenti si allena solo utilizzando CPU. 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’utilizzo dello spazio su disco per gestire dati che non rientrano nella memoria principale. Questo è il risultato della funzionalità out-of-core 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 AI XGBoost versione 1.2-2 o successiva supporta l'addestramento tramite GPU. Nonostante costi più elevati per istanza, i GPU si preparano più rapidamente, rendendoli più convenienti.
SageMaker AI XGBoost versione 1.2-2 o successiva supporta le famiglie di istanze GPU P2, P3, G4dn e G5.
SageMaker AI XGBoost versione 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.
SageMaker AI XGBoost versione 3.0-5 o successiva supporta le famiglie di istanze GPU G4dn e G5. Tieni presente che, a causa dei requisiti di capacità di elaborazione, la versione 3.0-5 o successiva non supporta la famiglia di istanze P3.
Per sfruttare i vantaggi dell’addestramento GPU:
-
Specificate il tipo di istanza come una delle istanze GPU (ad esempio, G4dn)
-
Impostare l’iperparametro
tree_methodsugpu_histnello script XGBoost esistente
Addestramento distribuito
SageMaker AI 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. ShardedByS3KeyIn questo modo, ogni istanza riceve approssimativamente 1/nil 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 Le versioni di AI XGBoost 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.
I dati di input devono essere suddivisi tra il numero totale di istanze se:
-
Utilizzi le versioni di XGBoost da 1.2-2 a 1.3-1.
-
Non devi 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 XGBoost utilizzano 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 XGBoost offre formazione distribuita sulla GPU con Dask. SageMaker
Addestra con Dask utilizzando le fasi seguenti:
Ometti il
distributionparametro nel tuo o impostalo su. TrainingInputFullyReplicatedQuando definisci gli iperparametri, imposta
use_dask_gpu_trainingsu"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 allena SageMaker AI XGBoost con Dask. Assicurati di suddividere i dati in file più piccoli. Dask legge ogni file Parquet come una partizione. Esiste un worker Dask per ogni GPU, quindi il numero di file deve essere maggiore del numero totale di GPU (numero di istanze * numero di GPU 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'iperparametro tree_method specificato determina l'algoritmo utilizzato per l’addestramento di XGBoost. 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, consulta Metodi ad albero
Inferenza
SageMaker AI XGBoost supporta istanze di CPU e GPU per l'inferenza. Per informazioni sui tipi di istanza per l'inferenza, consulta Amazon SageMaker AI ML Instance Types