O Guia Prático para Auto-hospedagem de Sistemas LLM Compostos
Organizado durante a SF #TechWeek, o meetup mensal da Zilliz “Unstructured Data Meetup” atraiu mais de 800 builders, fundadores e VCs para discutir os desenvolvimentos mais recentes no ecossistema de IA. A segunda palestra, apresentada por Chaoyu Yang (fundador/CEO da BentoML), trouxe conselhos práticos para aqueles que preferem o controle e a personalização de auto-hospedar modelos de linguagem grandes (LLMs) enquanto tentam alcançar o desempenho de simplesmente chamar uma API gerenciada. A BentoML compartilha seus insights de pesquisa em orquestração de IA, demonstrando soluções que desenvolveu para otimizar problemas comuns de desempenho ao auto-hospedar modelos.
Neste post, recapitularemos os principais pontos da palestra de Chaoyu e discutiremos os principais desafios, considerações e práticas para auto-hospedar seus LLMs. Também exploraremos como integrar BentoML e Milvus para criar aplicações GenAI mais poderosas.
A LLM Doom Stack
Como alguém relativamente novo em IA, achei mais fácil entender BentoML e Milvus no contexto da stack moderna de LLM. Sem nenhuma ordem específica—só porque soa legal—vamos explorar o que chamo de 'LLM DOOM Stack.'
Dados: Preparar, armazenar e processar conjuntos de dados em larga escala para treinamento e inferência de alta qualidade. Essas tecnologias incluem pipelines de dados, modelos de embedding, e bancos de dados vetoriais (como Zilliz/Milvus, woo!)
Operações: Monitorar, escalar e manter a integridade e o desempenho dos modelos implantados. Observabilidade em tempo real para depuração ativa a fim de manter a confiabilidade.
Orquestração: Implantar e escalar modelos em diferentes infraestruturas, gerenciando o fluxo entre LLMs, sistemas externos e usuários. (É aqui que a BentoML desempenha um papel fundamental.)
Modelos de IA: O coração dos apps de LLM—treinar, ajustar finamente e otimizar modelos para tarefas específicas, seja usando APIs, modelos open-source ou pré-treinados.
Figure- The LLM Doom Stack.png
Figura: A LLM Doom Stack (adaptada de esta imagem.)
Toda startup de infraestrutura de IA se encaixa neste framework DOOM. Milvus e seu serviço de nuvem gerenciado, Zilliz Cloud, são bancos de dados vetoriais criados para armazenar, indexar e recuperar dados não estruturados em representações numéricas chamadas embeddings vetoriais em um espaço de alta dimensionalidade. Eles são componentes fundamentais de vários sistemas impulsionados por LLM, particularmente geração aumentada por recuperação (RAG). BentoML fornece otimizações operacionais para os fluxos de trabalho atuais de LLM. Ao tomar emprestados conceitos que comprovaram funcionar em sistemas operacionais e combiná-los com pesquisas baseadas em dados, a BentoML demonstrou oferecer desempenho superior para criar e implantar LLMs—e seu fundador, Chaoyu, compartilhou seus segredos nesta palestra.
O dilema dos LLMs: auto-hospedar ou simplesmente chamar a API?
Uma das decisões mais críticas ao implantar LLMs é se deve auto-hospedar ou depender de APIs gerenciadas. Ambas as opções vêm com suas próprias compensações, tornando essencial ponderar conveniência versus controle. APIs gerenciadas são atraentes por sua facilidade de uso, menor sobrecarga de manutenção e capacidade de escalabilidade rápida, enquanto o auto-hospedagem oferece controle total e flexibilidade, permitindo uma personalização mais profunda. Em última análise, a decisão para a maioria das equipes se resume a equilibrar a velocidade de implantação de curto prazo com metas de escalabilidade e desempenho de longo prazo.
Figure- Benefits and Challenges of Self-Hosting LLMs.png
Figura: Benefícios e Desafios de Auto-Hospedar LLMs
Quem Deve Auto-Hospedar LLMs?
Chaoyu começou sua palestra com uma rápida pesquisa sobre LLMs gerenciados vs. auto-hospedados. A maioria dos participantes levantou a mão para APIs gerenciadas, e é compreensível—Construir, escalar e manter a infraestrutura enquanto desenvolve simultaneamente sua aplicação não é uma tarefa fácil.
Chaoyu destacou que os serviços gerenciados, embora convenientes, muitas vezes priorizam o throughput em vez da otimização para casos de uso específicos. A auto-hospedagem, por outro lado, permite o fine-tuning personalizado de modelos, estratégias avançadas de inferência e qualidade e latência previsíveis.
No entanto, a auto-hospedagem não é a escolha certa para todos. Então, quem exatamente deve considerar auto-hospedar LLMs? Aqui estão os principais motivos para explorar essa abordagem:
Figure- Who Should Self-Host LLMs? .png
Figura: Quem Deve Auto-Hospedar LLMs?
Controle: A auto-hospedagem permite que você execute LLMs nos seus próprios termos, cumprindo requisitos de segurança de dados, regulamentações de privacidade e necessidades organizacionais específicas. Isso é especialmente verdadeiro para setores com requisitos rigorosos de proteção de dados, nos quais dados sensíveis não podem sair da sua infraestrutura.
Personalização: Com a auto-hospedagem, você pode fazer fine-tuning de modelos e otimizar estratégias de inferência para seu caso de uso específico, alcançando melhor desempenho, velocidade e precisão do que as APIs gerenciadas podem oferecer. Você também ganha a flexibilidade de experimentar técnicas avançadas de inferência, como decodificação Chain of Thought (CoT) ou Equilibrium Search, que só são possíveis com controle total sobre a camada de inferência.
Benefícios de Custo a Longo Prazo: Embora a auto-hospedagem possa gerar custos iniciais mais altos em termos de infraestrutura e manutenção, ela pode oferecer economia de custos a longo prazo. Você pode otimizar custos ao longo do tempo e escalar aproveitando plataformas open-source como BentoML e OpenLLM sem ficar preso a modelos de precificação de fornecedores.
Principais Desafios e Otimizações para Auto-Hospedar LLMs
Auto-hospedar LLMs oferece maior controle, mas vem com um conjunto de desafios técnicos, particularmente em torno de escalabilidade, otimização de inferência e o problema de cold start. O BentoML oferece um conjunto de soluções para lidar com essas questões, permitindo que as equipes otimizem seus deployments com eficiência. Chaoyu compartilhou as principais abordagens que eles usaram para enfrentar esses desafios.
Otimização de Inferência
Ao auto-hospedar LLMs, otimizar a inferência é crucial para melhorar o desempenho e reduzir custos. Chaoyu destacou várias técnicas principais:
Figure- LLM Inference Optimization- The Table Stacks.png
Figura: Otimização de Inferência de LLM: The Table Stacks
Agrupamento de Requisições em Lote
Como uma das estratégias mais impactantes, agrupar requisições em lote pode aumentar o throughput em até 23x. Ao processar múltiplas requisições em paralelo em vez de sequencialmente, você pode maximizar a utilização dos recursos de GPU, reduzindo o tempo ocioso e melhorando a eficiência, especialmente para aplicações de alto tráfego.
Streaming de Tokens
Outra otimização essencial é o streaming de tokens, que retorna tokens incrementalmente à medida que são gerados. Essa abordagem melhora significativamente a latência percebida, particularmente em aplicações em tempo real, como chatbots, nas quais tempos de resposta mais rápidos aprimoram a experiência do usuário.
Quantização
Além disso, a quantização reduz o uso de memória e a latência de inferência ao diminuir a precisão do modelo (por exemplo, de 32 bits para 8 bits). Embora essa abordagem possa causar uma ligeira redução na qualidade da saída para certas tarefas, a troca compensa pelos ganhos de desempenho.
Otimizações de Kernel
Otimizar no nível do kernel permite otimizações de GPU de baixo nível adaptadas a cargas de trabalho de LLM, garantindo que as tarefas computacionais sejam tratadas da forma mais eficiente possível. No entanto, essas otimizações podem reduzir a portabilidade entre diferentes plataformas de hardware.
Paralelismo de Modelo
Para modelos extremamente grandes (70B+ parâmetros), distribuir a carga de trabalho entre múltiplas GPUs permite uma inferência mais eficiente. Embora isso melhore a taxa de transferência, introduz alguma sobrecarga de comunicação entre GPUs.
Escalando a Inferência de LLM: Autoscaling Baseado em Concorrência
Um desafio comum em ambientes auto-hospedados é gerenciar a escala. Métricas tradicionais de escalabilidade, como utilização de CPU/GPU e consultas por segundo (QPS), são insuficientes para LLMs, que têm demandas de recursos variáveis dependendo da complexidade da entrada.
Chaoyu explicou que o scaling baseado em concorrência é uma abordagem mais eficaz. Esse método monitora o número de solicitações simultâneas para determinar a carga do sistema e ajusta dinamicamente os recursos com base no tamanho do lote. Esse método garante que o sistema escale precisamente quando necessário, evitando o superprovisionamento e reduzindo custos, ao mesmo tempo em que mantém alto desempenho durante picos de tráfego.
Cache de Prefixo para Economia de Custos
Uma das maneiras mais eficazes de reduzir custos e melhorar o desempenho em ambientes auto-hospedados é por meio do cache de prefixo, que pode levar a 90%+ de economia de custos. Essa estratégia funciona armazenando em cache as partes comuns dos prompts, como instruções do sistema ou conteúdo estático, para evitar computações redundantes.
Ao carregar informações estáticas no início das solicitações, você aumenta a probabilidade de acertos de cache, reduzindo a carga computacional para solicitações subsequentes com estruturas semelhantes. Isso é especialmente útil para aplicações que lidam com consultas frequentes e repetidas, nas quais a maior parte do prompt permanece a mesma. O cache de prefixo reduz a latência e diminui o uso de recursos, otimizando significativamente o desempenho e os custos da inferência de LLM.
O Problema de Cold Start
Outro grande desafio no auto-hospedagem é o problema de cold start—o atraso quando novas instâncias levam tempo para ficar prontas para lidar com tráfego. Chaoyu discutiu duas estratégias principais para superar esse problema.
Uma solução é ter modelos pré-aquecidos em espera. Isso garante que os modelos estejam instantaneamente prontos para lidar com solicitações quando ocorre um pico, minimizando atrasos de inicialização.
Outra otimização crítica é reduzir o tamanho das imagens de contêiner. Ao reduzir dependências desnecessárias, você pode diminuir drasticamente o tempo necessário para baixar imagens ao escalar serviços dinamicamente. Por exemplo, uma imagem de 154 MB carregará muito mais rápido do que uma imagem volumosa de 6,7 GB, reduzindo significativamente o tempo de inicialização.
Além disso, transmitir os pesos do modelo por streaming progressivamente para a memória da GPU, em vez de carregá-los sequencialmente, reduz ainda mais o tempo de inicialização. Isso garante que seu sistema possa lidar com picos repentinos de tráfego sem longos atrasos de inicialização, melhorando a responsividade geral dos seus modelos auto-hospedados.
Integrando BentoML e Milvus para Aplicações de LLM Mais Poderosas
O BentoML otimiza sistemas de serviço online para aplicações de IA e inferência de modelos. Seu serviço gerenciado, BentoCloud, oferece uma variedade de modelos de IA open-source de última geração, incluindo Llama 3, Stable Diffusion, CLIP e Sentence Transformers. Esses modelos pré-construídos podem ser implantados com um único clique na plataforma.
Milvus é um banco de dados vetorial de código aberto criado para armazenar, indexar e pesquisar dados não estruturados em escala de bilhões usando embeddings vetoriais de alta dimensão. Ele é ideal para aplicações modernas de IA, como RAG, busca semântica, busca multimodal e sistemas de recomendação.
O BentoCloud integra-se perfeitamente com o Milvus e seu serviço gerenciado, Zilliz Cloud, permitindo o desenvolvimento fácil de aplicações poderosas impulsionadas por LLM, particularmente Retrieval Augmented Generation (RAG). RAG é uma técnica para aprimorar a saída de LLM fornecendo ao modelo conhecimento externo ao qual ele não tinha acesso.
Você pode usar o BentoCloud para servir modelos de embedding e converter dados não estruturados em embeddings vetoriais, que podem então ser armazenados e recuperados no Milvus (ou Zilliz Cloud). O Milus então recupera os resultados mais relevantes e os fornece como contexto com o LLM para gerar resultados mais precisos.
Figura- fluxo de trabalho RAG.png
Para obter mais informações sobre como criar RAG ou outros tipos de APPs de GenAI, confira os tutoriais e blogs abaixo:
Tutorial: Retrieval-Augmented Generation (RAG) com Milvus e BentoML | Documentação do Milvus
Tutorial: RAG Sem OpenAI: BentoML, OctoAI e Milvus
Blog | Desafios de infraestrutura no escalonamento de RAG com modelos de IA personalizados
Vídeo | RAG como um serviço com BentoML
Resumo
Implantar LLMs envolve decisões e desafios críticos, desde escolher entre auto-hospedagem e APIs gerenciadas até otimizar desempenho e escalonamento. Embora APIs gerenciadas ofereçam conveniência e simplicidade, a auto-hospedagem proporciona maior controle, flexibilidade e eficiência de custos a longo prazo para equipes que precisam de soluções personalizadas. A plataforma do BentoML aborda muitas das complexidades da auto-hospedagem, oferecendo ferramentas poderosas para otimizar inferência, escalar com eficiência e superar obstáculos técnicos como o problema de inicialização a frio.
Ao aproveitar o BentoML, o Milvus ou seus serviços gerenciados, as equipes podem integrar perfeitamente as camadas de Dados e Operações de suas aplicações LLM, criando sistemas de alto desempenho que atendam às suas necessidades específicas.
Se você está pronto para mergulhar na auto-hospedagem de LLMs e criar aplicações LLM, ferramentas como BentoML, OpenLLM e Milvus tornam mais fácil começar e otimizar para seu caso de uso único.
Junte-se a pessoas dedicadas a otimizar sua camada da stack DOOM. Fique sobre os ombros de gigantes, alavanque o mundo como Arquimedes e mantenha o impulso.
Continue lendo

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

Context Engineering Strategies for AI Agents: A Developer’s Guide
Learn practical context engineering strategies for AI agents. Explore frameworks, tools, and techniques to improve reliability, efficiency, and cost.

Announcing the General Availability of Zilliz Cloud BYOC on Google Cloud Platform
Zilliz Cloud BYOC on GCP offers enterprise vector search with full data sovereignty and seamless integration.



