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 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:
- Por que usar o GKE para inferência de IA/ML (este documento)
- Sobre a inferência de modelos de IA/ML no GKE
- Conceitos simplificados de escalonamento automático para cargas de trabalho de IA/ML no GKE
Como profissional de IA/ML, você pode usar o Google Kubernetes Engine (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:
- Desempenho consistente dos aplicativos
- Acesso simplificado a hardware de inferência especializado
- Escalonamento automático das cargas de trabalho de inferência
- Monitoramento e geração de registros automatizados da integridade e do desempenho da carga de trabalho
- Portabilidade e flexibilidade de usar padrões abertos e tecnologias de código aberto
Antes de começar
Antes de ler este documento, conheça bem os seguintes tópicos:
- Conceitos fundamentais do Kubernetes: aprenda sobre contêineres, pods, nós e clusters, e como eles se relacionam.
- Modos de operação do GKE: saiba mais sobre os clusters do GKE Autopilot e Standard, os usos e as diferenças entre eles.
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 de forma consistente 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. Ela 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. Você escolhe as configurações de hardware específicas que melhor atendem aos seus requisitos de desempenho e custo, e o GKE provisiona e gerencia automaticamente o hardware escolhido. Por exemplo, o GKE automatiza a instalação do driver NVIDIA, uma etapa que normalmente exige configuração manual no Kubernetes.
O GKE também oferece recursos de gerenciamento para que você possa usar os recursos de TPU e GPU de maneira mais eficiente para veiculação de inferências. Por exemplo, é possível usar o GKE para programar ou compartilhar pools de GPU ou TPU em vários modelos ou usar aceleradores com VMs spot para aumentar a eficiência de custo em cargas de trabalho de inferência tolerantes a falhas. Esses recursos ajudam você a maximizar o uso de recursos de acelerador e otimizar a latência de veiculação e o custo.
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 aumento na demanda pode levar a um aumento na latência e redução no 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 está 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 conforme o 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
- Sobre a inferência de modelos de IA/ML no GKE (o próximo documento desta série)
- Saiba como disponibilizar um modelo com uma única GPU no GKE
- Saiba como veicular LLMs abertos no GKE com uma arquitetura pré-configurada