Puoi utilizzare le capacità di elaborazione dei dati su scala di Dataflow ML per pipeline di previsione e inferenza e per preparazione dei dati per l'addestramento.
Requisiti e limitazioni
- Dataflow ML supporta le pipeline in batch e in streaming.
- 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. - Gli handler dei modelli sono disponibili 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
Utilizza la funzionalità
MLTransform
per preparare i dati per l'addestramento dei modelli ML. Per maggiori informazioni, consulta Pre-elaborare i dati conMLTransform
.Usa Dataflow con framework ML-OPS, come Pipeline di Kubeflow (KFP) o TensorFlow Extended (TFX). Per saperne di più, consulta Dataflow ML nei flussi di lavoro ML.
Pipeline di previsione e inferenza
Dataflow ML combina la potenza di Dataflow con
di Apache Beam
API RunInference
.
Con l'API RunInference
definisci le caratteristiche e le proprietà del modello
e passiamo questa configurazione alla trasformazione RunInference
. Questa funzionalità
consente agli utenti di eseguire il modello all'interno
le pipeline Dataflow senza la necessità di sapere
nei dettagli di implementazione del modello. Puoi scegliere il framework
adatta ai tuoi dati, ad esempio TensorFlow e PyTorch.
Eseguire più modelli in una pipeline
Utilizza la trasformazione RunInference
per aggiungere più modelli di inferenza alla
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 usare RunInference con una pipeline Java, crea una trasformazione Python tra linguaggi. La pipeline chiama Transformer, che esegue la pre-elaborazione, la post-elaborazione e l'inferenza.
Per istruzioni dettagliate e una pipeline di esempio, consulta Utilizzare RunInference dall'SDK Java.
Utilizza GPU con Dataflow
Per pipeline in modalità batch o flusso che richiedono l'uso di acceleratori, puoi di eseguire pipeline Dataflow su dispositivi GPU NVIDIA. Per ulteriori informazioni, consulta Eseguire una pipeline Dataflow con GPU.
Risolvi i problemi di Dataflow ML
Questa sezione fornisce strategie per la risoluzione dei problemi e link che potresti trovare utili durante l'uso di Dataflow ML.
Lo stack prevede che ogni tensore abbia la stessa dimensione
Se fornisci immagini di dimensioni diverse o embedding di parole di lunghezze diverse
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ò raggruppare elementi tensori di dimensioni diverse. Per le soluzioni alternative, vedi
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 dell'ML con Apache Beam in Apache Beam Pipeline IA/ML documentazione.
- Scopri di più sull'API
RunInference
. - Scopri le
metriche
che puoi utilizzare per monitorare la trasformazione
RunInference
.