True ML Talks #23 - Aplicações de MLOps e LLMs @ GitLab

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
Estamos de volta com mais um episódio do True ML Talks. Neste, mergulhamos novamente nas aplicações de MLOps e LLMs no GitLab e conversamos com Monmayuri Ray.
Monmayuri lidera a área de pesquisa em IA no GitLab com grande foco em LLMs ao longo do último ano. Antes disso, ela foi gerente de engenharia na Divisão de ModelOps do GitLab. Ela também trabalhou em outras empresas como Microsoft, eBay.
📌
Nossas conversas com Monmayuri abordarão os seguintes aspectos:
- Casos de uso de ML e LLM no GitLab
- Evolução da infraestrutura de ML do GitLab para suportar grandes modelos de linguagem (LLMs)
- A Jornada do GitLab com LLMs: Do Código Aberto ao Ajuste Fino
- Treinamento de Grandes Modelos de Linguagem no GitLab
- Triton vs. PyTorch, GPUs em Conjunto e Agrupamento Dinâmico para Inferência de LLM
- Desafios e Pesquisas na Avaliação de LLMs no GitLab
- Arquitetura de LLM do GitLab e o Futuro dos LLMs
Assista ao episódio completo abaixo:
Casos de uso de ML e LLM @ GitLab
A aprendizagem de máquina (ML) está transformando o ciclo de vida do desenvolvimento de software, e o GitLab está na vanguarda dessa inovação. O GitLab está usando ML para capacitar os desenvolvedores ao longo de sua jornada, desde a criação de issues até a fusão de requests e a implantação de aplicativos.
Um dos casos de uso mais empolgantes para ML no GitLab são os grandes modelos de linguagem (LLMs). O GitLab está usando LLMs e GenAI para desenvolver novos recursos para seus produtos, como preenchimento de código e resumo de problemas.
Benefícios do ML para usuários do GitLab
- Aumento da produtividade: O ML pode ajudar os desenvolvedores a serem mais produtivos, automatizando tarefas como preenchimento de código e resumo de problemas.
- Melhoria da qualidade do código: O ML pode ajudar os desenvolvedores a escrever um código melhor, identificando erros potenciais e sugerindo melhorias.
- Tempo de desenvolvimento reduzido: O ML pode ajudar os desenvolvedores a reduzir o tempo necessário para desenvolver software, automatizando tarefas e ajudando-os a identificar e corrigir problemas mais rapidamente.
- Melhoria da experiência do desenvolvedor: O ML pode ajudar a melhorar a experiência do desenvolvedor, facilitando o uso dos produtos GitLab e fornecendo suporte e orientação.
Como a infraestrutura de ML do GitLab evoluiu para suportar grandes modelos de linguagem (LLMs)
O GitLab tem estado na vanguarda do uso de grandes modelos de linguagem (LLMs) para capacitar desenvolvedores. Como resultado, o GitLab teve que evoluir sua infraestrutura de ML para suportar esses modelos complexos.
Desafios
- Tamanho e complexidade: Os LLMs são muito maiores e mais complexos do que os modelos de ML tradicionais, o que significa que eles exigem hardware e software mais poderosos para treinamento e implantação.
- Integração: Os produtos do GitLab são escritos em Ruby on Rails e JavaScript. Isso significa que o GitLab teve que encontrar maneiras de integrar sua infraestrutura de ML com essas tecnologias.
- Infraestrutura distribuída: A infraestrutura de ML do GitLab está distribuída por vários provedores de nuvem diferentes. Isso significa que o GitLab teve que desenvolver maneiras de gerenciar sua infraestrutura de ML de forma consistente e eficiente.
Soluções
Para enfrentar os desafios mencionados acima, o GitLab implementou diversas mudanças na sua infraestrutura de ML. Essas mudanças podem ser categorizadas nas seguintes áreas:
- Hardware: O GitLab investiu em novo hardware, como GPUs e TPUs, para suportar o treinamento e a implantação de LLMs.
- Software: O GitLab desenvolveu novos pipelines de treinamento e implantação para LLMs. O GitLab também desenvolveu uma série de soluções de integração para permitir que sua infraestrutura de ML funcione com seus aplicativos Ruby on Rails e JavaScript.
- Gerenciamento: O GitLab desenvolveu uma série de ferramentas e processos para ajudar a gerenciar sua infraestrutura de ML distribuída.
A Jornada do GitLab com LLMs: Do Código Aberto ao Ajuste Fino
O GitLab tem estado na vanguarda do uso de grandes modelos de linguagem (LLMs) para capacitar desenvolvedores. Nos primeiros dias, o GitLab começou usando LLMs de código aberto, como o gerador de código da Salesforce. No entanto, à medida que o cenário mudou e os LLMs se tornaram mais poderosos, o GitLab mudou para o ajuste fino de seus próprios LLMs para casos de uso específicos, como a geração de código.
O ajuste fino de LLMs exige um investimento significativo em infraestrutura, já que esses modelos são muito grandes e complexos. O GitLab teve que desenvolver novos pipelines de treinamento e implantação para LLMs, bem como novas formas de gerenciar sua infraestrutura de ML em um ambiente distribuído.
Um dos principais desafios que o GitLab enfrentou no ajuste fino de LLMs é encontrar o equilíbrio certo entre custo e latência. LLMs podem ser muito caros para treinar e implantar, e também podem ser lentos para gerar resultados. O GitLab teve que experimentar diferentes tamanhos de cluster, configurações de GPU e técnicas de processamento em lote para encontrar o equilíbrio certo para suas necessidades.
Outro desafio que o GitLab enfrentou é garantir que seus LLMs sejam precisos e confiáveis. LLMs podem ser treinados em grandes conjuntos de dados de texto e código, mas esses conjuntos de dados também podem conter erros e vieses. O GitLab teve que desenvolver novas técnicas para avaliar e desenviesar seus LLMs.
Apesar dos desafios, o GitLab fez progressos significativos no uso de LLMs para capacitar desenvolvedores. O GitLab agora é capaz de treinar e implantar LLMs em escala, e está usando esses modelos para desenvolver novos recursos e produtos que tornarão o processo de desenvolvimento de software mais eficiente e agradável.
Treinamento de Grandes Modelos de Linguagem no GitLab
Treinar grandes modelos de linguagem (LLMs) é uma tarefa desafiadora que exige um investimento significativo em infraestrutura e recursos. O GitLab tem estado na vanguarda do uso de LLMs para capacitar desenvolvedores, e a empresa aprendeu muito ao longo do caminho.
Aqui estão alguns insights e lições aprendidas da experiência do GitLab no treinamento de LLMs:
- Comece pequeno e escale. Ao estimar a quantidade de recursos de GPU necessários para o treinamento, é melhor começar pequeno e aumentar a escala gradualmente. Isso o ajudará a evitar o desperdício de recursos e a identificar quaisquer gargalos potenciais logo no início.
- Utilize o agrupamento dinâmico. O agrupamento dinâmico pode ajudar a otimizar o seu processo de treino, agrupando entradas semelhantes. Isso pode levar a melhorias significativas de desempenho, especialmente para grandes conjuntos de dados.
- Escolha os parâmetros certos para otimizar. Não existe uma abordagem única para escolher os parâmetros certos a otimizar ao fazer o fine-tuning de LLMs. Os melhores parâmetros variarão dependendo do LLM específico, dos dados de treino e do resultado desejado. No entanto, é importante experimentar diferentes parâmetros para encontrar a melhor combinação para as suas necessidades específicas.
- Considere usar o treino distribuído. O treino distribuído pode ajudar a acelerar o processo de treino, distribuindo a carga de trabalho por várias GPUs ou máquinas. Isso pode ser especialmente benéfico para treinar LLMs grandes em grandes conjuntos de dados.
- Experimente o modo de adaptação de baixo rank. O modo de adaptação de baixo rank é uma técnica que pode ser usada para fazer o fine-tuning de LLMs com um número menor de parâmetros. Isso pode ser útil em casos onde não se tem recursos suficientes para fazer o fine-tuning de todo o modelo.
Além das informações acima, o GitLab também aprendeu várias lições valiosas sobre a importância de ter um bom entendimento do modelo base e dos dados de treino. Por exemplo, o GitLab descobriu que é importante conhecer a construção do modelo base e como curar os dados de treino para otimizar para o caso de uso desejado.
Triton vs. PyTorch, GPUs em Conjunto e Agrupamento Dinâmico para Inferência de LLM
O GitLab usa o Triton para inferência de LLM porque é mais adequado para escalar para o alto volume de pedidos que o GitLab recebe. O Triton também é mais fácil de encapsular e escalar do que outros servidores de modelo, como os servidores PyTorch.
O GitLab ainda não experimentou os servidores de modelo TGI ou VLLM da Hugging Face, pois estes ainda estavam nas fases iniciais de desenvolvimento quando o GitLab implementou pela primeira vez o seu pipeline de inferência de LLM.
No que diz respeito ao agrupamento dinâmico, a estratégia do GitLab é otimizar para o caso de uso específico, carga, nível de consulta, volume e número de GPUs disponíveis. Por exemplo, se o GitLab tiver 500 GPUs para um modelo de 7B, pode usar uma estratégia de agrupamento diferente da que usaria se tivesse apenas algumas GPUs para um modelo menor.
O GitLab também usa um conjunto de GPUs para lidar com os pedidos. Isso significa que o GitLab usa uma mistura de diferentes tipos de GPUs, incluindo GPUs de alto desempenho e GPUs de menor desempenho. O GitLab faz o balanceamento de carga dos pedidos através do conjunto de GPUs para otimizar o desempenho e o custo.
Aqui estão algumas dicas para projetar uma arquitetura para agrupar GPUs e otimizar o balanceamento de carga:
- Compreenda os seus padrões de tráfego. Quais são os seus horários de pico de tráfego? Que tipos de pedidos recebe com mais frequência?
- Use testes A/B para experimentar diferentes configurações de GPU e estratégias de balanceamento de carga.
- Monitorize o seu desempenho e latência para garantir que a sua arquitetura está a satisfazer as suas necessidades.
Aqui estão alguns exemplos específicos de como o GitLab otimizou a sua arquitetura para GPUs em conjunto e agrupamento dinâmico:
- O GitLab usa um sistema de orquestração dinâmica para atribuir pedidos a GPUs com base no seu tipo, desempenho e disponibilidade.
- O GitLab usa uma técnica chamada "GPU warm-up" para garantir que as GPUs estejam prontas para lidar com as solicitações quando forem necessárias.
- O GitLab usa quantização para reduzir o tamanho de seus modelos sem sacrificar a precisão.
Ao seguir estas dicas, você pode projetar uma arquitetura que possa lidar eficientemente com grandes volumes de solicitações de inferência de LLM.
Nós também tentamos o streaming, e acho que estamos analisando a possibilidade de streaming para nossos terceiros também - Monmayuri
Desafios e Pesquisa na Avaliação de LLMs no GitLab
Avaliar o desempenho de grandes modelos de linguagem (LLMs) é uma tarefa desafiadora. O GitLab tem trabalhado neste problema e enfrentado vários desafios, incluindo:
- Diferentes casos de uso têm necessidades diferentes. Diferentes casos de uso de LLM, como chat, sugestão de código e explicação de vulnerabilidades, têm necessidades diferentes e exigem métricas de avaliação distintas.
- É difícil saber qual modelo funciona melhor para uma determinada consulta. É difícil determinar qual LLM terá o melhor desempenho em uma determinada consulta, especialmente em produção.
- É difícil equilibrar precisão e taxas de aceitação. É importante encontrar um equilíbrio entre a precisão dos resultados do LLM e a taxa de aceitação desses resultados pelos usuários.
O GitLab está abordando esses desafios ao:
- Curar um bom conjunto de dados para cada caso de uso. O GitLab está curando um conjunto de dados para cada caso de uso de LLM que seja representativo dos tipos de consultas que os usuários enviarão em produção.
- Analisando dados históricos. O GitLab está analisando dados históricos para entender como os LLMs se comportaram em diferentes tipos de consultas no passado.
- Desenvolvendo novas métricas de avaliação. O GitLab está desenvolvendo novas métricas de avaliação que são adaptadas a casos de uso específicos de LLM.
- Utilizando dados para impulsionar a tomada de decisões. O GitLab está usando dados para tomar decisões sobre quais LLMs usar para diferentes casos de uso e como ajustar os parâmetros desses LLMs.
O objetivo do GitLab é desenvolver uma abordagem escalável e orientada por dados para avaliar LLMs. Essa abordagem ajudará o GitLab a garantir que seus LLMs estejam com bom desempenho em produção e atendendo às necessidades de seus usuários.
Direções de pesquisa
O GitLab também está realizando pesquisas sobre novas formas de avaliar LLMs. Algumas das direções de pesquisa que o GitLab está explorando incluem:
- Utilizando dados de interação humano-computador (IHC) para avaliar LLMs. Os dados de IHC podem fornecer insights sobre como os usuários interagem com LLMs e como eles percebem os resultados dessas interações. Esses dados podem ser usados para desenvolver novas métricas de avaliação para LLMs.
- Utilizando métodos adversariais para avaliar LLMs. Métodos adversariais podem ser usados para gerar entradas projetadas para enganar LLMs e fazê-los cometer erros. Esses dados podem ser usados para avaliar a robustez de LLMs a diferentes tipos de erros.
- Utilizando aprendizado por transferência para avaliar LLMs. O aprendizado por transferência pode ser usado para avaliar LLMs em novas tarefas sem a necessidade de coletar um novo conjunto de dados para cada tarefa. Isso pode ser útil para avaliar LLMs em tarefas para as quais a coleta de dados é difícil ou cara.
A pesquisa do GitLab sobre a avaliação de LLMs está em andamento. O GitLab está comprometido em desenvolver formas novas e inovadoras de avaliar LLMs para garantir que seus LLMs atendam às necessidades de seus usuários.
Arquitetura de LLM do GitLab e o Futuro dos LLMs
A arquitetura de LLM do GitLab é uma abordagem abrangente para treinar, avaliar e implantar LLMs. A arquitetura é projetada para ser flexível e escalável, para que o GitLab possa facilmente adotar novas tecnologias e atender às necessidades de seus usuários.

A arquitetura consiste em vários componentes-chave:
- Pré-processamento e tokenização de dados: A arquitetura de LLM do GitLab começa com o pré-processamento e a tokenização dos dados que serão usados para treinar o LLM. Esse processo envolve a limpeza dos dados, a remoção de ruídos e a conversão do texto para um formato que o LLM possa entender.
- Amostragem e encurtamento: Uma vez que os dados são pré-processados e tokenizados, a arquitetura de LLM do GitLab amostra e encurta os dados. Isso é feito para reduzir o custo computacional do treinamento do LLM.
- Suítes de GPU: A arquitetura de LLM do GitLab utiliza suítes de GPU para treinar o LLM. As GPUs são processadores especializados que são adequados para treinar LLMs.
- Suíte de avaliação: A arquitetura de LLM do GitLab inclui uma suíte de avaliação para avaliar o desempenho do LLM. A suíte de avaliação inclui uma variedade de métricas, como precisão, fluência e coerência.
- Pontos de verificação do modelo: A arquitetura de LLM do GitLab armazena pontos de verificação do modelo em intervalos regulares. Isso permite ao GitLab retomar o treinamento de um ponto anterior caso algo dê errado.
- Biblioteca de prompts: A arquitetura de LLM do GitLab inclui uma biblioteca de prompts, que é uma coleção de prompts que podem ser usados para gerar diferentes tipos de texto a partir do LLM.
- Registro de modelos: A arquitetura de LLM do GitLab inclui um registro de modelos, que é um repositório central para todos os modelos LLM do GitLab.
- Mecanismo de implantação: A arquitetura de LLM do GitLab inclui um mecanismo de implantação que implanta o LLM em produção. O mecanismo de implantação inclui um balanceador de carga para distribuir o tráfego entre várias instâncias do LLM.
A arquitetura de LLM do GitLab é uma ferramenta poderosa que permite ao GitLab treinar, avaliar e implantar LLMs em escala. A arquitetura é projetada para ser flexível e escalável, para que o GitLab possa adotar facilmente novas tecnologias e atender às necessidades de seus usuários.
O futuro dos LLMs
Os LLMs ainda são uma tecnologia relativamente nova, mas têm o potencial de revolucionar muitas indústrias. O GitLab acredita que os LLMs terão um impacto significativo na indústria de desenvolvimento de software.
O GitLab já está usando LLMs para aprimorar seus produtos e serviços. Por exemplo, o GitLab está usando LLMs para gerar sugestões de código, explicar vulnerabilidades e melhorar a experiência do usuário de seus produtos.
O GitLab acredita que outras organizações também deveriam investir em LLMs. Os LLMs têm o potencial de melhorar a produtividade, a eficiência e a qualidade em muitas indústrias.
Áreas para investir
O GitLab recomenda que as organizações invistam nas seguintes áreas para se manterem à frente no espaço dos LLMs:
- Infraestrutura: LLMs exigem um investimento significativo em infraestrutura. As organizações precisam investir em GPUs, armazenamento e rede para suportar LLMs.
- Ferramentas e tecnologias: Existem várias ferramentas e tecnologias que podem ajudar as organizações a treinar, avaliar e implantar LLMs. As organizações devem investir nas ferramentas e tecnologias que são adequadas às suas necessidades.
- Talento: LLMs são uma tecnologia complexa. As organizações precisam investir em talentos com as habilidades e conhecimentos para treinar, avaliar e implantar LLMs.
Ao investir nessas áreas, as organizações podem manter-se à frente no espaço dos LLMs e colher os benefícios dessa tecnologia poderosa.
Leia nossos blogs anteriores da série True ML Talks:
Continue assistindo à série TrueML do YouTube e lendo a série de blogs TrueML.
TrueFoundry é uma PaaS de Implantação de ML sobre Kubernetes para acelerar os fluxos de trabalho dos desenvolvedores, ao mesmo tempo que lhes permite total flexibilidade no teste e implantação de modelos, garantindo total segurança e controle para a equipe de Infraestrutura. Através da nossa plataforma, capacitamos as equipes de Machine Learning a implantar e monitorar modelos em 15 minutos com 100% de confiabilidade, escalabilidade e a capacidade de reverter em segundos – permitindo-lhes economizar custos e lançar modelos em produção mais rapidamente, possibilitando a realização de valor de negócio real.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI













.webp)







.webp)

.webp)
.webp)





.png)



