Este documento é a primeira parte de uma série destinada a engenheiros de aprendizagem automática (AA) que estão a usar o GKE pela primeira vez e querem começar a executar cargas de trabalho de inferência no GKE o mais rapidamente possível.
Nesta série, não vamos tentar ensinar-lhe todas as opções do GKE disponíveis. Em alternativa, fornecemos-lhe as informações básicas de que precisa para executar as suas cargas de trabalho no GKE. Esta série inclui os seguintes documentos:
- Por que motivo usar o GKE para a inferência de IA/ML (este documento)
- Acerca da inferência de modelos de IA/ML no GKE
- Conceitos de escala automática simplificados para cargas de trabalho de IA/ML no GKE
Como profissional de IA/AA, pode usar o Google Kubernetes Engine (GKE) ( GKE) para ajudar a gerir as implementações de modelos. O GKE é um serviço que lhe permite automatizar a implementação, o dimensionamento e a monitorização das suas cargas de trabalho de inferência baseadas no Kubernetes e na infraestrutura de computação em que as suas cargas de trabalho são executadas. Este documento aborda algumas das principais vantagens da utilização do GKE para a inferência de modelos, incluindo o seguinte:
- Desempenho consistente da aplicação
- Acesso simplificado a hardware de inferência especializado
- Escala automática das suas cargas de trabalho de inferência
- Monitorização e registo automáticos do desempenho e do estado da carga de trabalho
- Portabilidade e flexibilidade da utilização de normas abertas e tecnologias de código aberto
Antes de começar
Antes de ler este documento, deve conhecer o seguinte:
- Conceitos fundamentais do Kubernetes: saiba mais sobre contentores, pods, nós e clusters, e como se relacionam entre si.
- Modos de funcionamento do GKE: saiba mais sobre os clusters do GKE Autopilot e Standard, as respetivas utilizações e diferenças.
Empacote os seus modelos para um desempenho consistente
A inferência de modelos consistente e fiável é crucial para a sua aplicação de IA e o GKE pode reduzir a complexidade operacional da gestão da inferência em grande escala. Ao agrupar o modelo preparado, o servidor de inferência e todas as dependências num contentor, cria um artefacto padronizado e portátil que é executado de forma consistente no GKE. A contentorização ajuda a reduzir os erros causados por dependências incompatíveis ou ambientes inconsistentes. O GKE implementa e gere automaticamente estes contentores. Processa tarefas como reiniciar cargas de trabalho com falhas ou reaprovisionar recursos para ajudar a estabilizar o desempenho das suas cargas de trabalho de IA/ML.
Use GPUs e TPUs para reduzir a latência da publicação
A latência é um problema para as cargas de trabalho de inferência e alguns modelos complexos dependem de aceleradores de hardware, como GPUs e TPUs, para acelerar o serviço de inferência. O GKE simplifica o processo de utilização de GPUs ou TPUs para as suas cargas de trabalho de inferência sensíveis à latência. Escolhe as configurações de hardware específicas que melhor se adequam aos seus requisitos de desempenho e custo, e o GKE aprovisiona e gere automaticamente o hardware que escolher. Por exemplo, o GKE automatiza a instalação de controladores NVIDIA, o que é um passo que normalmente requer configuração manual no Kubernetes.
O GKE também oferece capacidades de gestão de recursos para que possa usar os recursos de TPU e GPU de forma mais eficiente para a publicação de inferências. Por exemplo, pode usar o GKE para agendar ou partilhar pools de GPUs ou TPUs em vários modelos, ou pode usar aceleradores com VMs Spot para aumentar a rentabilidade dos custos para cargas de trabalho de inferência tolerantes a falhas. Estas capacidades ajudam a maximizar a utilização dos recursos do acelerador, ao mesmo tempo que otimizam a latência de publicação e o custo.
Lidar automaticamente com padrões de tráfego flutuantes
O tráfego e a carga de trabalho de inferência em tempo real podem ser imprevisíveis e dinâmicos. Um pico na procura pode levar a um aumento da latência e a uma redução do desempenho. O GKE oferece uma abordagem de várias camadas à escala automática para que possa adicionar ou remover recursos automaticamente para satisfazer a procura de inferência variável. Por exemplo, pode usar o Horizontal Pod Autoscaler (HPA) para ajustar automaticamente o número de pods numa implementação ou o cluster autoscaler para ajustar automaticamente o número de nós num conjunto de nós existente. Ao usar as capacidades de dimensionamento automático do GKE, pode fazer corresponder de forma eficiente a quantidade de recursos de que a sua carga de trabalho de inferência precisa à quantidade de procura da aplicação.
Monitorize o estado e o desempenho da sua carga de trabalho de inferência
O GKE está integrado com o Google Cloud conjunto de observabilidade (Cloud Logging e Cloud Monitoring) e pode usar funcionalidades de observabilidade incorporadas para monitorizar o estado e o desempenho das suas cargas de trabalho de inferência. Estas funcionalidades de observabilidade dão-lhe estatísticas e visibilidade sobre o desempenho da sua carga de trabalho após a implementação. Por exemplo, pode questionar-se se o seu modelo está a funcionar como esperado ou se a sua carga de trabalho cumpre os requisitos de latência e precisão.
O GKE comunica automaticamente métricas de infraestrutura, como a utilização da CPU, da memória e do acelerador. Para responder a perguntas sobre o desempenho específico do modelo, pode usar o serviço gerido do Google Cloud para Prometheus ou enviar métricas personalizadas da sua aplicação de inferência para o Cloud Monitoring. Por exemplo, pode configurar a monitorização automática de aplicações e monitorizar as principais métricas de inferência, como pedidos por segundo (RPS); monitorizar a variação de conceitos analisando métricas específicas do modelo, como a distribuição de dados de entrada; e depurar problemas através da análise do histórico de registos.
Use o GKE para portabilidade e flexibilidade
Ao usar normas abertas, como contentores, e tecnologias de código aberto, como o Kubernetes, o GKE dá-lhe a liberdade de mover as suas cargas de trabalho de serviço de inferência para diferentes localizações e usar diferentes recursos e ferramentas à medida que os seus requisitos mudam. Por exemplo, pode desenvolver e testar a sua aplicação de inferência no GKE e, em seguida, implementar essa mesma aplicação contentorizada no seu ambiente no local para produção.
Em conclusão, pode usar o GKE para simplificar a forma como move os seus modelos de IA/ML do desenvolvimento para a produção. O GKE processa muitas complexidades envolvidas na gestão da infraestrutura, o que significa que pode concentrar-se na execução das suas cargas de trabalho de inferência num ambiente de alto desempenho, escalável e observável. À medida que avança nesta série, vai aprender como pode usar o GKE para transformar os seus modelos de IA/ML em aplicações poderosas prontas para produção.
O que se segue?
- Acerca da inferência do modelo de IA/ML no GKE (o documento seguinte nesta série)
- Saiba como disponibilizar um modelo com uma única GPU no GKE
- Saiba como publicar MDIs abertos no GKE com uma arquitetura pré-configurada