Big Data
Inteligencia artificial
Analítica de datos
DevOps

Utilizar datos sintéticos para pruebas continuas y aprendizaje automático

Cuando los datos reales no son éticos, no están disponibles o no existen, los conjuntos de datos sintéticos pueden proporcionar la cantidad y variedad necesarias.

datos
Créditos: Campaign Creators (Unsplash).

Los equipos de Devops pretenden aumentar la frecuencia de despliegue, reducir el número de defectos encontrados en producción y mejorar la fiabilidad de todo, desde los microservicios y las aplicaciones orientadas al cliente, hasta los flujos de trabajo de los empleados y las automatizaciones de los procesos empresariales. 

La implementación de canalizaciones CI/CD (integración continua y entrega continua) garantiza una ruta perfecta para construir y desplegar todas estas aplicaciones y servicios, y la automatización de las pruebas y la institución de prácticas de pruebas continuas ayudan a los equipos a mantener la calidad, la fiabilidad y el rendimiento. Con las pruebas continuas, los equipos de desarrollo ágil pueden cambiar sus pruebas de desplazamiento a la izquierda, aumentar el número de casos de prueba y aumentar la velocidad de las pruebas.

Una cosa es construir casos de prueba y automatizarlos, y otra cuestión es tener un volumen y una variedad suficientes de datos de prueba para validar un número adecuado de casos de uso y escenarios límite. Por ejemplo, las pruebas de un formulario de registro de un sitio web deben validar una permutación de patrones de entrada, incluyendo datos faltantes, entradas de datos largas, caracteres especiales, entradas multilingües y otros escenarios.

El reto es generar datos de prueba. Un enfoque es la generación de datos sintéticos, que utiliza diferentes técnicas para extrapolar conjuntos de datos basados en un modelo y un conjunto de patrones de entrada. La generación de datos sintéticos aborda el volumen y la variedad de los datos necesarios. También se puede utilizar la generación de datos sintéticos para crear conjuntos de datos, en los casos en los que el uso de datos reales podría plantear problemas legales o de otro tipo.

"Los datos sintéticos son una gran opción cuando los datos necesarios no existen o el conjunto de datos original está plagado de información personal identificable", afirma Roman Golod, director de tecnología y cofundador de Accelario. "El mejor enfoque es crear datos sintéticos basados en esquemas existentes para la gestión de datos de prueba o crear reglas que garanticen que sus análisis de BI, IA y otros proporcionan resultados procesables. Para ambos, debes asegurarte de que la automatización de la generación de datos sintéticos pueda ajustarse con precisión según los requisitos cambiantes del negocio."

Casos de uso para la generación de datos sintéticos

Aunque la necesidad más básica de generación de datos sintéticos proviene de las pruebas de aplicaciones, automatizaciones e integraciones, la demanda está creciendo a medida que las pruebas de ciencia de datos requieren datos de prueba para los algoritmos de aprendizaje automático e inteligencia artificial. Los científicos de datos a veces utilizan datos sintéticos para entrenar redes neuronales; en otras ocasiones utilizan datos generados por máquinas para validar los resultados de un modelo.

Otros casos de uso de datos sintéticos son más específicos:

  • Probar las migraciones a la nube asegurándose de que la misma aplicación que se ejecuta en dos infraestructuras genera resultados idénticos.
  • Creación de datos para pruebas de seguridad, detección de fraudes y otros escenarios del mundo real en los que pueden no existir datos reales.
  • Generación de datos para probar actualizaciones de ERP (planificación de recursos empresariales) y CRM (gestión de relaciones con los clientes) a gran escala, en las que los probadores quieren validar las configuraciones antes de migrar los datos reales.
  • Generación de datos para sistemas de apoyo a la toma de decisiones para probar las condiciones límite, validar las selecciones de características, proporcionar una muestra más amplia e imparcial de datos de prueba y garantizar que los resultados de la IA sean explicables
  • Pruebas de estrés de sistemas de IA e Internet de las cosas, como vehículos autónomos, y validación de sus respuestas a diferentes situaciones de seguridad

Si está desarrollando algoritmos o aplicaciones con entradas de datos de alta dimensionalidad y factores críticos de calidad y seguridad, la generación de datos sintéticos proporciona un mecanismo para crear grandes conjuntos de datos de forma rentable.

"Los datos sintéticos son a veces el único camino a seguir, ya que los datos reales no están disponibles o no son utilizables", afirma Maarit Widman, científica de datos de KNIME.

Cómo generan las plataformas los datos sintéticos

Es posible que se pregunte cómo generan las plataformas los datos sintéticos de prueba y cómo seleccionar los algoritmos y las configuraciones óptimas para crear los datos necesarios.

Widman lo explica así: "Hay dos estrategias principales para generar datos sintéticos: basados en probabilidades estadísticas o en algoritmos de aprendizaje automático. Recientemente, las técnicas de aprendizaje profundo como las redes neuronales recurrentes —como las redes de memoria a corto plazo y las redes generativas adversarias— han aumentado su popularidad por su capacidad de generar nueva música, texto e imágenes a partir de literalmente nada."
Los científicos de datos utilizan las RNN (redes neuronales recurrentes) cuando hay dependencias entre los puntos de datos, como los datos de series temporales y el análisis de textos. Las LSTM (memoria larga a corto plazo o long short-term memory en inglés) crean una forma de memoria a largo plazo a través de una serie de módulos que se repiten, cada uno con puertas que proporcionan una función similar a la de la memoria. Por ejemplo, la LSTM en el análisis de textos puede aprender las dependencias entre caracteres y palabras para generar nuevas secuencias de caracteres. También se utiliza para la creación de música, la detección de fraudes y la corrección gramatical del Pixel 6 de Google.

Las GAN (redes generativas adversariales) se han utilizado para generar muchas formas de imágenes, descifrar contraseñas en ciberseguridad e incluso armar una pizza. Las GAN crean datos utilizando un algoritmo para generar patrones de datos y un segundo algoritmo para probarlos. A continuación, forman una competición adversa entre ambos para encontrar patrones óptimos. Algunos ejemplos de códigos de GAN para generar datos sintéticos son los dígitos manuscritos de PyTorch, un modelo de TensorFlow para desarrollar distribuciones gaussianas unidimensionales y un modelo de R para simular imágenes de satélite.

Hay un arte y una ciencia en la elección de modelos basados en el aprendizaje automático y la estadística. Andrew Clark, cofundador y CTO de Monitaur, explica cómo experimentar con la generación de datos sintéticos. "La regla general es elegir siempre el modelo más sencillo para el trabajo que funcione con un nivel de precisión aceptable. Si se trata de modelar las líneas de caja de los clientes, un proceso estocástico univariante basado en una distribución de Poisson sería un buen punto de partida. Por otro lado, si tiene un gran conjunto de datos de suscripción de préstamos y le gustaría crear datos de prueba, un modelo GAN podría ser un mejor ajuste para capturar las complejas correlaciones y relaciones entre las características individuales".

Si está trabajando en un caso de uso de ciencia de datos, entonces podría querer la flexibilidad para desarrollar un modelo de generación de datos sintéticos. Las opciones comerciales incluyen Chooch para la visión por ordenador, Datomize y Deep Vision Data.

Si su objetivo es la comprobación de aplicaciones, considere las plataformas para la gestión de datos de prueba o la generación sintética de datos de prueba, como Accelario, Delphix, GenRocket, Informatica, K2View, Tonic y varias herramientas de datos de prueba, como los generadores de datos de prueba de código abierto. Visual Studio Premium de Microsoft también tiene un generador de datos de prueba incorporado, y los desarrolladores de Java deberían revisar este ejemplo que utiliza el generador de datos de Vaadin.

Tener una práctica de pruebas sólida es increíblemente importante hoy en día porque las organizaciones dependen de la fiabilidad de las aplicaciones y de la precisión de los modelos de aprendizaje automático. La generación de datos sintéticos es otro enfoque para cerrar las brechas. De este modo, no sólo se cuenta con metodologías de prueba, formación o validación, sino que también se dispone de una forma de generar datos suficientes para construir modelos y validar aplicaciones.



TE PUEDE INTERESAR...

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital