Modelos de linguagem em código aberto são especialmente relevantes no contexto da privacidade e da soberania digital, pois permitem execução em ambientes isolados com dados sensíveis ou sigilosos. Uma grande barreira para sua adoção em empresas de menor porte são os requisitos de hardware e, consequentemente, a capacitação de recursos humanos. Neste artigo, apresentamos alguns conceitos que podem contribuir para especificar aproximadamente qual hardware pode atender a essa necessidade, respondendo a duas perguntas:
- Qual a quantidade de memória necessária para carregar o modelo?
- Qual parâmetro de desempenho deve ser observado para garantir que o hardware escolhido forneça respostas fluidas, semelhantes a um chat tradicional?
Para responder à primeira pergunta, é necessário entender que a complexidade dos modelos LLMs pode, em linhas gerais, ser inferida pelo número de parâmetros. Essa informação geralmente aparece no próprio nome do modelo. Por exemplo: Llama-3B indica que se trata do modelo Llama (Meta) com 3 bilhões de parâmetros. Caso essa informação não esteja explícita, deve-se consultar a documentação do modelo. Para calcular a quantidade mínima de memória necessária, considere que cada parâmetro é armazenado em uma variável com precisão de ponto flutuante de 32 bits. Como cada byte equivale a 8 bits, uma variável de 32 bits corresponde a 4 bytes na memória. Assim:
3.000.000.000 parâmetros x 4 bytes/parâmetro = 12×10^9 bytes = 12 Gigabytes
Ou seja, para carregar um modelo de 3B parâmetros, são necessários pelo menos 12 GB livres de memória de vídeo (VRAM). Observa-se que mesmo em 2025 placas de vídeo discretas com 8 GB ainda são comuns em computadores de mesa, assim como 4 GB em GPUs integradas em computadores portáteis. Uma estratégia para otimizar recursos é a quantização das variáveis do modelo, que reduz a “resolução” dos parâmetros mantendo suas características funcionais. Um exemplo de biblioteca que implementa esse processo é a bitsandbytes. Abordagens recentes também exploram o uso de SSD como alternativa parcial à VRAM.
Os requisitos detalhados de hardware variam conforme o objetivo: treinamento, ajuste fino ou apenas inferência do modelo. O treinamento exige armazenamento e processamento de enormes volumes de dados. Para ilustrar, de acordo com o reporte técnico do DeepSeek-V3, foram necessárias 2.78 Bilhões de horas de GPU (NVIDIA H800) utilizando 14.8 trilhões de tokens de alta qualidade e diversidade, considerando que cada token equivale a aproximadamente 4 bytes [referência], conclui-se que foi utilizado aproximadamente 59 TB de dados de treinamento. É evidente que esse nível de infraestrutura está fora do alcance de pequenas empresas.
O ajuste fino de um LLM busca introduzir novos comportamentos ou melhorar instruções específicas, ajustando apenas parte dos parâmetros com base em exemplos de prompts e respostas esperadas. Sua viabilidade depende do número de parâmetros ajustáveis, do método adotado, do tamanho do conjunto de dados e do hardware disponível.
Recentemente foram desenvolvidos métodos mais eficientes de ajuste fino dos quais LoRA (Low Rank Adaptation, em inglês) se destaca (Hu et al., 2022). O método é baseado em uma camada adaptadora, cujos parâmetros ajustáveis são obtidos através de uma decomposição de matrizes. A nova camada de parâmetros pode ser anexada nas camadas de atenção (attention heads) ou na camada totalmente conectada (sinônimo de camada densa ou linear no contexto de redes neurais) [fonte]. A atualização das matrizes dos adaptadores demanda muito menos recursos computacionais durante o procedimento de reajuste devido ao menor posto (rank) dessas matrizes em comparação com a matriz de pesos original, com maiores dimensões e posto (rank). O reajuste de parâmetros propriamente dito é realizado através da solução de um problema de otimização com um método de gradiente descendente moderno, como Adam (Kingma & Ba, 2014), por exemplo.
QLoRA é uma versão mais eficiente do método, proposta por Dettmers et al., 2023, que alcança melhor desempenho computacional através da quantização dos parâmetros do modelo original. Ambos os métodos foram implementados na biblioteca PEFT disponibilizada para Python, e mais detalhes, exemplos, podem ser encontrados [aqui]. O uso dessas técnicas permite personalizar modelos de maneira viável, equilibrando eficiência e desempenho, sem necessidade de re-estimar todos os parâmetros.
Empresas que integram LLMs em produtos completos ou serviços de inferência são chamadas por alguns de Application-Layer AI Companies [Fonte1]. Seu papel é transformar modelos de propósito geral em soluções aplicadas a problemas específicos no mundo real, trazendo valor direto aos usuários. Exemplos incluem lucidworks, Perssua, getenter.ai, requesty.ai, braine.digital, dynadok.com, etc. Nesse cenário, a principal demanda computacional recai sobre a inferência, que embora mais leve que o treinamento ou ajuste fino, pode se tornar intensiva em ambientes de grande escala.
Para a inferência, o parâmetro-chave é tokens por segundo, que mede a capacidade do modelo de gerar ou processar tokens de forma contínua. Esse indicador determina a latência e a fluidez da interação, sendo crucial para proporcionar ao usuário a sensação de diálogo em tempo real. O desempenho depende tanto das características do modelo (arquitetura e número de parâmetros) quanto da infraestrutura que o hospeda (tipo e quantidade de GPUs, TPUs, etc.). Alguns exemplos de testes de desempenho de LLMs/hardware podem ser encontrados no Link1, ou Link2.
Em resumo, a adoção de LLMs em código aberto oferece oportunidades estratégicas para empresas que buscam maior autonomia e segurança sobre seus dados. Entretanto, o sucesso dessa implementação depende de uma análise cuidadosa dos requisitos de hardware, do alinhamento entre métodos de otimização como quantização e LoRA, e do objetivo final: seja treinamento, ajuste fino ou apenas inferência. Compreender essas variáveis é essencial para transformar o potencial dos modelos de linguagem em resultados práticos, equilibrando custos e benefícios.
Referências
Dettmers, T., Pagnoni, A., Holtzman, A., & Zettlemoyer, L. (2023). Qlora: Efficient finetuning of quantized llms. Advances in neural information processing systems, 36, 10088-10115.
[link]
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2022). Lora: Low-rank adaptation of large language models. ICLR, 1(2), p. 3. [link]
Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. [link]