Desafio
Um grande número de produtos da Babylon utiliza machine learning e inteligência artificial, e em 2019 não havia poder computacional interno suficiente para executar um experimento específico. A empresa também estava crescendo (de 100 para 1.600 em três anos) e planejando expansão para outros países.
Solução
A Babylon havia migrado suas aplicações voltadas ao usuário para uma plataforma Kubernetes em 2018, então a equipe de infraestrutura recorreu ao Kubeflow, um conjunto de ferramentas para machine learning em Kubernetes. "Tentamos criar um servidor principal Kubernetes, implantamos o Kubeflow e orquestramos todo o experimento, que acabou sendo um grande sucesso", diz o Líder de Infraestrutura de IA Jérémie Vallée. A equipe começou a construir uma plataforma de treinamento de IA de autoatendimento em cima do Kubernetes.
Impacto
Em vez de esperar horas ou dias para conseguir computar, as equipes podem obter acesso instantaneamente. As validações clínicas costumavam levar 10 horas; agora são feitas em menos de 20 minutos. A portabilidade da plataforma nativa de nuvem também permitiu que a Babylon expandisse para outros países.
Desde seu lançamento no Reino Unido em 2013, a startup facilitou milhões de consultas digitais ao redor do mundo. No Reino Unido, os pacientes normalmente esperavam uma ou duas semanas para uma consulta médica. Através do serviço NHS da Babylon, GP at Hand—que tem mais de 75.000 pacientes registrados—39% conseguem uma consulta pelo telefone em 30 minutos, e 89% em 6 horas.
Isso é apenas o começo. "Tentamos combinar diferentes tipos de tecnologia com a expertise médica que temos internamente para construir produtos que ajudarão os pacientes a gerenciar e entender sua saúde, e também ajudarão os médicos a serem mais eficientes no que fazem", diz Jérémie Vallée, Líder de Infraestrutura de IA na Babylon.
Um grande número desses produtos utiliza machine learning e inteligência artificial, e em 2019, os pesquisadores chegaram a um ponto crítico. "Temos alguns servidores internos onde nossos pesquisadores estavam fazendo muitos experimentos de IA e algum treinamento de modelos, e chegamos a um ponto em que não tínhamos computação interna suficiente para executar um experimento específico", diz Vallée.
A Babylon havia migrado suas aplicações voltadas ao usuário para uma plataforma Kubernetes em 2018, "e tínhamos muito conhecimento de Kubernetes graças à migração", acrescenta. Para otimizar alguns dos modelos que haviam sido criados, a equipe recorreu ao Kubeflow, um conjunto de ferramentas para machine learning em Kubernetes. "Tentamos criar um servidor principal Kubernetes, implantamos o Kubeflow e orquestramos todo o experimento, que acabou sendo um grande sucesso", diz ele.
Com base nessa experiência, a equipe de Vallée foi encarregada de construir uma plataforma de autoatendimento para ajudar as equipes de IA da Babylon a se tornarem mais eficientes e, por extensão, ajudar a levar produtos ao mercado mais rapidamente. Os principais requisitos: (1) a capacidade de dar aos pesquisadores e engenheiros acesso à computação que eles precisavam, independentemente do tamanho dos experimentos que precisassem executar; (2) uma forma de fornecer às equipes as melhores ferramentas que elas precisavam para fazer seu trabalho, sob demanda e de forma centralizada; e (3) a plataforma de treinamento tinha que estar próxima dos dados que estavam sendo gerenciados, devido à expansão da empresa para diferentes países.
Kubernetes foi um facilitador em todos os aspectos. "Kubernetes é uma ótima plataforma para machine learning porque vem com todo o agendamento e escalabilidade que você precisa", diz Vallée. A necessidade de manter dados em todos os países em que a Babylon opera requer uma estratégia multi-região e multi-nuvem, e alguns países podem nem ter um provedor de nuvem público. "Queríamos tornar essa plataforma portátil para que pudéssemos executar tarefas de treinamento em qualquer lugar", diz ele. "Kubernetes ofereceu uma camada base que permite implantar a plataforma fora do provedor de nuvem, e então implantar qualquer ferramenta que você precise. Esse foi um grande argumento de venda para nós."
Uma vez que a equipe decidiu construir a plataforma Babylon AI Research em cima do Kubernetes, eles consultaram o Cloud Native Landscape para construir a stack: Prometheus e Grafana para monitoramento; um service mesh Istio para controlar a rede na plataforma de treinamento e controlar qual acesso todos os fluxos de execução teriam; Helm para implantar a stack; e Flux para gerenciar a parte GitOps do pipeline.
A plataforma de IA nativa de nuvem teve um enorme impacto na Babylon. Os primeiros projetos de pesquisa executados na plataforma envolveram principalmente machine learning e processamento de linguagem natural. Esses experimentos exigiram uma enorme quantidade de computação—1600 CPU, 3,2 TB de RAM—que era muito mais do que a Babylon tinha internamente. Além disso, o acesso à computação costumava levar horas, ou às vezes até dias, dependendo de quão ocupada estava a equipe de plataforma. "Agora, com Kubernetes e a plataforma de autoatendimento que fornecemos, é praticamente instantâneo", diz Vallée.
Outro tipo importante de trabalho que é feito na plataforma é a validação clínica para novas aplicações como o Symptom Checker da Babylon, que calcula a probabilidade de uma doença dadas as evidências inseridas pelo usuário. "Estando na área da saúde, queremos que todos os nossos modelos sejam seguros antes de irem para produção", diz Vallée. Usar o Argo para GitOps "nos permitiu escalonar o processo massivamente."
Os pesquisadores costumavam ter que esperar até 10 horas para obter resultados de novas versões de seus modelos. Com Kubernetes, esse tempo agora caiu para menos de 20 minutos. Além disso, anteriormente eles só podiam executar uma validação clínica por vez, agora podem executar muitas em paralelo se precisarem—um enorme benefício considerando que nos últimos três anos, a Babylon cresceu de 100 para 1.600 funcionários.
"Entregar uma plataforma de autoatendimento onde os usuários têm o poder de executar sua própria carga de trabalho permitiu que nossa comunidade de cientistas de dados fizesse ajuste de hiperparâmetros e desenvolvimento geral de algoritmos sem nenhuma habilidade em nuvem e sem a ajuda de engenheiros de plataforma, acelerando assim nossa inovação", diz a Diretora de Tecnologia Caroline Hargrove.
Acrescenta o Diretor de Operações de Plataforma Jean Marie Ferdegue: "Dar uma plataforma baseada em Kubernetes aos nossos cientistas de dados significou maior segurança, maior inovação através do empoderamento, e um serviço de saúde mais acessível, pois nossos engenheiros de nuvem estão construindo uma experiência que é usada por centenas diariamente, em vez de dar suporte a casos de uso específicos e personalizados."
Além disso, à medida que a Babylon continua a expandir, "será muito fácil integrar novos países", diz Vallée. "Quinze meses atrás, quando implantamos essa plataforma, tínhamos um grande ambiente no Reino Unido, mas agora temos um no Canadá, temos um na Ásia, e temos um chegando nos EUA. Esta é uma das coisas que Kubernetes e os outros projetos nativos de nuvem nos permitiram fazer."
O roteiro da Babylon para nativo de nuvem envolve integrar todos os esforços de IA da empresa à plataforma. Cada vez mais, isso inclui serviços de IA voltados ao cuidado. "Acho que este será um campo interessante onde IA e saúde se encontram", diz Vallée. "É um problema bastante complexo e há muitas questões em torno disso. Então, com nossa plataforma, queremos dizer: 'O que podemos fazer para tornar isso menos doloroso para nossos desenvolvedores e engenheiros de machine learning?'"