A publicação de inferências é fundamental na implementação dos seus modelos de IA generativa em aplicações do mundo real. O GKE oferece uma plataforma robusta e escalável para gerir as suas cargas de trabalho em contentores, o que o torna uma escolha atraente para publicar os seus modelos em desenvolvimento ou produção. Com o GKE, pode usar as capacidades do Kubernetes para orquestração, escalabilidade e alta disponibilidade para implementar e gerir eficientemente os seus serviços de inferência.
Reconhecendo as exigências específicas da inferência de IA/ML, a Google introduziu as capacidades de IA gen do GKE, um conjunto de funcionalidades especificamente concebidas para melhorar e otimizar a publicação de inferências no GKE. Google Cloud Para mais informações sobre funcionalidades específicas, consulte o artigo Capacidades de IA gen do GKE.
Comece a usar a inferência de modelos de IA/ML no GKE
Pode começar a explorar a inferência de modelos de IA/ML no GKE em minutos. Pode usar o nível gratuito do GKE, que lhe permite começar a usar o Kubernetes sem incorrer em custos de gestão de clusters.
- Experimente os passos em Implementar modelos para implementar um modelo contentorizado e um servidor de modelos.
- Leia o artigo Planeamento da inferência, que contém orientações e recursos para planear e executar as suas cargas de trabalho de inferência no GKE.
Terminologia
Esta página usa a seguinte terminologia relacionada com a inferência no GKE:
- Inferência: o processo de execução de um modelo de IA generativa, como um modelo de linguagem grande ou um modelo de difusão, num cluster do GKE para gerar texto, incorporações ou outros resultados a partir de dados de entrada. A inferência de modelos no GKE tira partido dos aceleradores para processar de forma eficiente cálculos complexos para processamento em tempo real ou em lote.
- Modelo: um modelo de IA generativa que aprendeu padrões a partir de dados e é usado para inferência. Os modelos variam em tamanho e arquitetura, desde modelos mais pequenos específicos do domínio a redes neurais massivas com vários milhares de milhões de parâmetros otimizadas para diversas tarefas de linguagem.
- Servidor de modelos: um serviço em contentor responsável por receber pedidos de inferência e devolver inferências. Este serviço pode ser uma app Python ou uma solução mais robusta, como vLLM, JetStream, TensorFlow Serving ou Triton Inference Server. O servidor de modelos processa o carregamento de modelos na memória e executa cálculos em aceleradores para devolver inferências de forma eficiente.
- Acelerador: hardware especializado, como unidades de processamento gráfico (GPUs) da NVIDIA e unidades de processamento tensor (TPUs) da Google, que podem ser anexadas a nós do GKE para acelerar os cálculos, especialmente para tarefas de preparação e inferência.
Vantagens do GKE para inferência
A publicação de inferências no GKE oferece várias vantagens:
- Preço/desempenho eficiente: obtenha valor e velocidade para as suas necessidades de serviço de inferência. O GKE permite-lhe escolher entre uma variedade de aceleradores potentes (GPUs e TPUs), para que só pague pelo desempenho de que precisa.
- Implementação mais rápida: acelere o seu tempo de comercialização com qualificações, práticas recomendadas e práticas recomendadas personalizadas fornecidas pelas capacidades de IA gen do GKE.
- Desempenho escalável: aumente o desempenho com a monitorização pré-criada através do GKE Inference Gateway, escala automática horizontal de pods (HPA) e métricas personalizadas. Pode executar uma variedade de modelos pré-preparados ou personalizados, de 8 mil milhões de parâmetros até 671 mil milhões de parâmetros.
- Portabilidade total: tire partido da portabilidade total com normas abertas. A Google contribui para as principais APIs Kubernetes, incluindo Gateway e LeaderWorkerSet, e todas as APIs são portáteis com distribuições Kubernetes.
- Suporte do ecossistema: crie com base no ecossistema robusto do GKE, que suporta ferramentas como o Kueue para gestão e colocação em fila de recursos avançada e o Ray para computação distribuída, para facilitar a inferência e a preparação de modelos escaláveis e eficientes.
Como funciona a inferência no GKE
Esta secção descreve, de forma geral, os passos para usar o GKE para a publicação de inferências:
Coloque o modelo num contentor: implemente um modelo colocando o servidor do modelo num contentor (como o vLLM) e carregando os pesos do modelo a partir do Cloud Storage ou de um repositório como o Hugging Face. Quando usa o GKE Inference Quickstart, a imagem em contentor é gerida automaticamente no manifesto.
Crie um cluster do GKE: crie um cluster do GKE para alojar a sua implementação. Escolha o modo automático para uma experiência gerida ou o modo padrão para personalização. Configure o tamanho do cluster, os tipos de nós e os aceleradores. Para uma configuração otimizada, use o Inference Quickstart.
Implemente o seu modelo como uma implementação do Kubernetes: crie uma implementação do Kubernetes para gerir o seu serviço de inferência. Uma implementação é um objeto da API Kubernetes que lhe permite executar várias réplicas de pods distribuídas entre os nós num cluster. Especifique a imagem do Docker, as réplicas e as definições. O Kubernetes extrai a imagem e executa os seus contentores nos nós do cluster do GKE. Configure os pods com o servidor de modelos e o modelo, incluindo adaptadores LoRA, se necessário.
Exponha o seu serviço de inferência: torne o seu serviço de inferência acessível através da criação de um serviço do Kubernetes para fornecer um ponto final de rede para a sua implementação. Use o Inference Gateway para o equilíbrio de carga e o encaminhamento inteligentes especificamente adaptados para cargas de trabalho de inferência de IA generativa. Use o Inference Gateway para um balanceamento de carga inteligente adaptado às cargas de trabalho de IA generativa ou consulte a comparação de estratégias de balanceamento de carga para escolher a melhor opção para as suas necessidades.
Processar pedidos de inferência: enviar dados no formato esperado (JSON, gRPC) dos clientes da sua aplicação para o ponto final do seu serviço. Se estiver a usar um balanceador de carga, este distribui os pedidos pelas réplicas do modelo. O servidor de modelos processa o pedido, executa o modelo e devolve a inferência.
Dimensione e monitorize a implementação da inferência: dimensione a inferência com o HPA para ajustar automaticamente as réplicas com base na CPU ou na latência. Use o Inference Quickstart para receber recomendações de escalabilidade geradas automaticamente. Para acompanhar o desempenho, use o Cloud Monitoring e o Cloud Logging com observabilidade pré-criada, incluindo painéis de controlo para servidores de modelos populares como o vLLM.
Para ver exemplos detalhados que usam modelos, servidores de modelos e aceleradores específicos, consulte os exemplos de inferência.
Capacidades de IA gen do GKE
Pode usar estas capacidades em conjunto ou individualmente para resolver desafios importantes na publicação de modelos de IA generativa e melhorar a utilização de recursos no seu ambiente do GKE, sem custos adicionais.
Nome | Descrição | Vantagens |
---|---|---|
Início rápido da inferência do GKE |
Analise o desempenho e a rentabilidade das suas cargas de trabalho de inferência. Especifique as necessidades da sua empresa e receba práticas recomendadas personalizadas para a combinação de aceleradores, configurações de escalabilidade e armazenamento, e servidores de modelos que melhor satisfazem as suas necessidades. Pode aceder a este serviço com a CLI gcloud e a Google Cloud consola. Para mais informações, consulte o artigo Analise o desempenho e os custos da inferência de modelos com o início rápido da inferência do GKE. |
|
GKE Inference Gateway (pré-visualização) | Obtenha o encaminhamento com base em métricas, como a utilização da cache KV, para uma melhor latência. Para mais informações, consulte o artigo Acerca do GKE Inference Gateway |
|
Aceleradores de carregamento de pesos do modelo | Aceda rapidamente aos dados no Cloud Storage através do Cloud Storage FUSE com a colocação em cache e transferências paralelas. Para cargas de trabalho de inferência que exigem um desempenho de expansão consistente, o Google Cloud Hyperdisk ML é um disco ligado à rede que pode ser ligado a até 2500 pods. |
|
Planeamento da inferência
Esta secção aborda algumas das principais considerações que deve ter em conta para as suas cargas de trabalho de inferência no GKE.
Relação custo-eficácia
A publicação de grandes modelos de IA generativa pode ser dispendiosa devido à utilização de aceleradores, pelo que deve concentrar-se na utilização eficiente dos recursos. Selecionar o tipo de máquina e o acelerador certos é fundamental para garantir que faz corresponder a memória do acelerador ao tamanho do modelo e ao nível de quantização. Por exemplo, as instâncias G2 com GPUs NVIDIA L4 podem ser rentáveis para modelos mais pequenos, enquanto as instâncias A3 são mais adequadas para modelos maiores.
Siga estas sugestões e recomendações para maximizar a rentabilidade:
- Use o Início rápido da inferência para obter os aceleradores recomendados com base nas suas necessidades de desempenho.
- Use técnicas como a quantização e o processamento em lote de pedidos para melhorar a eficiência da publicação. Para saber mais, consulte o artigo Práticas recomendadas para otimizar a inferência de modelos de linguagem grandes com GPUs.
Use a criação de escala automática, que ajusta dinamicamente os recursos com base na procura. Isto pode resultar em poupanças de custos, especialmente para cargas de trabalho flutuantes. Para saber mais, consulte os seguintes guias:
Desempenho
Para otimizar o desempenho da inferência no GKE, foque-se nas seguintes métricas de testes de referência:
Indicadores de testes de referência | Métrica (unidade) | Descrição |
---|---|---|
Latência | Tempo até ao primeiro token (TTFT) (ms) | Tempo necessário para gerar o primeiro token para um pedido. |
Tempo normalizado por token de saída (NTPOT) (ms) | Latência do pedido normalizada pelo número de tokens de saída, medida como request_latency / total_output_tokens . |
|
Tempo por token de saída (TPOT) (ms) | Tempo necessário para gerar um token de saída, medido como (request_latency - time_to_first_token) / (total_output_tokens - 1) . |
|
Latência entre tokens (ITL) (ms) | Mede a latência entre duas gerações de tokens de saída. Ao contrário do TPOT, que mede a latência em todo o pedido, o ITL mede o tempo necessário para gerar cada token de saída individual. Estas medições individuais são, em seguida, agregadas para produzir valores médios, medianos e percentis, como p90. | |
Latência do pedido (ms) | Tempo total para concluir um pedido. | |
Débito | Pedidos por segundo | O número total de pedidos que publica por segundo. Tenha em atenção que esta métrica pode não ser uma forma fiável de medir o débito do MDG porque pode variar bastante para diferentes comprimentos de contexto. |
Símbolos de saída por segundo | Uma métrica comum que é medida como total_output_tokens_generated_by_server / elapsed_time_in_seconds . |
|
Tokens de entrada por segundo | Medido como total_input_tokens_generated_by_server / elapsed_time_in_seconds . |
|
Tokens por segundo | Medido como total_tokens_generated_by_server / elapsed_time_in_seconds . Esta métrica contabiliza os tokens de entrada e saída, o que ajuda a comparar cargas de trabalho com tempos de preenchimento prévio elevados em comparação com tempos de descodificação elevados. |
Considere estas sugestões e recomendações adicionais para o desempenho:
- Para receber os aceleradores recomendados com base nas suas necessidades de desempenho, use o Início rápido de inferência.
- Para melhorar o desempenho, use técnicas de otimização do servidor de modelos, como o processamento em lote e a atenção paginada, que se encontram no nosso guia de práticas recomendadas. Além disso, dê prioridade à gestão eficiente da memória e ao cálculo da atenção para latências entre tokens consistentemente baixas.
- Use métricas padronizadas em servidores de modelos (como Hugging Face TGI, vLLM ou NVIDIA Triton) para melhorar o dimensionamento automático e o equilíbrio de carga, o que pode ajudar a alcançar um débito mais elevado na latência escolhida. O GKE oferece monitorização automática de aplicações para vários servidores de modelos.
- Use funcionalidades de infraestrutura de rede do GKE, como o Inference Gateway para minimizar a latência.
Use o FUSE do Cloud Storage com transferências paralelas e colocação em cache, ou o Hyperdisk ML para acelerar o carregamento de ponderações de modelos a partir do armazenamento persistente.
Para a preparação ou a inferência em grande escala, use o Pathways. O Pathways simplifica os cálculos de aprendizagem automática em grande escala, permitindo que um único cliente JAX organize cargas de trabalho em várias grandes fatias de TPUs. Para mais informações, consulte o artigo Pathways.
Obtenção
Garantir a obtenção de recursos (CPUs, GPUs e TPUs) é fundamental para manter o desempenho, a disponibilidade e a rentabilidade dos seus carregamentos de trabalho de inferência. As cargas de trabalho de inferência apresentam frequentemente padrões de tráfego instáveis e imprevisíveis, o que pode desafiar a capacidade do hardware. O GKE resolve estes desafios com funcionalidades como as seguintes:
- Opções de consumo de recursos: escolha entre opções como reservas para capacidade garantida, dimensionamento rentável, Dynamic Workload Scheduler, e VMs do Spot para otimização de custos e acesso a pedido para disponibilidade imediata.
- Ajuste do tamanho dos recursos: por exemplo, Google Cloud oferece VMs A3 High mais pequenas com GPUs NVIDIA H100 (1g, 2g ou 4g) para uma escalabilidade de inferência de IA generativa económica que suporta VMs Spot.
- Classes de computação para aceleradores: pode usar classes de computação personalizadas para um controlo mais detalhado, para evitar o aprovisionamento excessivo e maximizar a obtenção de recursos com opções de alternativa automáticas.
Atualizações de nós
O GKE automatiza grande parte do processo de atualização, mas tem de considerar as estratégias de atualização, especialmente para compatibilidade e testes. Para atualizações manuais, pode escolher entre atualizações de picos ou azul-verde com base na tolerância da sua carga de trabalho de inferência a interrupções. As atualizações rápidas são rápidas, mas podem afetar brevemente os serviços. As atualizações azul-verde oferecem um tempo de inatividade quase nulo, o que é fundamental para a inferência em tempo real. Para saber mais, consulte as Estratégias de atualização de nós.
As GPUs e as TPUs não suportam a migração em direto, pelo que a manutenção requer o reinício dos pods. Use as notificações do GKE para se preparar para interrupções. Recomendamos que use orçamentos de interrupção de pods (PDBs) para garantir que um número mínimo de pods permanece disponível. Certifique-se de que os seus pods conseguem processar o encerramento corretamente. As fatias de TPU podem ser interrompidas por eventos de anfitrião único, por isso, planeie a redundância. Para ver mais práticas recomendadas, consulte o artigo Faça a gestão da interrupção de nós do GKE para GPUs e TPUs.
Experimente exemplos de inferência
Encontre exemplos de implementação do GKE para modelos de IA generativa, aceleradores e servidores de modelos. Se está a começar, recomendamos que explore o tutorial Apresente modelos abertos Gemma com GPUs no GKE com o vLLM.
Em alternativa, pesquise um tutorial por palavra-chave:
O que se segue?
- Visite o portal de orquestração de IA/AA no GKE para explorar os nossos guias, tutoriais e exemplos de utilização oficiais para executar cargas de trabalho de IA/AA no GKE.
- Para saber mais sobre a otimização da publicação de modelos, consulte o artigo Práticas recomendadas para otimizar a inferência de modelos de linguagem (conteúdo extenso) com GPUs. Abrange as práticas recomendadas para a publicação de LLMs com GPUs no GKE, como a quantização, o paralelismo de tensores e a gestão de memória.
- Explore exemplos experimentais para tirar partido do GKE e acelerar as suas iniciativas de IA/ML no GKE AI Labs.