toco O futuro da inferência sem servidor para grandes modelos de linguagem - Unite.AI
Entre em contato

Inteligência artificial

O futuro da inferência sem servidor para grandes modelos de linguagem

mm

Publicado

 on

Avanços recentes em grandes modelos de linguagem (LLMs), como GPT-4 e PaLM, levaram a capacidades transformadoras em tarefas de linguagem natural. Os LLMs estão sendo incorporados em diversas aplicações, como chatbots, mecanismos de busca e assistentes de programação. No entanto, servir LLMs em escala continua a ser um desafio devido aos seus requisitos substanciais de GPU e memória.

As abordagens para superar isso geralmente se enquadram em duas categorias principais:

  1. Técnicas de compressão de modelo

Essas técnicas visam reduzir o tamanho do modelo, mantendo a precisão. As abordagens comuns incluem:

  • Poda – Remoção de parâmetros redundantes ou menos importantes do modelo. Isso cria um modelo esparso com menos parâmetros.
  • Quantização – Usando números de menor precisão como int8 ou bfloat16 para representar pesos em vez de fp32 ou fp16. Isso reduz o consumo de memória.
  • Destilação de conhecimento – Treinar um modelo menor de “aluno” para imitar um modelo grande de “professor”. O modelo menor é então usado para inferência.
  1. Execução Seletiva

Em vez de modelos compactados, essas técnicas executam seletivamente apenas partes do modelo por inferência:

  • Ativações esparsas – Ignorando o cálculo em zero ativações.
  • Computação condicional – Executando apenas determinadas camadas condicionadas à entrada.

Do lado complementar ao lado do arquiteto de software; para permitir uma implantação mais rápida de LLMs, os pesquisadores propuseram sistemas de inferência sem servidor. Em arquiteturas sem servidor, os LLMs são hospedados em clusters de GPU compartilhados e alocados dinamicamente com base na demanda. Isso permite a utilização eficiente de GPUs e reduz custos para desenvolvedores. Implementações proeminentes incluem Amazon SageMaker, Microsoft Azure ML e opções de código aberto como KServe.

Apesar da promessa de LLMs sem servidor, os sistemas existentes apresentam altas sobrecargas de latência que degradam a experiência do usuário em aplicações interativas:

  1. Downloads caros de pontos de verificação: LLMs ocupam muito espaço de memória, geralmente de gigabytes a terabytes de tamanho. O download de pontos de verificação do armazenamento remoto é demorado, demorando mais de 20 segundos, mesmo com redes otimizadas.
  2. Carregamento de ponto de verificação ineficiente: mesmo com armazenamento SSD local, o carregamento de pontos de verificação na memória da GPU leva dezenas de segundos devido a fatores como desserialização e alocação de tensor. Isto adiciona atrasos significativos além do tempo de inicialização do contêiner.

Para resolver essas questões, os pesquisadores do MIT CSAIL propuseram Sem servidorLLM, um sistema inovador que alcança inferência sem servidor de baixa latência para LLMs. ServerlessLLM aprimora a localidade explorando a capacidade e a largura de banda abundantes, porém subutilizadas, no armazenamento de servidor multicamadas para implantação de LLM.

Visão geral dos sistemas de inferência sem servidor LLM

Visão geral dos sistemas de inferência sem servidor LLM

Principais inovações no ServerlessLLM ServerlessLLM incorpora vários designs novos para reduzir o tempo de carregamento do LLM em ambientes sem servidor:

  1. Carregamento rápido do ponto de verificação
  • Formato de ponto de verificação otimizado para carregamento que permite leitura sequencial rápida e endereçamento eficiente de tensor na memória.
  • Pipeline de carregamento de ponto de verificação multicamadas que maximiza a utilização da largura de banda na rede, SSDs, DRAM e memória de GPU por meio de técnicas como E/S direta, transferência de memória fixada e paralelismo.
  1. Migração em tempo real para inferência orientada por localidade
  • Migração baseada em token que transmite apenas tokens de prompt essenciais pela rede, evitando transferência lenta de snapshots.
  • Migração em duas fases que permite inferência ininterrupta recalculando de forma assíncrona os estados do cache no servidor de destino antes de transferir os tokens finais.
  1. Alocação de servidores com otimização de latência
  • Modelos precisos para estimar os tempos de carregamento dos pontos de verificação de cada camada e os tempos de migração de um servidor.
  • Agendador com reconhecimento 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 do LLM em 4-8X e os tempos de inicialização ponta a ponta em mais de 25X em comparação com sistemas existentes como PyTorch, TensorFlow e KServe.

Vamos nos aprofundar em como o ServerlessLLM alcança esses ganhos significativos de desempenho.

Acelerando o carregamento de pontos de verificação

O primeiro grande gargalo resolvido pelo ServerlessLLM é a alta latência de carregamento de pontos de verificação LLM do armazenamento para a memória da GPU.

Para permitir o carregamento rápido do ponto de verificação, o ServerlessLLM apresenta:

  1. Formato de ponto de verificação otimizado para carregamento

Os pontos de verificação padrão usados ​​por estruturas como PyTorch são projetados para treinamento e depuração de modelos. Mas para inferência sem servidor, os pontos de verificação são somente leitura e acessados ​​repetidamente.

Para otimizar esse uso intensivo de leitura, o ServerlessLLM converte os pontos de verificação em um formato com duas propriedades principais:

  • Leitura sequencial baseada em blocos: os tensores são agrupados em arquivos binários por GPU, facilitando grandes leituras sequenciais.
  • Endereçamento eficiente de tensores: um índice mapeia nomes de tensores para deslocamentos de memória, permitindo restauração direta na memória sem desserialização.
  1. Pipeline de carregamento de ponto de verificação multicamadas

ServerlessLLM aproveita a arquitetura em camadas de servidores GPU, com mídias de armazenamento como SSDs e rede conectada a GPUs via PCIe, NVMe, etc.

O sistema incorpora um pipeline de vários estágios para maximizar a utilização da largura de banda em todas as camadas:

  • Os pedaços de dados na memória são alocados usando memória fixada para transferência rápida de GPU.
  • A E/S direta é usada para leituras SSD eficientes sem sobrecarga de cache.
  • Vários threads leem diferentes blocos de armazenamento em paralelo.
  • A coordenação entre estágios ocorre por meio de filas de tarefas assíncronas.

Juntos, isso permite saturar a capacidade de largura de banda até mesmo dos níveis mais rápidos, como o NVMe RAID. Experimentos revelam que ServerlessLLM atinge carregamento 6 a 8 vezes mais rápido do que PyTorch/TensorFlow, reduzindo o tempo de inicialização para grandes LLMs de mais de um minuto para menos de 10 segundos.

Inferência LLM baseada em localidade por meio de 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 contínuas em servidores ocupados?

ServerlessLLM apresenta uma nova técnica – migração ao vivo de inferência LLM entre servidores GPU. Isso permite transferir perfeitamente a execução para servidores com pontos de verificação locais disponíveis.

Principais facilitadores da migração LLM ao vivo:

  1. Migração baseada em token

Em vez de capturar todo o estado do modelo, o ServerlessLLM migra apenas os tokens mínimos de prompt pela rede. Isso transfere muito menos dados do que instantâneos.

  1. Migração em duas fases

O servidor de destino pré-calcula de forma assíncrona os estados de cache a partir de tokens de prompt. Quando estiver pronto, o servidor de origem transfere os tokens finais antes de liberar recursos. Isso evita paralisações de inferência.

Experimentos revelam que a migração baseada em tokens reduz o tempo de migração de dezenas de segundos para menos de um segundo, mesmo para sequências longas. A migração em tempo real é crucial para evitar atrasos nas filas ao conseguir a alocação baseada na localidade.

Agendamento de modelo otimizado para latência

Para minimizar a latência ponta a ponta, o ServerlessLLM aprimora o agendador para otimizar a seleção do servidor considerando a localidade. Isso involve:

  1. Estimador de tempo de carregamento refinado

Os modelos prevêem tempos de carregamento da rede, caches SSD e memória para cada servidor usando métricas como atrasos de fila, tamanhos de modelo e largura de banda medida.

  1. Preditor preciso do tempo de migração

O planejador estima os tempos de migração para servidores usando o número de tokens de prompt e de saída. Ele rastreia o progresso da inferência de forma assíncrona para evitar sobrecarga.

  1. Alocação com reconhecimento de localidade

Para cada solicitação de inferência, o agendador avalia os tempos estimados de carregamento e migração entre servidores. Ele seleciona o servidor minimizando a latência de inicialização esperada.

O agendador também mantém filas de tarefas do servidor e aproveita um armazenamento fortemente consistente para tolerância a falhas. Juntas, essas inovações reduzem as despesas gerais de agendamento e, ao mesmo tempo, maximizam os benefícios da localidade.

Avaliando o desempenho do ServerlessLLM

Experimentos abrangentes comparam a eficácia ponta a ponta do ServerlessLLM em relação aos sistemas existentes usando modelos do mundo real como OPT-175B e cargas de trabalho modeladas a partir de rastreamentos do Azure.

Resultados principais:

  • Microbenchmarks: ServerlessLLM acelera o carregamento do ponto de verificação em 3.6-8.2X em PyTorch/TensorFlow. Ele satura totalmente a largura de banda de armazenamento, mesmo para RAID NVMe de última geração.
  • Agendamento: ServerlessLLM reduz a latência de alocação em 4 a 12 vezes em comparação com o agendamento aleatório, destacando os benefícios do reconhecimento de localidade. A migração em tempo real evita atrasos nas filas.
  • Atendimento de ponta a ponta: para modelos grandes como OPT-30B, o ServerlessLLM melhora a latência do percentil 99 em 28-200X em sistemas como KServe e Ray Serve. Também aumenta a eficiência dos recursos.

Esses ganhos substanciais demonstram a capacidade do ServerlessLLM de superar gargalos nas implementações sem servidor existentes e liberar o poder dos LLMs para serviços interativos.

As otimizações introduzidas no ServerlessLLM, como carregamento multicamadas, migração ao vivo e agendamento baseado em latência, podem ajudar a informar o design de futuras arquiteturas sem servidor. A capacidade do sistema de reduzir os tempos de carregamento e inicialização desbloqueia a implantação escalável de grandes modelos de linguagem para aplicações práticas.

Olhando para o Futuro: Desafios Contínuos

Embora seja um avanço significativo, o ServerlessLLM representa apenas o primeiro passo na otimização da inferência sem servidor para LLMs massivos. Vários problemas em aberto permanecem, incluindo:

  • Prever a demanda do modelo em tempo real para orientar o provisionamento e o pré-carregamento
  • Colocação inteligente de pontos de verificação nos servidores para maximizar os acessos ao cache
  • Dimensionamento eficiente de algoritmos de agendamento para lidar com clusters maiores
  • Garantir justiça na alocação de recursos entre modelos e desenvolvedores
  • Generalizando inovações como migração ao vivo para outras cargas de trabalho sem servidor

Abordar essas áreas pode ajudar a aproveitar a promessa dos LLMs sem servidor e tornar seus recursos ainda mais acessíveis. Além das otimizações ao nível do sistema, a redução da flagrante pegada de carbono e dos potenciais danos dos grandes modelos também continua a ser uma prioridade urgente.

ServerlessLLM demonstra que existe um enorme espaço para inovação em arquiteturas sem servidor de próxima geração para cargas de trabalho de IA. À medida que os LLMs continuam aumentando em tamanho e popularidade, soluções como o ServerlessLLM, que liberam sua escalabilidade, terão ainda mais impacto. A confluência de sistemas e pesquisas em aprendizado de máquina pode introduzir novos paradigmas no fornecimento, compartilhamento e dimensionamento de modelos de IA de forma segura e sustentável.

Passei os últimos cinco anos mergulhando no fascinante mundo do Machine Learning e Deep Learning. Minha paixão e experiência me levaram a contribuir para mais de 50 projetos diversos de engenharia de software, com foco particular em AI/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.