Puedes usar las funciones de procesamiento de datos a gran escala de Dataflow ML para flujos de procesamiento de predicción e inferencia y para preparar datos para el entrenamiento.

Requisitos y limitaciones
- Dataflow ML admite flujos de procesamiento por lotes y de streaming.
- La API
RunInferencees compatible con Apache Beam 2.40.0 y versiones posteriores. - La API
MLTransformes compatible con Apache Beam 2.53.0 y versiones posteriores. - Hay controladores de modelos disponibles para PyTorch, scikit-learn, TensorFlow, ONNX y TensorRT. En el caso de los frameworks no compatibles, puedes usar un controlador de modelo personalizado.
Preparación de los datos para el entrenamiento
Usa la función
MLTransformpara preparar tus datos para entrenar modelos de aprendizaje automático. Para obtener más información, consulta Preprocesar datos conMLTransform.Usa Dataflow con frameworks de operaciones de aprendizaje automático, como Kubeflow Pipelines (KFP) o TensorFlow Extended (TFX). Para obtener más información, consulta Dataflow ML en flujos de trabajo de aprendizaje automático.
Flujos de procesamiento de predicción e inferencia
Dataflow ML combina la potencia de Dataflow con la RunInference
API de Apache Beam. Con la API RunInference, defines las características y las propiedades del modelo y pasas esa configuración a la transformación RunInference. Esta función permite a los usuarios ejecutar el modelo en sus canalizaciones de Dataflow sin necesidad de conocer los detalles de implementación del modelo. Puedes elegir el framework que mejor se adapte a tus datos, como TensorFlow y PyTorch.
Ejecutar varios modelos en una canalización
Usa la transformación RunInference para añadir varios modelos de inferencia a tu flujo de procesamiento de Dataflow. Para obtener más información, incluidos los detalles del código, consulta Pipelines multimodelos en la documentación de Apache Beam.
Crear un flujo de procesamiento multilingüe
Para usar RunInference con una canalización de Java, crea una transformación de Python entre lenguajes. El flujo llama a la transformación, que realiza el preprocesamiento, el posprocesamiento y la inferencia.
Para obtener instrucciones detalladas y un ejemplo de flujo de procesamiento, consulta Usar RunInference desde el SDK de Java.
Usar GPUs con Dataflow
En el caso de las canalizaciones por lotes o de streaming que requieran el uso de aceleradores, puedes ejecutar canalizaciones de Dataflow en dispositivos con GPU NVIDIA. Para obtener más información, consulta el artículo sobre cómo ejecutar una canalización de Dataflow con GPUs.
Solucionar problemas de Dataflow ML
En esta sección se ofrecen estrategias y enlaces para solucionar problemas que pueden ser útiles al usar Dataflow ML.
Stack espera que cada tensor tenga el mismo tamaño
Si proporcionas imágenes de diferentes tamaños o representaciones de palabras de diferentes longitudes
al usar la API RunInference, puede producirse el siguiente error:
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)']
Este error se produce porque la API RunInference no puede agrupar elementos de tensor de diferentes tamaños. Para obtener soluciones alternativas, consulta Unable to batch tensor
elements
en la documentación de Apache Beam.
Evitar errores de falta de memoria con modelos grandes
Cuando cargas un modelo de aprendizaje automático mediano o grande, es posible que tu máquina se quede sin memoria.
Dataflow proporciona herramientas para evitar errores de falta de memoria (OOM) al cargar modelos de aprendizaje automático. Para obtener más información, consulta las RunInferenceprácticas recomendadas para las transformaciones.
Siguientes pasos
- Consulta los cuadernos de Dataflow ML para ver casos de uso específicos.
- Consulta información detallada sobre cómo usar el aprendizaje automático con Apache Beam en la documentación de pipelines de IA y aprendizaje automático de Apache Beam.
RunInferenceMás información sobre la API- Consulta las
RunInferenceprácticas recomendadas. - Consulta las métricas
que puedes usar para monitorizar tu transformación
RunInference.