Por que usar o GKE para inferência de IA/ML

Este documento é a primeira parte de uma série destinada a engenheiros de machine learning (ML) que não têm experiência com o Google Kubernetes Engine (GKE) e querem começar a executar cargas de trabalho de inferência no GKE o mais rápido possível.

Nesta série, não vamos tentar ensinar todas as opções disponíveis do GKE. Em vez disso, fornecemos as informações básicas que você precisa saber para colocar suas cargas de trabalho no GKE. Esta série inclui os seguintes documentos:

Como engenheiro de plataforma de IA/ML, você pode usar o GKE para gerenciar as implantações de modelos. O GKE é um serviço que permite automatizar a implantação, o escalonamento e o monitoramento das cargas de trabalho de inferência baseadas no Kubernetes e da infraestrutura de computação em que elas são executadas. Este documento aborda alguns dos principais benefícios de usar o GKE para inferência de modelo, incluindo:

Antes de começar

Antes de ler este documento, conheça bem os seguintes tópicos:

Empacote seus modelos para ter um desempenho consistente

A inferência de modelo consistente e confiável é crucial para seu aplicativo de IA, e o GKE pode reduzir a complexidade operacional do gerenciamento de inferência em grande escala. Ao empacotar o modelo treinado, o servidor de inferência e todas as dependências em um contêiner, você cria um artefato padronizado e portátil que é executado no GKE. A contêinerização ajuda a reduzir erros causados por dependências incompatíveis ou ambientes inconsistentes. O GKE implanta e gerencia esses contêineres automaticamente. Ele lida com tarefas como reiniciar cargas de trabalho com falha ou reprovisionar recursos para ajudar a estabilizar o desempenho das cargas de trabalho de IA/ML.

Usar GPUs e TPUs para reduzir a latência de serviço

A latência é um problema para cargas de trabalho de inferência, e alguns modelos complexos dependem de aceleradores de hardware, como GPUs e TPUs, para acelerar a disponibilização de inferências. O GKE simplifica o processo de uso de GPUs ou TPUs para suas cargas de trabalho de inferência sensíveis à latência, simplificando o provisionamento e o gerenciamento de hardware. Você escolhe as configurações de hardware específicas que melhor atendem aos seus requisitos de performance e custo, e o GKE provisiona nós automaticamente com o hardware selecionado para executar suas cargas de trabalho. O GKE também automatiza etapas de configuração que normalmente exigem configuração manual no Kubernetes, como a instalação de drivers NVIDIA. Para ter um controle mais refinado sobre a configuração de nós, use ComputeClasses personalizadas para criar perfis de hardware específicos e reutilizáveis que o GKE usa ao provisionar nós.

O GKE também oferece recursos de gerenciamento para que você possa usar de maneira mais eficiente os recursos de TPU e GPU para veiculação de inferências. Por exemplo, é possível melhorar a utilização da GPU hospedando vários modelos em um único servidor de GPU usando o compartilhamento de GPU ou reduzir os custos de jobs de inferência tolerantes a falhas executando-os em VMs spot com aceleradores. Para cargas de trabalho pequenas e médias com requisitos de demanda flutuantes ou de curta duração, use o início flexível, que oferece uma técnica flexível e econômica para consumir recursos de computação especializados, como GPUs ou TPUs. Esses recursos ajudam você a maximizar o uso de recursos de acelerador e otimizar a latência e o custo de veiculação.

Lidar automaticamente com padrões de tráfego variáveis

O tráfego e a carga nas cargas de trabalho de inferência em tempo real podem ser imprevisíveis e dinâmicos. Um pico na demanda pode aumentar a latência e reduzir o desempenho. O GKE oferece uma abordagem de várias camadas para o escalonamento automático, permitindo adicionar ou remover recursos automaticamente para atender à demanda variável de inferência. Por exemplo, é possível usar o escalonador automático horizontal de pods (HPA) para ajustar automaticamente o número de pods em uma implantação ou o escalonador automático de cluster para ajustar automaticamente o número de nós em um pool de nós atual. Ao usar os recursos de escalonamento automático do GKE, é possível corresponder de maneira eficiente a quantidade de recursos que sua carga de trabalho de inferência precisa à quantidade de demanda de aplicativos.

Monitorar a integridade e o desempenho da sua carga de trabalho de inferência

O GKE é integrado ao Google Cloud conjunto de observabilidade (Cloud Logging e Cloud Monitoring), e é possível usar recursos de observabilidade integrados para monitorar a integridade e o desempenho das cargas de trabalho de inferência. Esses recursos de observabilidade oferecem insights e visibilidade sobre o desempenho da sua carga de trabalho após a implantação. Por exemplo, você pode querer saber se o modelo está funcionando como esperado ou se a carga de trabalho atende aos requisitos de latência e precisão.

O GKE gera relatórios automáticos de métricas de infraestrutura, como uso de CPU, memória e acelerador. Para responder a perguntas sobre o desempenho específico do modelo, use o Google Cloud Managed Service para Prometheus ou envie métricas personalizadas do seu aplicativo de inferência para o Cloud Monitoring. Por exemplo, é possível configurar o monitoramento automático de aplicativos e monitorar métricas de inferência importantes, como solicitações por segundo (RPS, na sigla em inglês); monitorar a mudança de conceito analisando métricas específicas do modelo, como a distribuição de dados de entrada; e depurar problemas realizando uma análise histórica de registros.

Use o GKE para portabilidade e flexibilidade

Ao usar padrões abertos, como contêineres, e tecnologias de código aberto, como o Kubernetes, o GKE oferece a liberdade de mover suas cargas de trabalho de serviço de inferência para diferentes locais e usar recursos e ferramentas diferentes à medida que seus requisitos mudam. Por exemplo, é possível desenvolver e testar seu aplicativo de inferência no GKE e implantar o mesmo aplicativo em contêiner no ambiente local para produção.

Em resumo, é possível usar o GKE para simplificar a movimentação dos seus modelos de IA/ML do desenvolvimento para a produção. O GKE lida com muitas complexidades envolvidas no gerenciamento de infraestrutura. Isso significa que você pode se concentrar na execução das cargas de trabalho de inferência em um ambiente eficiente, escalonável e observável. Ao longo desta série, você vai aprender a usar o GKE para transformar seus modelos de IA/ML em aplicativos poderosos e prontos para produção.

A seguir