Modelos e plataformas de IA
O Futuro da Inferência Serverless para Modelos de Linguagem Grande
Os avanços recentes nos modelos de linguagem grande (LLMs) como GPT-4, PaLM levaram a capacidades transformadoras em tarefas de linguagem natural. LLMs estão sendo incorporados em várias aplicações, como chatbots, mecanismos de busca e assistentes de programação. No entanto, servir LLMs em escala ainda é um desafio devido às suas substanciais necessidades de GPU e memória.
As abordagens para superar isso geralmente se enquadram em duas categorias principais:
- Técnicas de Compressão de Modelo
Essas técnicas visam reduzir o tamanho do modelo enquanto mantém a precisão. Abordagens comuns incluem:
- Poda – Remover parâmetros redundantes ou menos importantes do modelo. Isso cria um modelo esparsamente populado com menos parâmetros.
- Quantização – Usar números de precisão mais baixa, como int8 ou bfloat16, para representar pesos em vez de fp32 ou fp16. Isso reduz a pegada de memória.
- Destilação de Conhecimento – Treinar um modelo “aluno” menor para imitar um modelo “professor” grande. O modelo menor é então usado para inferência.
- Execução Seletiva
Em vez de modelos comprimidos, essas técnicas executam seletivamente apenas partes do modelo por inferência:
- Ativações Esparsas – Pulando cálculos em ativações zero.
- Cômputo Condicional – Executando apenas certas camadas condicionadas à entrada.
No lado complementar em relação à arquitetura de software; para permitir uma implantação mais rápida de LLMs, os pesquisadores propuseram sistemas de inferência serverless. Em arquiteturas serverless, LLMs são hospedados em clusters de GPU compartilhados e alocados dinamicamente com base na demanda. Isso permite uma utilização eficiente de GPUs e reduz os custos para os desenvolvedores. Implementações proeminentes incluem Amazon (AMZN ) SageMaker, Microsoft Azure ML e opções de código aberto como KServe.
Apesar da promessa de LLMs serverless, os sistemas existentes exibem altas sobrecargas de latência que degradam a experiência do usuário em aplicações interativas:
- Downloads de pontos de verificação caros: LLMs têm grandes pegadas de memória, frequentemente gigabytes a terabytes de tamanho. Baixar pontos de verificação de armazenamento remoto é demorado, levando mais de 20 segundos, mesmo com redes otimizadas.
- Carregamento de pontos de verificação ineficiente: Mesmo com armazenamento local em SSD, carregar pontos de verificação na memória da GPU leva dezenas de segundos devido a fatores como deserialização de tensor e alocação. Isso adiciona atrasos significativos além do tempo de inicialização do contêiner.
Para resolver esses problemas, os pesquisadores do MIT CSAIL propuseram ServerlessLLM, um sistema inovador que alcança inferência serverless de baixa latência para LLMs. O ServerlessLLM melhora a localidade explorando a capacidade abundante, mas subutilizada, e a largura de banda em armazenamento de servidor de vários níveis para implantação de LLM.
Inovações-chave no ServerlessLLM O ServerlessLLM incorpora vários designs novos para reduzir os tempos de carregamento de LLM em ambientes serverless:
- Carregamento rápido de pontos de verificação
- Formato de ponto de verificação otimizado para carregamento que permite leitura sequencial rápida e endereçamento de tensor eficiente na memória.
- Pipeline de carregamento de pontos de verificação de vários níveis que maximiza a utilização da largura de banda em toda a rede, SSDs, DRAM e memória da GPU por meio de técnicas como I/O direto, transferência de memória fixa e paralelismo.
- Migração ao vivo para inferência orientada por localidade
- Migração baseada em token que transmite apenas tokens de prompt essenciais sobre a rede, evitando a transferência lenta de instantâneos.
- Migração de duas fases que permite inferência ininterrupta, recomputando estados de cache nos servidores de destino antes de transferir tokens finais de forma assíncrona.
- Alocação de servidor otimizada para latência
- Modelos precisos para estimar tempos de carregamento de pontos de verificação de cada nível e tempos de migração para um servidor.
- Agendador ciente de localidade que seleciona servidores minimizando a latência de inicialização esperada usando os modelos acima.
Essas otimizações permitem que o ServerlessLLM reduza os tempos de carregamento de LLM em 4-8X e os tempos de inicialização de ponta a ponta em mais de 25X em comparação com sistemas existentes como PyTorch, TensorFlow e KServe.
Vamos mergulhar mais a fundo em como o ServerlessLLM alcança esses ganhos de desempenho significativos.
Acelerando o Carregamento de Pontos de Verificação
O primeiro grande gargalo abordado pelo ServerlessLLM é a alta latência de carregamento de pontos de verificação de LLM da armazenamento para a memória da GPU.
Para permitir o carregamento rápido de pontos de verificação, o ServerlessLLM introduz:
- Formato de ponto de verificação otimizado para carregamento
Pontos de verificação padrão usados por frameworks como PyTorch são projetados para treinamento de modelo e depuração. Mas para inferência serverless, os pontos de verificação são somente leitura e acessados repetidamente.
Para otimizar para esse uso intensivo de leitura, o ServerlessLLM converte os pontos de verificação em um formato com duas propriedades principais:
- Leitura de chunk sequencial: Tensores são agrupados em arquivos binários por GPU, facilitando leituras sequenciais grandes.
- Endereçamento de tensor eficiente: Um índice mapeia nomes de tensor para offsets de memória, permitindo restauração direta na memória sem deserialização.
- Pipeline de carregamento de pontos de verificação de vários níveis
O ServerlessLLM aproveita a arquitetura de vários níveis dos servidores de GPU, com mídia de armazenamento como SSDs e rede conectando-se aos GPUs via PCIe, NVMe, etc.
O sistema incorpora um pipeline de várias etapas para maximizar a utilização da largura de banda em todos os níveis:
- Chunks de dados na memória são alocados usando memória fixa para transferência rápida de GPU.
- I/O direto é usado para leituras eficientes de SSD sem sobrecarga de cache.
- Vários threads lêem diferentes chunks de armazenamento em paralelo.
- Coordenação entre estágios ocorre via filas de tarefas assíncronas.
Juntos, isso permite saturar a capacidade de largura de banda mesmo dos níveis mais rápidos, como NVMe RAID. Experimentos revelam que o ServerlessLLM alcança carregamento 6-8X mais rápido do que PyTorch/TensorFlow, reduzindo os tempos de inicialização para LLMs grandes de mais de um minuto para menos de 10 segundos.
Inferência de LLM Orientada por Localidade via Migração ao Vivo
Com o carregamento acelerado, o ServerlessLLM enfrenta um novo desafio – como aproveitar pontos de verificação pré-carregados para localidade sem interromper inferências em andamento em servidores ocupados?
O ServerlessLLM introduz uma técnica inovadora – migração ao vivo de inferência de LLM entre servidores de GPU. Isso permite transferir a execução para servidores com pontos de verificação locais disponíveis de forma transparente.
Principais habilitadores de migração ao vivo de LLM:
- Migração baseada em token
Em vez de criar um instantâneo do estado do modelo inteiro, o ServerlessLLM migra apenas os tokens de prompt mínimos sobre a rede. Isso transfere ordens de magnitude menos dados do que instantâneos.
- Migração de duas fases
O servidor de destino pré-computa estados de cache a partir dos tokens de prompt de forma assíncrona. Uma vez pronto, o servidor de origem transfere os tokens finais antes de liberar recursos. Isso evita atrasos de inferência.
Experimentos revelam que a migração baseada em token reduz os tempos de migração de dezenas de segundos para menos de um segundo, mesmo para sequências longas. A migração ao vivo é crucial para prevenir atrasos de fila ao alcançar alocação orientada por localidade.
Agendamento de Modelo Otimizado para Latência
Para minimizar a latência de ponta a ponta, o ServerlessLLM aprimora o agendador para otimizar a seleção de servidor considerando a localidade. Isso envolve:
- Estimador de tempo de carregamento granular
Modelos preveem tempos de carregamento da rede, caches de SSD e memória para cada servidor usando métricas como atrasos de fila, tamanhos de modelo e largura de banda medida.
- Previsor de tempo de migração preciso
O agendador estima os tempos de migração para os servidores usando o número de tokens de prompt e saída. Ele acompanha o progresso da inferência de forma assíncrona para evitar sobrecarga.
- Alocação ciente de localidade
Para cada solicitação de inferência, o agendador avalia os tempos de carregamento e migração estimados em todos os servidores. Ele seleciona o servidor que minimiza a latência de inicialização esperada.
O agendador também mantém filas de tarefas de servidor e aproveita um armazenamento fortemente consistente para tolerância a falhas. Juntos, essas inovações reduzem as sobrecargas de agendamento enquanto maximizam os benefícios de localidade.
Avaliando o Desempenho do ServerlessLLM
Experimentos abrangentes avaliam a eficácia de ponta a ponta do ServerlessLLM contra sistemas existentes usando modelos do mundo real, como OPT-175B, e cargas de trabalho modeladas após traços do Azure.
Principais resultados:
- Microbenchmark: O ServerlessLLM acelera o carregamento de pontos de verificação em 3,6-8,2X em comparação com PyTorch/TensorFlow. Ele fully saturates a largura de banda de armazenamento, mesmo para NVMe RAID de ponta.
- Agendamento: O ServerlessLLM reduz a latência de alocação em 4-12X em comparação com agendamento aleatório, destacando os benefícios da conscientização de localidade. A migração ao vivo evita atrasos de fila.
- Serviço de ponta a ponta: Para modelos grandes, como OPT-30B, o ServerlessLLM melhora a latência do 99º percentil em 28-200X em comparação com sistemas como KServe e Ray Serve. Ele também melhora a eficiência de recursos.
Esses ganhos substanciais demonstram a capacidade do ServerlessLLM de superar gargalos em implementações serverless existentes e desbloquear o poder dos LLMs para serviços interativos.
As otimizações introduzidas no ServerlessLLM, como carregamento de vários níveis, migração ao vivo e agendamento orientado por latência, podem ajudar a informar o design de futuras arquiteturas serverless. A capacidade do sistema de reduzir os tempos de carregamento e inicialização desbloqueia a implantação escalável de modelos de linguagem grande para aplicações práticas.
Olhando para o Futuro: Desafios em Andamento
Embora um salto significativo à frente, o ServerlessLLM representa apenas o primeiro passo na otimização da inferência serverless para LLMs massivos. Vários problemas abertos permanecem, incluindo:
- Prever a demanda de modelo em tempo real para orientar provisionamento e pré-carregamento
- Colocar inteligentemente pontos de verificação em servidores para maximizar acertos de cache
- Escalar algoritmos de agendamento de forma eficiente para lidar com clusters maiores
- Garantir justiça na alocação de recursos entre modelos e desenvolvedores
- Generalizar inovações como migração ao vivo para outras cargas de trabalho serverless
Abordar essas áreas pode ajudar a construir sobre a promessa de LLMs serverless e tornar suas capacidades ainda mais acessíveis. Além das otimizações de sistema, reduzir a pegada de carbono e os danos potenciais de modelos grandes também permanece uma prioridade urgente.
O ServerlessLLM demonstra que existe um grande espaço para inovação em arquiteturas serverless de próxima geração para cargas de trabalho de IA. À medida que os LLMs continuam crescendo em tamanho e popularidade, soluções como o ServerlessLLM que desbloqueiam sua escalabilidade se tornarão ainda mais impactantes. A confluência de pesquisas de sistemas e aprendizado de máquina pode introduzir novos paradigmas em servir, compartilhar e escalar modelos de IA de forma segura e sustentável.













