

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
<a name="batch-transform"></a>

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.
+ Associare record di input alle inferenze per agevolare 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](batch-transform-data-processing.md). Ad esempio, puoi filtrare i dati di input per fornire un contesto per la creazione e l'interpretazione dei report sui dati di output.

**Topics**
+ [Utilizzare la trasformazione in batch per ottenere inferenze da set di dati di grandi dimensioni](#batch-transform-large-datasets)
+ [Velocizzare un processo di trasformazione in batch](#batch-transform-reduce-time)
+ [Utilizzare la trasformazione in batch per testare varianti di produzione](#batch-transform-test-variants)
+ [Notebook di esempio per la trasformazione in batch](#batch-transform-notebooks)
+ [Associazione dei risultati delle previsioni ai record di input](batch-transform-data-processing.md)
+ [Archiviazione in nella trasformazione in batch](batch-transform-storage.md)
+ [Risoluzione dei problemi](batch-transform-errors.md)

## Utilizzare la trasformazione in batch per ottenere inferenze da set di dati di grandi dimensioni
<a name="batch-transform-large-datasets"></a>

La trasformazione in batch gestisce automaticamente l'elaborazione di set di dati di grandi dimensioni entro i limiti dei parametri specificati. Ad esempio, supponiamo di disporre di un file contenente un set di dati, `input1.csv`, archiviato in un 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 è disponibile un file di input ma sono inizializzate 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'intelligenza artificiale elabora ogni file di input separatamente. Non combina mini-batch provenienti da file di input differenti per soddisfare il limite di [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB               ).

Per dividere i file di input in mini-batch quando create un processo di trasformazione in batch, impostate il valore del [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             )parametro su. `Line` SageMaker L'IA utilizza l'intero file di input in un'unica richiesta quando:
+ `SplitType` è impostato su `None`;
+ un file di input non può essere suddiviso in mini batch.

Il processo di trasformazione in batch non supporta input in formato CSV che contengono caratteri di nuova riga con embedding. È possibile controllare la dimensione dei mini-batch utilizzando i parametri `[BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-BatchStrategy)` e `[MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxPayloadInMB)`. `MaxPayloadInMB` non deve essere superiore a 100 MB. Se si specifica il parametro `[MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-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 con lo stesso nome e la stessa estensione `.out`. 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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType             ) è impostato su `Line`, puoi impostare il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-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 specifichi il parametro `AssembleWith`, 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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html). Per ulteriori informazioni sulla relazione tra gli oggetti di input e di output della trasformazione in batch, consulta [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html). Per un esempio di come utilizzare la trasformazione in batch, consulta [(Facoltativo) Formulazione di previsioni con la trasformazione di batch](ex1-model-deployment.md#ex1-batch-transform).

## Velocizzare un processo di trasformazione in batch
<a name="batch-transform-reduce-time"></a>

Se usi l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html), puoi ridurre il tempo necessario per completare le operazioni di trasformazione in batch utilizzando valori ottimali per parametri. Questo include parametri come [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxPayloadInMB), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-MaxConcurrentTransforms) oppure [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-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](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests).

## Utilizzare la trasformazione in batch per testare varianti di produzione
<a name="batch-transform-test-variants"></a>

Per testare diversi modelli o varie impostazioni di iperparametri, crea un processo di trasformazione separato per ogni nuova variante di 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](inference-pipeline-logs-metrics.md).

## Notebook di esempio per la trasformazione in batch
<a name="batch-transform-notebooks"></a>

Per un notebook di esempio che utilizza la trasformazione in batch, consulta [Batch Transform with PCA and DBSCAN Movie Clusters](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_batch_transform/introduction_to_batch_transform/batch_transform_pca_dbscan_movie_clusters.html). Questo notebook utilizza la trasformazione in batch con un modello di analisi dei componenti principali (PCA) per ridurre i dati in una matrice di recensioni degli articoli degli utenti. Mostra quindi l’applicazione di un algoritmo DBSCAN (Density-Based Spatial Clustering of Applications with Noise) per raggruppare i filmati in cluster.

 Per istruzioni sulla creazione e l'accesso alle istanze di notebook Jupyter da utilizzare per eseguire l'esempio in AI, consulta. SageMaker [Istanze SageMaker per notebook Amazon](nbi.md) 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**.

# Associazione dei risultati delle previsioni ai record di input
<a name="batch-transform-data-processing"></a>

Quando si creano previsioni su un set di dati di grandi dimensioni, è possibile escludere gli attributi non necessari per la previsione. Una volta create le previsioni, è possibile associare alcuni attributi esclusi a tali previsioni o ad altri dati di input nel report. Usando la trasformazione in batch per eseguire queste fasi di elaborazione dei dati, spesso è possibile eliminare operazioni aggiuntive di preelaborazione o postelaborazione. Si possono utilizzare file di input solo in formato JSON e CSV. 

**Topics**
+ [Flusso di lavoro per associare le inferenze ai record di input](#batch-transform-data-processing-workflow)
+ [Utilizzare l'elaborazione dati nei processi di trasformazione in batch](#batch-transform-data-processing-steps)
+ [Operatori supportati JSONPath](#data-processing-operators)
+ [Esempi di trasformazione in batch](#batch-transform-data-processing-examples)

## Flusso di lavoro per associare le inferenze ai record di input
<a name="batch-transform-data-processing-workflow"></a>

Il seguente diagramma mostra il flusso di lavoro per associare le inferenze ai record di input.

![\[Flusso di lavoro per associare le inferenze ai record di input.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/batch-transform-data-processing.png)


L'associazione delle inferenze ai dati di input prevede tre fasi:

1. Filtrare i dati di input non necessari per l'inferenza prima di passarli al processo di trasformazione in batch. Utilizzare il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter                             ) per determinare quali attributi utilizzare come input per il modello.

1. Associare i dati di input ai risultati dell'inferenza. Utilizzare il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-JoinSource                         ) per combinare i dati di input con l'inferenza.

1. Filtrare i dati collegati per mantenere gli input necessari a fornire un contesto per l'interpretazione delle previsioni nei report. Utilizzare [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-OutputFilter                             ) per archiviare la porzione specificata del set di dati completo nel file di output.

## Utilizzare l'elaborazione dati nei processi di trasformazione in batch
<a name="batch-transform-data-processing-steps"></a>

Per elaborare i dati durante la creazione di un processo di trasformazione in batch con [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html):

1. Specificare la porzione di input da passare al modello con il parametro `InputFilter` nella struttura dati `DataProcessing`. 

1. Collegare i dati di input grezzi ai dati trasformati con il parametro `JoinSource`.

1. Specificare quale porzione dell'input collegato e dei dati trasformati dal processo di trasformazione in batch includere nel file di output con il parametro `OutputFilter`.

1.  Scegliere come input file in formato JSON o CSV: 
   + Per i file di input in formato JSON o JSON Lines, SageMaker AI aggiunge l'`SageMakerOutput`attributo al file di input o crea un nuovo file di output JSON con gli attributi and. `SageMakerInput` `SageMakerOutput` Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html). 
   + Per i file di input in formato CSV, i dati in input collegati sono seguiti dai dati trasformati e l'output è un file CSV.

Se si utilizza un algoritmo con la struttura `DataProcessing`, è necessario che supporti il formato scelto *sia* per i file di input che per quelli di output. Ad esempio, con il campo [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html) dell'API `CreateTransformJob`, è necessario impostare entrambi i parametri [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html#SageMaker-Type-Channel-ContentType) e [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-Accept) su uno dei seguenti valori: `text/csv`, `application/json` o `application/jsonlines`. La sintassi per specificare le colonne in un file CSV e quella per specificare gli attributi in un file JSON sono diverse. L'utilizzo della sintassi sbagliata genera un errore. Per ulteriori informazioni, consulta [Esempi di trasformazione in batch](#batch-transform-data-processing-examples). Per ulteriori informazioni sui formati di file di input e output per gli algoritmi integrati, consulta [Algoritmi integrati e modelli preaddestrati in Amazon SageMaker](algos.md).

Anche i delimitatori di record per l'input e l'output devono essere coerenti con il file di input scelto. Il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#SageMaker-Type-TransformInput-SplitType) indica come suddividere i record nel set di dati di input. Il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#SageMaker-Type-TransformOutput-AssembleWith                     ) indica come riassemblare i record dell'output. Se si impostano i formati in ingresso e in uscita a `text/csv`, è necessario anche impostare i parametri `SplitType` e `AssembleWith` al valore `line`. Se si impostano i formati in ingresso e in uscita a `application/jsonlines`, è possibile impostare i parametri `SplitType` e `AssembleWith` su `line`.

Per i file CSV, non è possibile utilizzare caratteri di nuova riga incorporati. In caso di file JSON, nel file di output il nome dell'attributo `SageMakerOutput` è riservato. Il file di input JSON non può contenere un attributo con questo nome. In caso contrario, i dati del file di input potrebbero essere sovrascritti. 

## Operatori supportati JSONPath
<a name="data-processing-operators"></a>

Per filtrare e unire i dati di input e l'inferenza, utilizzate una JSONPath sottoespressione. SageMaker L'intelligenza artificiale supporta solo un sottoinsieme degli operatori definiti. JSONPath La tabella seguente elenca gli JSONPath operatori supportati. Per i dati CSV, ogni riga viene considerata come un array JSON, quindi è JSONPaths possibile applicare solo dati basati su indici, ad esempio`$[0]`. `$[1:]` I dati CSV dovrebbero anche seguire il [formato RFC](https://tools.ietf.org/html/rfc4180).


| JSONPath Operatore | Description | Esempio | 
| --- | --- | --- | 
| \$1 |  L'elemento radice di una query. Questo operatore è obbligatorio all'inizio di ogni espressione di percorso.  | \$1 | 
| .<name> |  Un elemento figlio in notazione "a punto".  |  `$.id`  | 
| \$1 |  Carattere jolly Utilizzato al posto di un nome di attributo o di un valore numerico.  |  `$.id.*`  | 
| ['<name>' (,'<name>')] |  Un elemento o molteplici elementi figli in notazione "a parentesi graffa".  |  `$['id','SageMakerOutput']`  | 
| [<number> (,<number>)] |  Un indice o una matrice di indici. Sono supportati anche valori di indice negativi. L'indice `-1` fa riferimento all'ultimo elemento in una matrice.  |  `$[1]` , `$[1,3,5]`  | 
| [<start>:<end>] |  Un operatore di sezionamento della matrice. Il metodo array slice () estrae una sezione di un array e restituisce un nuovo array. Se ometti*<start>*, l' SageMaker IA utilizza il primo elemento dell'array. Se ometti*<end>*, l' SageMaker IA utilizza l'ultimo elemento dell'array.  |  `$[2:5]`, `$[:5]`, `$[2:]`  | 

Quando si utilizza la notazione in parentesi per specificare più elementi figlio di un dato del campo, l'ulteriore nidificazione di elementi secondari tra parentesi non è supportata. Ad esempio, `$.field1.['child1','child2']` è supportato mentre non lo è `$.field1.['child1','child2.grandchild']`. 

Per ulteriori informazioni sugli JSONPath operatori, consulta [JsonPath](https://github.com/json-path/JsonPath)on GitHub.

## Esempi di trasformazione in batch
<a name="batch-transform-data-processing-examples"></a>

I seguenti esempi mostrano alcune procedure comuni per collegare i dati di input con i risultati della predizione.

**Topics**
+ [Esempio: generazione solo di inferenze](#batch-transform-data-processing-example-default)
+ [Esempio: inferenze di uscita collegate a dati di input](#batch-transform-data-processing-example-all)
+ [Esempio: genera inferenze collegate ai dati di input ed esclude la colonna ID dall'input (CSV)](#batch-transform-data-processing-example-select-csv)
+ [Esempio: inferenze di output collegate a una colonna ID ed esclusione della colonna ID dall'input (CSV)](#batch-transform-data-processing-example-select-json)

### Esempio: generazione solo di inferenze
<a name="batch-transform-data-processing-example-default"></a>

Per impostazione predefinita, il parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-CreateTransformJob-request-DataProcessing) non collega i risultati dell'inferenza all'input. Genera solo i risultati dell'inferenza come output.

Se desideri specificare in modo esplicito di non unire i risultati con l'input, usa l'SDK [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e specifica le seguenti impostazioni in una chiamata al trasformatore.

```
sm_transformer = sagemaker.transformer.Transformer(…)
sm_transformer.transform(…, input_filter="$", join_source= "None", output_filter="$")
```

Per generare inferenze utilizzando l' AWS SDK per Python, aggiungi il codice seguente alla tua richiesta. CreateTransformJob Il codice seguente mostra il comportamento predefinito.

```
{
    "DataProcessing": {
        "InputFilter": "$",
        "JoinSource": "None",
        "OutputFilter": "$"
    }
}
```

### Esempio: inferenze di uscita collegate a dati di input
<a name="batch-transform-data-processing-example-all"></a>

Se utilizzi l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) per combinare i dati di input con le inferenze nel file di output, specifica i `accept` parametri `assemble_with` and durante l'inizializzazione dell'oggetto transformer. Quando utilizzi la chiamata di trasformazione, specifica `Input` per il parametro `join_source` e specifica anche i parametri `split_type` e `content_type`. Il parametro `split_type` deve avere lo stesso valore di `assemble_with` e il parametro `content_type` deve avere lo stesso valore di `accept`. Per ulteriori informazioni sui parametri e sui relativi valori accettati, consulta la pagina [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) nell'SDK *Amazon SageMaker AI Python*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, join_source="Input", split_type="Line", content_type="text/csv")
```

Se stai usando l' AWS SDK per Python (Boto 3), unisci tutti i dati di input con l'inferenza aggiungendo il codice seguente alla tua richiesta. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) Devono corrispondere i valori per `Accept` e `ContentType` come pure i valori per `AssembleWith` e `SplitType`.

```
{
    "DataProcessing": {
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Per i file di input JSON o JSON Lines, i risultati sono contenuti all'interno della chiave `SageMakerOutput` nel file di input JSON. Ad esempio, se il file di input è un file JSON che contiene la coppia chiave-valore `{"key":1}`, il risultato della trasformazione dei dati potrebbe essere `{"label":1}`.

SageMaker AI li memorizza entrambi nel file di input della chiave. `SageMakerInput`

```
{
    "key":1,
    "SageMakerOutput":{"label":1}
}
```

**Nota**  
Il risultato del collegamento per il file JSON deve essere un oggetto composto da una coppia chiave-valore. Se l'input non è un oggetto di coppia chiave-valore, SageMaker AI crea un nuovo file JSON. Nel nuovo file JSON, i dati di input vengono memorizzati nella chiave `SageMakerInput` e i risultati vengono memorizzati come valore di `SageMakerOutput`.

In caso di file CSV, ad esempio, se il record è `[1,2,3]` e l'etichetta risultante è `[1]`, il file di output conterrà `[1,2,3,1]`.

### Esempio: genera inferenze collegate ai dati di input ed esclude la colonna ID dall'input (CSV)
<a name="batch-transform-data-processing-example-select-csv"></a>

Se utilizzi l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) per unire i dati di input con l'output di inferenza escludendo una colonna ID dall'input del trasformatore, specifica gli stessi parametri dell'esempio precedente e una JSONPath sottoespressione per la nella chiamata al trasformatore. `input_filter` Ad esempio, se i dati di input includono cinque colonne e la prima è la colonna ID, usa la seguente richiesta di trasformazione per selezionare tutte le colonne tranne la colonna ID come caratteristiche. Il trasformatore genera in uscita comunque tutte le colonne di input collegate alle inferenze. Per ulteriori informazioni sui parametri e sui relativi valori accettati, consulta la pagina [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) nell'SDK *Amazon SageMaker AI Python*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input")
```

Se stai usando l' AWS SDK per Python (Boto 3), aggiungi il codice seguente alla tua richiesta. `[ CreateTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)`

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

Per specificare le colonne in SageMaker AI, usa l'indice degli elementi dell'array. La prima colonna è l'indice 0, la seconda colonna è l'indice 1 e la sesta colonna è l'indice 5.

Per escludere la prima colonna dall'input, imposta `[InputFilter](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#SageMaker-Type-DataProcessing-InputFilter )` su `"$[1:]"`. I due punti (`:`) indicano all' SageMaker IA di includere tutti gli elementi tra due valori, inclusi. Ad esempio, `$[1:4]` specifica dalla seconda alla quinta colonna.

Se si omette il numero dopo i due punti, ad esempio `[5:]`, il sottoinsieme include tutte le colonne dalla sesta fino all'ultima. Se si omette il numero prima dei due punti, ad esempio `[:5]`, il sottoinsieme include tutte le colonne dalla prima colonna (indice 0) alla sesta colonna.

### Esempio: inferenze di output collegate a una colonna ID ed esclusione della colonna ID dall'input (CSV)
<a name="batch-transform-data-processing-example-select-json"></a>

Se utilizzi l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), puoi specificare l'output per unire solo colonne di input specifiche (come la colonna ID) alle inferenze specificando nella chiamata del trasformatore. `output_filter` `output_filter`Utilizza una JSONPath sottoespressione per specificare quali colonne restituire come output dopo aver unito i dati di input ai risultati dell'inferenza. La richiesta seguente mostra come è possibile fare previsioni escludendo una colonna ID e quindi collegare la colonna ID alle inferenze. Nota che nell'esempio seguente, l'ultima colonna (`-1`) dell'output contiene le inferenze. Se utilizzi file JSON, SageMaker AI memorizza i risultati dell'inferenza nell'attributo. `SageMakerOutput` Per ulteriori informazioni sui parametri e sui relativi valori accettati, consulta la pagina [Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html#sagemaker.transformer.Transformer) nell'SDK *Amazon SageMaker AI Python*.

```
sm_transformer = sagemaker.transformer.Transformer(…, assemble_with="Line", accept="text/csv")
sm_transformer.transform(…, split_type="Line", content_type="text/csv", input_filter="$[1:]", join_source="Input", output_filter="$[0,-1]")
```

Se stai usando l' AWS SDK per Python (Boto 3), unisci solo la colonna ID con le inferenze aggiungendo il seguente codice alla tua richiesta. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)

```
{
    "DataProcessing": {
        "InputFilter": "$[1:]",
        "JoinSource": "Input",
        "OutputFilter": "$[0,-1]"
    },
    "TransformOutput": {
        "Accept": "text/csv",
        "AssembleWith": "Line"
    },
    "TransformInput": {
        "ContentType": "text/csv",
        "SplitType": "Line"
    }
}
```

**avvertimento**  
Se si utilizza un file di input in formato JSON, il file non può contenere il nome di attributo `SageMakerOutput`. Questo nome di attributo è riservato per le inferenze nel file di output. Se il file di input in formato JSON contiene un attributo con questo nome, i valori nel file di input potrebbero essere sovrascritti con l'inferenza.

# Archiviazione in nella trasformazione in batch
<a name="batch-transform-storage"></a>

Quando esegui un processo di trasformazione in batch, Amazon SageMaker AI collega un volume di storage Amazon Elastic Block Store alle istanze Amazon EC2 che elaborano il tuo processo. Il volume memorizza il modello e la dimensione del volume di archiviazione è fissata pari a 30 GB. È possibile crittografare il modello a riposo nel volume di archiviazione.

**Nota**  
Se disponi di un modello di grandi dimensioni, potresti riscontrare un `InternalServerError`.

Per ulteriori informazioni sull'archiviazione e le funzionalità di Amazon EBS, consulta le pagine seguenti:
+ [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) nella Guida per l’utente di Amazon EC2
+ [Volumi Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes.html) nella Guida per l’utente di Amazon EC2

**Nota**  
Le istanze G4dn sono dotate del proprio spazio di archiviazione SSD locale. Per ulteriori informazioni sulle istanze G4dn, consulta la pagina relativa alle [Istanze G4 di Amazon EC2](https://aws.amazon.com/ec2/instance-types/g4/).

# Risoluzione dei problemi
<a name="batch-transform-errors"></a>

Se riscontri errori in Amazon SageMaker AI Batch Transform, consulta i seguenti suggerimenti per la risoluzione dei problemi.

## errori di timeout massimo
<a name="batch-transform-errors-max-timeout"></a>

Se si verificano errori di timeout massimo durante l'esecuzione di processi di trasformazione in batch, prova quanto segue:
+ iniziate con il record singolo `[BatchStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-BatchStrategy)`, un batch di dimensioni predefinite (6 MB) o inferiore specificato nel parametro `[MaxPayloadInMB](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxPayloadInMB)` e un set ridotto di dati campione. Regola il parametro di timeout massimo `[InvocationsTimeoutInSeconds](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelClientConfig.html#sagemaker-Type-ModelClientConfig-InvocationsTimeoutInSeconds)` (che ha un massimo di 1 ora) fino a quando non ricevi una risposta di chiamata riuscita.
+ Dopo aver ricevuto una risposta di invocazione riuscita, aumenta `MaxPayloadInMB` (che ha un massimo di 100 MB) e i parametri `InvocationsTimeoutInSeconds` per trovare la dimensione massima del batch in grado di supportare il timeout del modello desiderato. In questa fase è possibile utilizzare il record singolo o il record multiplo `BatchStrategy`.
**Nota**  
Il superamento del limite `MaxPayloadInMB` causa un errore. Questo può accadere con un set di dati di grandi dimensioni qualora non fosse possibile suddividerlo, il parametro `SplitType` fosse impostato su nessuno oppure i singoli record all'interno del set di dati superassero il limite.
+ (Facoltativo) Ottimizza il parametro `[MaxConcurrentTransforms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html#sagemaker-CreateTransformJob-request-MaxConcurrentTransforms)`, che specifica il numero massimo di richieste parallele che possono essere inviate a ogni istanza in un'attività di trasformazione in batch. Tuttavia, il valore di `MaxConcurrentTransforms * MaxPayloadInMB` non deve superare i 100 MB.

## Output incompleto
<a name="batch-transform-errors-incomplete"></a>

SageMaker L'intelligenza artificiale utilizza l'[API Amazon S3 Multipart Upload per caricare](https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) i risultati di un processo di trasformazione in batch su Amazon S3. Se si verifica un errore, i risultati caricati vengono rimossi da Amazon S3. In alcuni casi, come ad esempio un'interruzione nella connessione di rete, può rimanere su Amazon S3 un caricamento in più parti incompleto. Un caricamento incompleto potrebbe verificarsi anche se hai più file di input, ma alcuni file non possono essere elaborati da SageMaker AI Batch Transform. I file di input che non è stato possibile elaborare non avranno file di output corrispondenti in Amazon S3.

Per evitare di incorrere in costi di storage, ti consigliamo di aggiungere la [policy del bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) alle regole del ciclo di vita del bucket S3. Questa policy elimina i caricamenti in più parti incompleti che potrebbero essere archiviati nel bucket S3. Per ulteriori informazioni, consulta [Gestione del ciclo di vita degli oggetti](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html).

## Processo si presenta come `failed`
<a name="batch-transform-errors-failed"></a>

Se un processo di trasformazione in batch non riesce a elaborare un file di input a causa di un problema con il set di dati, SageMaker AI contrassegna il lavoro come`failed`. Se un file di input contiene un record non valido, il processo di trasformazione non crea un file di output per quel file di input perché questo impedisce di mantenere lo stesso ordine nei dati trasformati e nel file di input. Quando il set di dati contiene più file di input, un processo di trasformazione continua a elaborare i file di input anche se non riesce a elaborarne uno. I file elaborati generano comunque risultati utilizzabili.

Se utilizzi algoritmi personalizzati, puoi utilizzare testo segnaposto, ad esempio `ERROR`, quando l'algoritmo trova un record non valido in un file di input. Ad esempio, se l'ultimo record in un set di dati non è valido, l'algoritmo inserisce il testo segnaposto per tale record nel file di output.