
Kubeflow 1.0: un camino de código abierto hacia Machine Learning empresarial de principio a fin
Por: Animesh Singh, Director de programa – Plataforma de inteligencia artificial y aprendizaje automático de IBM.
“El Machine Learning, debe abordar una abrumadora variedad de funcionalidades alrededor de la construcción, capacitación, servicio y gestión de modelos. Hacerlo de forma consistente, portátil y escalable es difícil.
El framework de Kubernetes es muy apropiado para abordar estos problemas, por lo que es una excelente base para implementar cargas de trabajo de aprendizaje automático. El desarrollo del proyecto Kubeflow ha sido un recorrido para cumplir esta promesa, y nos emociona haber llegado a su primer hito importante: Kubeflow 1.0.
Siempre lista para trabajar con una comunidad fuerte y diversa, IBM se unió a Kubeflow desde el principio. En el transcurso del año pasado, IBM se convirtió en el mayor colaborador de código para Kubeflow, después de Google. Más de 20 IBMers han contribuido con código a Kubeflow, con más de 500 commits y 900K líneas de código.
Nuestro enfoque ha estado en contribuir a los componentes claves de Kubeflow, incluyendo Katib (optimización de hiperparámetros), KFServing (modelo de servicio), Fairing (SDK), Pipelines de Kubeflow, kfctl (plano de control), Manifiestos (configuraciones), TF-Operator y PyTorch-Operator (entrenamiento modelo).
Además, hemos estado ejecutando proyectos internos y pruebas de rendimiento, así como evaluando ajustes de producción para clientes empresariales, al tiempo que trabajamos en los requisitos para ciertos proyectos en los que hemos invertido (por ejemplo, Containerd, OpenShift y Power Systems). Como parte de 1.0, muchos componentes de Kubeflow en torno a los principios básicos de construcción, entrenamiento, implementación y administración han madurado, y están listos para implementaciones al grado de producción. Para más detalles, sigue el blog de la comunidad de Kubeflow 1.0
Kubeflow proporciona instrucciones para la implementación en Google Cloud Platform (GCP) y Amazon Web Services (AWS). Además, tenemos instrucciones para ejecutar Kubeflow en IBM Cloud, Kubeflow en OpenShift y Kubeflow en Power. Estamos trabajando con clientes empresariales en telecomunicaciones, banca, agricultura y otros dominios para habilitar una plataforma de Machine Learning de principio a fin, que utilice Kubeflow y otras tecnologías de código abierto. Algunas de esas historias de clientes se compartirán en el próximo IBM THINK en mayo.
A continuación, se enumeran algunos de los aspectos más destacados del trabajo en el que colaboramos con la comunidad de Kubeflow y que conducen a un Kubeflow 1.0 de nivel empresarial.
Kubeflow Operator para implementación y administración de Kubeflow
Uno de nuestros esfuerzos de colaboración más recientes fue el desarrollo de Kubeflow Operator, que ayuda a implementar, monitorear y administrar el ciclo de vida de Kubeflow. Se creó utilizando el Operator Framework, que es un conjunto de herramientas de código abierto que se utiliza para desarrollar, probar, empaquetar y administrar el ciclo de vida de los operadores. Kubeflow Operator ahora está disponible en el GitHub de Kubeflow. Además, creamos la meta data y el código para que el operador se publique oficialmente en el OperatorHub. Esto nos ayudará a aprovechar el ecosistema y las herramientas alrededor de OpenShift, principalmente el Operator Lifecycle Manager.
Para comenzar a usar Kubeflow Operator, sigue el tutorial en IBM Developer.
TF Operator, PyTorch Operator, Katib para entrenamiento distribuido y optimización de hiperparámetros
El entrenamiento de modelos distribuidos en Kubernetes para Tensorflow, PyTorch, etc. ha sido la base de Kubeflow. Hemos contribuido con los SDKs de Python para Tensorflow Operator y PyTorch Operator, que permiten ejecutar entrenamiento desde tus notebooks.
Además, Katib es un componente de Kubeflow que permite el ajuste de hiperparámetros y la búsqueda de arquitectura neuronal. Somos uno de los principales colaboradores de Katib y lideramos el diseño e implementación de varias funciones como el recopilador de métricas, la plantilla de prueba, el servicio de sugerencias, la API de Katib y más. También publicamos documentación específica en varias características de Katib con los detalles ‘detrás de bambalinas’ y cómo comenzar con Katib.
KFServing para inferencia y gestión de modelos
IBM ayudó a fundar KFServing, trabajando juntamente con Google, Bloomberg, Seldon y otros. El equipo ha ayudado con muchas características, incluidas las contribuciones para los servidores SKLearn y PyTorch, almacenamiento, SDK, actualizaciones de KNative, integración de pipelines, infraestructura de prueba E2E y otras características importantes, incluido el co-liderazgo del diseño del log de las cargas.
Para este año, uno de los principales objetivos es llevar los recursos de inteligencia artificial confiable a KFServing, como detección de sesgos, detección de adversarios y explicabilidad usando la suite de proyectos de inteligencia artificial confiables de IBM.
Puedes usar KFServing en 5 minutos e implementar una versión predeterminada de un modelo utilizando una especificación simple. Para escenarios de inferencia más avanzados, sigue nuestra sesión de KubeCon.
Kubeflow Pipelines para orquestar workflows de Machine Learning
Nuestro compromiso con Kubeflow Pipelines comenzó con la contribución de componentes de pipeline y muestras para Spark, el portafolio de Watson (Watson Machine Learning y Watson OpenScale), KFServing, Katib, AI Fairness 360 y el toolkitAdversarial Robustness 360.
Además, IBM ha ayudado a facilitar la ejecución de Pipelines con Containerd (en lugar de sólo Docker), trabajando con la comunidad Argo. IBM ha contribuido en una amplia gama de roadmaps y discusiones de diseño para los Pipelines de Kubeflow y TFX, autenticación/autorización locales, y más. Actualmente, IBM está conduciendo el estudio comparativo de los pipelines de Kubeflow y Tekton y un prototipo inicial para el código y compilador KFP-Tekton YAML. Estamos ejecutando MLOps Sig en CD Foundation para impulsarlo.
También publicamos una muestra de pipeline que incluye Katib, TFJob y KFServing.
Fairing para proporcionar un SDK de Kubeflow multicloud consistente
Al usar Kubeflow Fairing y agregar algunas líneas de código, puedes ejecutar tu trabajo de entrenamiento de Machine Learning localmente o en la nube, directamente desde el código de Python o un Jupyter Notebook. IBM ha estado colaborando en gran medida a Kubeflow Fairing, incluyendo los paquetes de Python para Fairing, la gestión de versiones y su mantenimiento, su integración con KFServing, la mejora de CI / CD de Fairing, y otras correcciones o mejoras de funciones.
Únete a nosotros para construir una plataforma de Machine Learning de nivel empresarial
Estas son algunas maneras en las que puedes participar:
- Para contribuir y crear una plataforma de Machine Learning de nivel empresarial de principio a fin en OpenShift y Kubernetes, haz parte a la comunidad de Kubeflow y comparte cualquier pregunta, comentario o sugerencia
- Si te gustaría recibir ayuda para implementar y administrar Kubeflow en tu plataforma de Kubernetes local, OpenShift o en IBM Cloud, conéctate con nosotros.
- Consulta el OpenDataHub si estás interesado en otros proyectos de código abierto relacionados con datos e inteligencia artificial como, Kafka, Hive, Hue y Spark, y cómo llevarlos juntos de forma nativa a la nube.
Gracias a los colaboradores de IBM en el proyecto Kubeflow, a saber, Jin Chi He, Tommy Li, Hou Gang Liu, Weiqiang Zhuang, Guang Ya Liu, Christian Kadner, Andrew Butler, Jane Man y muchos otros por contribuir a los diversos aspectos del proyecto, tanto interna como externamente.
Además, felicitaciones a nuestros colegas de Red Hat por ayudar a que Kubeflow en OpenShift se fortalezca y esté listo para producción de casos de uso empresarial. Y, por último, pero no menos importante, gracias a los miembros de la comunidad colaborativa que comprenden Google, Arrikto, Cisco, Bloomberg, Microsoft y muchos otros por llevar esto al primer hito importante: Kubeflow 1.0″.

