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à.
Trasformazione in batch per l'inferenza con Amazon SageMaker AI
Utilizza la trasformazione in batch quando devi eseguire le seguenti operazioni:
-
Pre-elaborare i set di dati per rimuovere disturbi o distorsioni che possono interferire con l’addestramento o l'inferenza.
-
Ottenere inferenze da set di dati di grandi dimensioni.
-
Eseguire l'inferenza quando non è necessario un endpoint persistente.
-
Associa i record di input alle inferenze per facilitare l'interpretazione dei risultati.
Per filtrare i dati di input prima di eseguire le inferenze o per associare record di input alle inferenze relative a tali record, consulta Associazione dei risultati delle previsioni ai record di input. Ad esempio, puoi filtrare i dati di input per fornire un contesto per la creazione e l'interpretazione dei report sui dati di output.
Argomenti
Usa la trasformazione in batch per ottenere inferenze da set di dati di grandi dimensioni
La trasformazione in batch gestisce automaticamente l'elaborazione di set di dati di grandi dimensioni entro i limiti dei parametri specificati. Ad esempio, avere un file di set di dati archiviato in un input1.csv
bucket S3. Il contenuto del file di input potrebbe essere simile all'esempio seguente:
Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM
Quando inizia un processo di trasformazione in batch, l' SageMaker intelligenza artificiale avvia le istanze di calcolo e distribuisce tra di esse il carico di lavoro di inferenza o preelaborazione. Il processo di trasformazione in batch partiziona gli oggetti Amazon S3 nell'input per chiave e mappa gli oggetti Amazon S3 alle istanze. In presenza di più file, un'istanza potrebbe elaborare input1.csv
e un'altra istanza potrebbe elaborare un altro file denominato input2.csv
. Se disponi di un file di input ma inizializzi più istanze di calcolo, solo un'istanza elabora il file di input. Le altre istanze sono inattive.
È anche possibile suddividere i file di input in mini-batch. Ad esempio, puoi creare un mini-batch da input1.csv
includendo solo due record.
Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
Nota
SageMaker L'IA elabora ogni file di input separatamente. Non combina mini-batch provenienti da file di input differenti per soddisfare il limite di MaxPayloadInMB
.
Per dividere i file di input in mini-batch quando create un processo di trasformazione in batch, impostate il valore del SplitType
parametro su. Line
SageMaker L'IA utilizza l'intero file di input in un'unica richiesta quando:
-
SplitType
è impostato suNone
. -
Un file di input non può essere suddiviso in mini-batch.
. Nota che Batch Transform non supporta l'input in formato CSV che contiene caratteri di nuova riga incorporati. È possibile controllare la dimensione dei mini-batch utilizzando i parametri BatchStrategy
e MaxPayloadInMB
. MaxPayloadInMB
non deve essere superiore a 100 MB. Se si specifica il parametro MaxConcurrentTransforms
opzionale, anche il valore di (MaxConcurrentTransforms * MaxPayloadInMB)
non deve superare i 100 MB.
Se il processo di trasformazione in batch elabora correttamente tutti i record in un file di input, crea un file di output. Il file di output ha lo stesso nome e la stessa .out
estensione. In caso di più file di input, ad esempio input1.csv
e input2.csv
, i file di output vengono denominati input1.csv.out
e input2.csv.out
. Il processo di trasformazione in batch archivia i file di output nel percorso specificato su Amazon S3, come ad esempio s3://amzn-s3-demo-bucket/output/
.
Le previsioni in un file di output sono elencate nello stesso ordine dei record del file di input. Il file di output input1.csv.out
, in base al file di input mostrato in precedenza, sarà simile al seguente.
Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM
Se SplitType
è impostato su Line
, puoi impostare il parametro AssembleWith
su Line
per concatenare i record di output con un delimitatore di riga. Ciò non modifica il numero di file di output. Il numero di file di output è pari al numero di file di input e l'utilizzo di AssembleWith
non unisce i file. Se non si specifica il AssembleWith
parametro, i record di output vengono concatenati in un formato binario per impostazione predefinita.
Quando i dati di input sono di dimensioni molto grandi e vengono trasmessi mediante la codifica HTTP Chunked, per trasmettere i dati all'algoritmo, è necessario impostare MaxPayloadInMB
su 0
. Gli algoritmi integrati di Amazon SageMaker AI non supportano questa funzionalità.
Per ulteriori informazioni su come usare l'API per creare un processo di trasformazione in batch, consultare l'API CreateTransformJob
. Per ulteriori informazioni sulla relazione tra oggetti di input e output con trasformazione in batch, consulta OutputDataConfig
. Per un esempio di come utilizzare la trasformazione in batch, consulta (Facoltativo) Formulazione di previsioni con la trasformazione di batch.
Accelerare un processo di trasformazione in batch
Se utilizzi l'CreateTransformJob
API, puoi ridurre il tempo necessario per completare i lavori di trasformazione in batch utilizzando valori ottimali per i parametri. Ciò include parametri come MaxPayloadInMB
MaxConcurrentTransforms
, o BatchStrategy
. Il valore ideale per MaxConcurrentTransforms
è pari al numero di processi di calcolo nel processo di trasformazione di batch.
Se utilizzi la console SageMaker AI, specifica questi valori ottimali dei parametri nella sezione Configurazione aggiuntiva della pagina di configurazione del processo di trasformazione in Batch. SageMaker L'IA trova automaticamente le impostazioni ottimali dei parametri per gli algoritmi integrati. Per gli algoritmi personalizzati, è necessario fornire questi valori tramite un endpoint execution-parameters.
Usa la trasformazione in batch per testare le varianti di produzione
Per testare diversi modelli o impostazioni di iperparametri, crea un processo di trasformazione separato per ogni nuova variante del modello e utilizza un set di dati di convalida. Per ogni processo di trasformazione, specifica un nome e un percorso univoco in Amazon S3 per il file di output. Per analizzare i risultati, utilizza Log e parametri della pipeline di inferenza.
Notebook di esempio con trasformazione in batch
Per un notebook di esempio che utilizza la trasformazione in batch, vedere Batch Transform with PCA e DBSCAN Movie Clusters
Per istruzioni sulla creazione e l'accesso alle istanze di notebook Jupyter da utilizzare per eseguire l'esempio in AI, consulta. SageMaker Istanze Amazon SageMaker Notebook Dopo aver creato e aperto un'istanza di notebook, scegli la scheda SageMakerEsempi per visualizzare un elenco di tutti gli esempi di IA. SageMaker I notebook dell'esempio di modellazione dell'argomento che utilizzano gli algoritmi NTM sono disponibili nella sezione Funzionalità avanzate. Per aprire un notebook, seleziona la relativa scheda Utilizza, quindi scegli Crea copia.