Kubeflow é uma plataforma de aprendizado de máquina (ML) nativa do Kubernetes, que simplifica a criação, o treinamento e a implantação de ciclos de vida de modelos para infraestruturas diversas. Nós utilizamos extensivamente o Pipelines para codificar fluxos de trabalho de ML para vários modelos, cobrindo casos de uso de experimentação, treinamento e entrega. Além do Pipelines, Kubeflow vem com múltiplos componentes. Entre estes, achamos o ajuste de hiper-parâmetros com o Katib e multi-tenancy bastante úteis.
Kubeflow é interessante por dois motivos. Primeiro, é um uso inovador de Kubernetes Operators, que destacamos em nossa edição de abril de 2019 do Radar. Segundo, fornece uma maneira de codificar e versionar fluxos de trabalho de aprendizado de máquina para que eles sejam mais facilmente transportados de um ambiente de execução para outro. O Kubeflow consiste de vários componentes, incluindo notebooks Jupyter, pipelines de dados e ferramentas de controle. Muitos desses componentes são empacotados como operadores Kubernetes para aproveitar a capacidade do Kubernetes de reagir a eventos gerados por pods implementando vários estágios do fluxo de trabalho. Ao empacotar os programas individuais e os dados como contêineres, fluxos de trabalho inteiros podem ser transportados de um ambiente para outro. Isso pode ser útil quando mover um fluxo de trabalho útil, porém computacionalmente desafiador e desenvolvido na nuvem, para um supercomputador personalizado ou cluster de uma unidade de processamento tensorial.