Puoi utilizzare le capacità di elaborazione dei dati su scala di Dataflow ML per le pipeline di previsione e inferenza e per la preparazione dei dati per l'addestramento.
Requisiti e limitazioni
- Dataflow ML supporta le 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. - I gestori di modelli sono disponibili per PyTorch, scikit-learn, TensorFlow, ONNX e TensorRT. Per i framework non supportati, puoi utilizzare un gestore di modelli personalizzati.
Preparazione dei dati per l'addestramento
Utilizza la funzionalità
MLTransform
per preparare i dati per l'addestramento dei modelli ML. Per ulteriori informazioni, consulta Pre-elaborare i dati conMLTransform
.Utilizza Dataflow con framework ML-OPS, come Kubeflow Pipelines (KFP) o TensorFlow Extended (TFX). Per scoprire di più, consulta Dataflow ML nei flussi di lavoro ML.
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 loro 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
Utilizza la trasformazione RunInference
per aggiungere più modelli di inferenza alla tua pipeline Dataflow. Per ulteriori informazioni, inclusi i dettagli del codice, consulta pipeline multimodello nella documentazione di Apache Beam.
Utilizza GPU con Dataflow
Per le pipeline in modalità batch o flusso che richiedono l'uso di acceleratori, puoi eseguire le pipeline Dataflow sui dispositivi GPU NVIDIA. Per ulteriori informazioni, consulta Eseguire una pipeline Dataflow con GPU.
Risoluzione dei problemi di Dataflow ML
Questa sezione fornisce strategie e link per la risoluzione dei problemi 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 lunghezza diversa 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 è in grado di raggruppare elementi di dimensioni diverse in batch. Per le soluzioni alternative, consulta
Impossibile creare in batch gli elementi del tensore
nella documentazione di Apache Beam.
Passaggi successivi
- Esplora i blocchi note dei casi d'uso.
- Trova informazioni approfondite sull'utilizzo del machine learning con Apache Beam nella documentazione sulle pipeline IA/ML di Apache Beam.
- Scopri di più sull'API
RunInference
. - Scopri di più sulle
metrics
che puoi utilizzare per monitorare la trasformazione
RunInference
.