Ubuntu

IA local: beneficios y un caso de uso de modelado predictivo

IA local: beneficios y un caso de uso de modelado predictivo

La ejecución de una infraestructura de inteligencia artificial (IA) en las instalaciones presenta desafíos importantes, como un alto gasto de capital y requiere experiencia interna. Puede proporcionar muchos beneficios para las organizaciones que desean establecer una estrategia de IA. La solución descrita en esta publicación ilustra el poder y la utilidad del Universal Operator Lifecycle Manager (OLM) utilizando Juju, un OLM universal, para crear y administrar una infraestructura de IA local. Esta infraestructura es capaz de soportar los MLOps de un caso de uso de IA comúnmente utilizado sobre datos de series de tiempo financieras y modelado predictivo.

Beneficios de una solución de IA local

Cualquier organización que busque establecer una estrategia de IA debe considerar varios criterios clave. La economía es a menudo uno de los criterios más importantes a la hora de adquirir y desarrollar tecnología e infraestructura de IA. Sin embargo, también se deben tener en cuenta varios otros criterios (flexibilidad, usabilidad y seguridad) para construir una estrategia eficiente a corto y largo plazo.

Al observar los criterios financieros, operativos y de seguridad, una decisión importante que se debe tomar es si construir y alojar la aplicación en una nube pública o construir una infraestructura local. Teniendo en cuenta el costo y la dificultad de administrar servidores de inteligencia artificial especializados y la tendencia del mercado para implementar nuevas aplicaciones en la nube pública, la implementación y la construcción de una infraestructura de inteligencia artificial en las instalaciones ofrece beneficios significativos:

Crear su propia nube privada puede reducir los costos

El uso de servicios de nube pública es tremendamente complicado. Si utiliza los servicios de AWS para desarrollar un chatbot, por ejemplo, sería muy difícil mover esta aplicación de Amazon dada la dependencia con las API y los servicios de nube pública. Este ejemplo también se puede aplicar a los servicios de nube pública de Google y Microsoft.

Ser apegado a los servicios de nube pública no es necesariamente negativo, ya que ofrecen un amplio catálogo de aplicaciones, así como capacidades de inteligencia artificial listas para usar que pueden facilitar la implementación y el desarrollo de sus cargas de trabajo de inteligencia artificial.

El problema principal aquí es que cuando progresas en tu viaje de IA, las cosas pueden empeorar muy rápidamente. El desarrollo de la IA necesita una gran cantidad de recursos computacionales, así como trabajos de entrenamiento de larga duración (de días a semanas) para poder hacer que sus redes neuronales sean útiles y estén actualizadas con datos y funciones nuevos. Este nivel de computación puede resultar costoso en la nube, con un costo de 2 a 3 veces más que construir su propia nube privada para entrenar y ejecutar las redes neuronales.

En las instalaciones hereda los procesos de seguridad estándar

Muchas empresas ya han establecido reglas de seguridad y procesos definidos que muy probablemente se romperán si eligen comenzar su viaje de IA en la nube pública. Las empresas financieras y gubernamentales son buenos ejemplos de cómo las nubes públicas pueden no cumplir con los requisitos de seguridad y cumplimiento exactos o únicos que se pueden implementar más fácilmente con una solución local. .

Costos y recursos que vienen con Data Gravity

Uno de los mayores problemas para las empresas que desean utilizar servicios de nube pública para IA es cómo utilizar los datos que han estado recopilando durante años. Si sus datos están en las instalaciones, la molestia y los costos de las transferencias de datos pueden ser onerosos, especialmente considerando el tamaño masivo de los conjuntos de datos de entrenamiento de redes neuronales. Por esa razón, generalmente también tiene sentido construir su IA en las instalaciones.

Caso de uso de modelado predictivo de series de tiempo financiero: predecir si el índice S&P 500 cerrará positivo o negativo

Los ingenieros de Canonical utilizan una arquitectura económica y probada para ejecutar este caso de uso de series temporales financieras en una infraestructura de IA / ML. El objetivo es tener una solución local de un extremo a otro que pueda admitir todo el flujo de trabajo de MLops, desde la creación del modelo hasta la implementación de la producción.

El caso de uso se puede describir de la siguiente manera:

“Usamos inteligencia artificial y redes neuronales profundas para elaborar un modelo que intentará predecir si el índice de mercado S & P 500 cerrará positivo o negativo en base a información histórica de los mercados de valores.

Los mercados financieros son cada vez más globales: puede utilizar la información de una zona horaria anterior a su favor en una zona horaria posterior. «

En lugar de centrarse en el código fuente del caso de uso, que ya está cubierto en varias publicaciones de blog y Muestras de Kubeflow, en esta publicación de blog queremos hacer hincapié en la arquitectura del entorno local, el flujo de trabajo y los componentes para ejecutarlo.

Para poder construir el modelo de predicción de series de tiempo y ponerlo a disposición de los servicios del mercado financiero realizaremos varios pasos:

  1. Obtenga datos de varios mercados financieros de un almacén de datos y conviértalos en un formato utilizable.
  2. Utilice TensorFlow para crear y entrenar modelos para predecir si el índice de mercado cerrará positivo o negativo.
  3. Envíe un modelo entrenado a un sistema de almacenamiento de objetos.
  4. Sirve el modelo entrenado mediante tensorflow en un bus de mensajería distribuido.

Figura 1: Flujo de trabajo del caso de uso de series de tiempo financieras

El flujo de trabajo de nuestro caso de uso se ilustra en la figura 1. Estamos utilizando múltiples componentes de código abierto para lograr nuestro objetivo. De hecho, estamos utilizando la distribución encantadora de esas aplicaciones para poder aprovechar el poder de OLM en los ciclos de vida de implementación y administración. Los Charms son conjuntos de scripts que simplifican las tareas de implementación y administración de un servicio. Se revisan y actualizan periódicamente. Los siguientes amuletos y conjunto de amuletos se han utilizado para esta demostración:

  • Elasticsearch: Elasticsearch es un motor de búsqueda y análisis de código abierto, distribuido y en tiempo real, flexible y potente. Diseñado desde cero para su uso en entornos distribuidos donde la confiabilidad y la escalabilidad son imprescindibles, Elasticsearch le brinda la capacidad de ir más allá de la simple búsqueda de texto completo.

Charmed Elasticsearch ›

  • Canalización de Kubeflow: Tuberías de Kubeflow es una solución integral para implementar y administrar flujos de trabajo de aprendizaje automático de un extremo a otro. Utilice Kubeflow Pipelines para una experimentación rápida y confiable. Puede programar y comparar ejecuciones y examinar informes detallados de cada ejecución.

Paquete Charmed Kubeflow lite ›

  • Publicación de Tensorflow: TensorFlow Serving es un sistema de publicación flexible y de alto rendimiento para modelos de aprendizaje automático, diseñado para entornos de producción. TensorFlow Serving facilita la implementación de nuevos algoritmos y experimentos, al tiempo que mantiene la misma arquitectura de servidor y API. TensorFlow Serving proporciona una integración inmediata con los modelos de TensorFlow, pero se puede ampliar fácilmente para ofrecer otros tipos de modelos y datos.
  • Kafka: Apache Kafka es una plataforma de streaming de eventos distribuida de código abierto utilizada por miles de empresas para canalizaciones de datos de alto rendimiento, análisis de streaming, integración de datos y aplicaciones de misión crítica.

Figura 2: La canalización de Kubeflow

Básicamente, comenzamos ejecutando la canalización de Financial Time Series Kubeflow. En primer lugar, en el paso de preproceso, descargamos datos sin procesar de elasticsearch y los preprocesamos. Los datos representan valores de cierre antiguos de múltiples mercados de valores (aord, dax, djia, nyse, snp…). Luego, en el paso de entrenamiento, entrenamos un modelo de red neuronal con los datos preprocesados. En este paso, usamos la biblioteca Tensorflow para entrenar el modelo y podemos ejecutarlo usando CPU o GPU. Finalmente, en el paso de implementación, cargamos el modelo de resultado en un depósito s3 dentro de Ceph.

El servidor de tensorflow descarga el modelo entrenado del bucket de ceph s3 y lo entrega a través de Kafka.

Ambiente

Figura 3: Descripción general de la arquitectura

La Figura 3 representa una vista de alto nivel de nuestro medio ambiente. Lo que hay dentro del cuadro punteado representa un ambiente Juju o un Modelo Juju.

Los servicios elasticsearch, k8s y kafka se implementarán y administrarán a través de Juju además de las máquinas virtuales aprovisionadas por MAAS. Los servicios de servidor de Kubeflow y tensorflow se implementarán sobre Kubernetes también a través de Juju.

Básicamente, elasticsearch se utilizará para almacenar los datos sin procesar que se utilizarán para entrenar nuestro modelo.

K8s, se utilizará para ejecutar la plataforma Kubeflow y el servicio de tensorflow. Ceph se utilizará principalmente como un sistema de almacenamiento de objetos para almacenar nuestro modelo entrenado. También actúa como un sistema de almacenamiento en bloque para almacenar volúmenes persistentes para nuestros pods de Kubernetes. Kafka actúa como un bus de mensajería entre el servidor modelo y las aplicaciones cliente.

Como se mencionó anteriormente, todos los componentes desplegados en este entorno se realizan a través de Juju y los encantos. La Figura 4 muestra el resultado ambiental a través de Juju gui.

Figura 4: Modelos de Juju a través de Juju gui

Conclusión

Únase a miles de desarrolladores y empresas que eligieron Ubuntu como su plataforma para cargas de trabajo de desarrollo, innovación y producción.

¡Despeguemos juntos!

Póngase en contacto con el equipo de Ubuntu Kubeflow>

También hay un seminario web disponible para esta demostración>

Leave a Comment

You may also like