Informazioni su Dataflow ML

Puoi utilizzare le capacità di elaborazione dei dati in scala di Dataflow ML per le pipeline di previsione e inferenza e per la preparazione dei dati per l'addestramento.

Diagramma del flusso di lavoro di Dataflow ML.

Figura 1. Il flusso di lavoro completo di Dataflow ML.

Requisiti e limitazioni

  • Dataflow ML supporta pipeline in modalità batch e flusso.
  • L'API RunInference è supportata in Apache Beam 2.40.0 e versioni successive.
  • L'API MLTransform è supportata in Apache Beam 2.53.0 e versioni successive.
  • Sono disponibili gestori di modelli per PyTorch, scikit-learn, TensorFlow, ONNX e TensorRT. Per i framework non supportati, puoi utilizzare un gestore del modello personalizzato.

Preparazione dei dati per l'addestramento

Pipeline di previsione e inferenza

Dataflow ML combina la potenza di Dataflow con l'API RunInference di Apache Beam. Con l'API RunInference definisci le caratteristiche e le proprietà del modello e passi questa configurazione alla trasformazione RunInference. Questa funzionalità consente agli utenti di eseguire il modello all'interno delle proprie pipeline Dataflow senza dover conoscere i dettagli di implementazione del modello. Puoi scegliere il framework più adatto ai tuoi dati, ad esempio TensorFlow e PyTorch.

Esegui più modelli in una pipeline

Usa la trasformazione RunInference per aggiungere più modelli di inferenza alla tua pipeline Dataflow. Per ulteriori informazioni, inclusi i dettagli del codice, consulta Pipeline multi-modello nella documentazione di Apache Beam.

Crea una pipeline tra lingue

Per utilizzare RunInference con una pipeline Java, crea una trasformazione Python tra linguaggi. La pipeline chiama la trasformazione, che esegue la pre-elaborazione, la post-elaborazione e l'inferenza.

Per istruzioni dettagliate e una pipeline di esempio, consulta Utilizzo di RunInference dall'SDK Java.

Utilizza GPU con Dataflow

Per pipeline in modalità batch o flusso che richiedono l'utilizzo di acceleratori, puoi eseguire pipeline Dataflow su dispositivi GPU NVIDIA. Per ulteriori informazioni, consulta Eseguire una pipeline Dataflow con le GPU.

Risolvi i problemi di Dataflow ML

Questa sezione fornisce strategie per la risoluzione dei problemi e link che potresti trovare utili durante l'utilizzo di Dataflow ML.

Lo stack prevede che ogni tensore abbia la stessa dimensione

Se fornisci immagini di dimensioni diverse o incorporamenti di parole di diversa lunghezza quando utilizzi l'API RunInference, potrebbe verificarsi il seguente errore:

File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']

Questo errore si verifica perché l'API RunInference non può eseguire il batch di elementi tensori di dimensioni diverse. Per le soluzioni alternative, consulta Impossibile eseguire il batch di elementi tensori nella documentazione di Apache Beam.

Passaggi successivi

  • Esplora i blocchi dei casi d'uso.
  • Ottieni informazioni approfondite sull'utilizzo del machine learning con Apache Beam nella documentazione sulle pipeline AI/ML di Apache Beam.
  • Scopri di più sull'API RunInference.
  • Scopri le metrics che puoi utilizzare per monitorare la trasformazione RunInference.