Según un estudio realizado por la Universidad de Stanford, ha habido un aumento de 14 veces en la cantidad de nuevas empresas de Inteligencia Artificial (IA) lanzadas desde principios de siglo. Solo en el Reino Unido, dice Carmine Rimi, gerente de productos de AI en Canónico – la compañía detrás de Ubuntu, Los desarrolladores de AI fueron testigos de un aumento del 200% en la financiación de capital de riesgo solo en el último año; como el potencial transformador de la IA rompe todos los límites.
La creación de aplicaciones de inteligencia artificial para mejorar las formas de hacer negocios y, de hecho, la vida de las personas es una tarea enorme. Estas aplicaciones son complicadas de desarrollar y construir, ya que involucran diferentes tipos de datos; Hacer que portar a diferentes plataformas sea problemático.
Sobre estos desafíos, se requieren varios pasos en cada etapa para comenzar a construir incluso la aplicación de AI más básica. Es necesario un espectro de habilidades, incluida la extracción de características, la verificación y el análisis de la recopilación de datos y la gestión de recursos de la máquina, para sustentar un subconjunto comparativamente pequeño de código ML real. Es necesario realizar mucho trabajo antes de tomar una posición en la línea de salida; junto con una gran cantidad de esfuerzo continuo para mantener las aplicaciones actualizadas. Todos los desarrolladores están buscando maneras de superar estos grandes desafíos.
Contenerse
El resultado de esta búsqueda, para mantener las aplicaciones actualizadas y equilibrar las cargas de trabajo en el desarrollo de aplicaciones, a menudo llega a la misma respuesta: Kubernetes. Esta plataforma de código abierto puede ser un facilitador, ya que puede automatizar la implementación y la administración de aplicaciones en contenedores, que comprenden cargas de trabajo complicadas, como AI y Aprendizaje automático. Kubernetes ha disfrutado de algo espectacular porque es capaz de estas cosas, pero también como una plataforma de orquestación de contenedores.
Forrester recientemente declaró que "Kubernetes ha ganado la guerra por el dominio de la orquestación de contenedores y debería estar en el centro de sus planes de microservicios". Los contenedores ofrecen un entorno compacto para que funcionen los procesos. Son fáciles de escalar, portátiles en una variedad de entornos y, por lo tanto, permiten que grandes aplicaciones monolíticas se dividan en microservicios específicos y más fáciles de mantener. La mayoría de los desarrolladores dicen que están aprovechando Kubernetes a través de una variedad de etapas de desarrollo, de acuerdo con una encuesta de Cloud Native Computing Foundation.
La mayoría de las empresas están ejecutando, o planean comenzar a utilizar, Kubernetes como plataforma para cargas de trabajo. Por supuesto, la IA es una carga de trabajo que está ganando rápidamente importancia. Kubernetes es ideal para esta tarea, porque los algoritmos de AI deben ser capaces de escalarse para ser efectivos. Ciertos algoritmos de aprendizaje profundo y conjuntos de datos necesitan una gran cantidad de cómputo. Kubernetes puede ayudar aquí porque se enfoca en escalar alrededor de la demanda.
Kubernetes también puede proporcionar una hoja de ruta para desplegar cargas de trabajo habilitadas para AI en múltiples servidores de productos básicos, que abarcan todo el flujo de software, al mismo tiempo que excluyen los gastos generales de administración. Una vez que los modelos están capacitados, el servicio en diferentes escenarios de implementación, desde el procesamiento de borde hasta los centros de datos centrales, es un desafío para los formularios de aplicación no en contenedores. Una vez más, Kubernetes puede desbloquear la flexibilidad necesaria para un despliegue distribuido de agentes de inferencia en una variedad de sustratos.
Cambio de enfoque
A medida que las empresas centran su atención en AI para reducir los costos operativos, mejorar la toma de decisiones y atender a los clientes de nuevas maneras, los contenedores basados en Kubernetes se están convirtiendo rápidamente en la tecnología número uno para ayudar a las empresas a adoptar AI y Machine Learning. En diciembre pasado, el proyecto Kubernetes dio a conocer Kubeflow, que se centra en hacer que las implementaciones de flujos de trabajo de Aprendizaje automático en Kubernetes sean simples, portátiles y escalables.
Mientras Kubernetes comenzó su vida con solo servicios sin estado, el proyecto declaró que los clientes habían comenzado a mover cargas de trabajo complejas a la plataforma, aprovechando las ricas API, confiabilidad y rendimiento de Kubernetes. Uno de los casos de uso de más rápido crecimiento para Kubernetes es la plataforma de implementación de elección para el Aprendizaje Automático.
A principios de 2017 sólo el Google Cloud Platform es compatible con Kubernetes, con su motor de Google Kubernetes. A la culminación del año, todos los principales proveedores de nubes públicas estaban a bordo. Especialmente después de Microsoft Se agregó el soporte de Kubernetes al servicio de contenedores de Azure y Amazonas Debutó el servicio Amazon Elastic Container para Kubernetes.
Las formas en que Kubernetes está siendo implementado y aprovechado por las empresas es aparentemente ilimitada. En una vida relativamente corta, Kubernetes ha logrado mucho. Esto subraya la medida en que los proveedores de tecnología y sus clientes están acudiendo en masa a la idea de que los contenedores ofrecen enormes beneficios en el desarrollo y la gestión de las partes de aplicaciones de AI. La aparición de la IA está provocando un gran interés en los contenedores para introducir la repetibilidad y la tolerancia a fallas en estas complicadas cargas de trabajo.
Kubernetes se está convirtiendo en un de facto Combinación estándar y fantástica para gestionar aplicaciones de AI en contenedores. Se ha demostrado y debe ser un beneficio dramático para las empresas durante mucho tiempo.
El autor es Carmine Rimi, gerente de producto de AI en Canonical.