A IA no dispositivo e a execução de grandes modelos de linguagem em dispositivos menores têm sido um dos principais pontos de foco dos líderes do setor de IA nos últimos anos. Esta área de investigação está entre as mais críticas na IA, com potencial para influenciar e remodelar profundamente o papel da IA, dos computadores e dos dispositivos móveis na vida quotidiana. Esta investigação opera nos bastidores, em grande parte invisível para os utilizadores, mas reflecte a evolução dos computadores – desde máquinas que outrora ocupavam salas inteiras e eram acessíveis apenas a governos e grandes corporações até aos smartphones agora confortavelmente escondidos nos nossos bolsos.
Agora, a maioria dos grandes modelos de linguagem são implantados em ambientes de nuvem, onde podem aproveitar os imensos recursos computacionais dos data centers. Esses data centers são equipados com hardware especializado, como GPUs e TPUs, ou até mesmo chips de IA especializados, projetados para lidar com as cargas de trabalho intensivas exigidas pelos LLMs. Mas esta dependência da nuvem traz consigo desafios significativos:
Alto custo: Os serviços em nuvem são caros. A execução de LLMs em escala requer acesso contínuo a servidores de alta potência, o que pode aumentar os custos operacionais. Para startups ou engenheiros individuais, estes custos podem ser proibitivos, limitando quem pode realisticamente tirar partido desta poderosa tecnologia.
Preocupações com privacidade de dados: quando os usuários interagem com LLMs baseados em nuvem, seus dados devem ser enviados a servidores remotos para processamento. Isto cria uma vulnerabilidade potencial, uma vez que informações confidenciais, como conversas pessoais, históricos de pesquisa ou detalhes financeiros, podem ser interceptadas ou mal utilizadas.
Impacto Ambiental: A computação em nuvem nesta escala consome grandes quantidades de energia. Os data centers exigem energia contínua não apenas para computação, mas também para resfriamento e manutenção da infraestrutura, o que leva a uma pegada de carbono significativa. Com o impulso global em direção à sustentabilidade, esta questão deve ser abordada. Por exemplo, um relatório recente do Google mostrou um aumento de 48% nas emissões de gases com efeito de estufa nos últimos cinco anos, atribuindo grande parte deste aumento às crescentes exigências da tecnologia de IA.
É por isso que esta questão continua a chamar a atenção dos líderes da indústria, que estão a investir recursos significativos para resolver o problema, bem como de centros de investigação mais pequenos e comunidades de código aberto. A solução ideal seria permitir que os usuários executassem esses modelos poderosos diretamente em seus dispositivos, evitando a necessidade de conectividade constante na nuvem. Fazer isso poderia reduzir custos, aumentar a privacidade e diminuir o impacto ambiental associado à IA. Mas é mais fácil falar do que fazer.
A maioria dos dispositivos pessoais, especialmente smartphones, não possui capacidade computacional para executar LLMs em grande escala. Por exemplo, um iPhone com 6 GB de RAM ou um dispositivo Android com até 12 GB de RAM não é páreo para os recursos dos servidores em nuvem. Mesmo o menor LLM do Meta, LLaMA-3.1 8B, requer pelo menos 16 GB de RAM – e, realisticamente, é necessário mais para um desempenho decente sem sobrecarregar o telefone. Apesar dos avanços nos processadores móveis, a lacuna de energia ainda é significativa.
É por isso que a indústria está focada na otimização desses modelos – tornando-os menores, mais rápidos e mais eficientes sem sacrificar muito o desempenho.
Este artigo explora os principais artigos de pesquisa recentes e métodos destinados a atingir esse objetivo, destacando a situação atual do campo:
- Metas MobileLLM: Otimizando modelos de linguagem de parâmetros de subbilhões para casos de uso no dispositivo
- da Huawei Método de decomposição Kronecker para compactação GPT
- “TQCompressor: Melhorando métodos de decomposição de tensores em redes neurais por meio de permutações”, um recente projeto de código aberto e artigo de pesquisa que melhorou o método de decomposição de Kronecker, permitindo que modelos GPT fossem compactados em 1,5x sem aumentar significativamente os requisitos de tempo, um estudo no qual estive envolvido como coautor.
A abordagem da Meta para projetar LLMs para casos de uso no dispositivo
Neste verão, os pesquisadores da Meta AI introduziram uma nova maneira de criar modelos de linguagem eficientes especificamente para smartphones e outros dispositivos com recursos limitados e lançaram um modelo chamado MobileLLM, construído usando esta abordagem.
Em vez de confiar em modelos com bilhões ou até trilhões de parâmetros – como o GPT-4 – a equipe da Meta se concentrou na otimização de modelos com menos de 1 bilhão de parâmetros.
Os autores descobriram que dimensionar o modelo “em profundidade” funciona melhor do que “em largura” para modelos menores com até ou cerca de 1 bilhão de parâmetros, tornando-os mais adequados para smartphones. Em outras palavras, é mais eficaz ter um número maior de camadas menores do que algumas grandes. Por exemplo, seu modelo de 125 milhões de parâmetros, MobileLLM, tem 30 camadas, enquanto modelos como GPT-2, BERT e a maioria dos modelos com 100-200 milhões de parâmetros normalmente têm cerca de 12 camadas. Modelos com o mesmo número de parâmetros, mas com uma contagem de camadas mais alta (em oposição a parâmetros maiores por camada) demonstraram melhor precisão em diversas tarefas de benchmarking, como Winogrande e Hellaswag.
Os gráficos da pesquisa da Meta mostram que, em tamanhos de modelo comparáveis, os modelos mais profundos e mais finos geralmente superam seus equivalentes mais amplos e mais superficiais em várias tarefas, como raciocínio de senso comum, resposta a perguntas e compreensão de leitura.
Crédito da imagem: MobileLLM: Otimizando modelos de linguagem de parâmetros de subbilhões para casos de uso no dispositivo
O compartilhamento de camadas é outra técnica utilizada na pesquisa para reduzir parâmetros e melhorar a eficiência. Em vez de duplicar camadas na rede neural, os pesos de uma única camada são reutilizados várias vezes. Por exemplo, depois de calcular a saída de uma camada, ela pode ser realimentada na entrada dessa mesma camada. Essa abordagem reduz efetivamente o número de parâmetros, pois o método tradicional exigiria a duplicação da camada várias vezes. Ao reutilizar camadas, obtiveram ganhos significativos de eficiência sem comprometer o desempenho.
Conforme mostrado na tabela da pesquisa, outros modelos com parâmetros de 125M normalmente têm de 10 a 12 camadas, enquanto o MobileLLM tem 30. O MobileLLM supera os outros na maioria dos benchmarks (com o líder do benchmark destacado em negrito).
Crédito da imagem: MobileLLM: Otimizando modelos de linguagem de parâmetros de subbilhões para casos de uso no dispositivo
Em seu artigo, Meta apresentou o modelo MobileLLM em duas versões – 125 milhões e 350 milhões de parâmetros. Eles disponibilizaram publicamente o código de treinamento do MobileLLM em GitHub. Mais tarde, a Meta também publicou 600 milhões, 1 bilhão e 1,5 bilhão de versões do modelo.
Esses modelos mostraram melhorias impressionantes em tarefas como raciocínio de senso comum, resposta a perguntas e compreensão de leitura, superando os métodos de última geração anteriores. Além disso, versões aprimoradas do MobileLLM demonstraram sua eficácia em aplicativos comuns em dispositivos, como bate-papo e chamadas de API, tornando-os particularmente adequados para as demandas de ambientes móveis.
A mensagem da Meta é clara: Se quisermos que os modelos funcionem em dispositivos móveis, eles precisam ser criados de forma diferente.
Mas nem sempre é esse o caso. Veja os modelos mais populares no mundo da IA, como LLaMA3Qwen2 ou Gemma-2 — eles não têm apenas muito mais parâmetros; eles também têm menos camadas, mas muito maiores, o que torna praticamente muito difícil executar esses modelos em dispositivos móveis.
Compactando LLMs existentes
A pesquisa recente da Meta deixa de comprimir as redes neurais existentes e apresenta uma nova abordagem para projetar modelos especificamente para smartphones. No entanto, milhões de engenheiros em todo o mundo que não estão construindo modelos do zero — e, convenhamos, são a maioria deles — ainda precisam trabalhar com esses modelos amplos e com muitos parâmetros. A compactação não é apenas uma opção; é uma necessidade para eles.
O problema é o seguinte: embora as descobertas do Meta sejam inovadoras, a realidade é que os modelos de código aberto não estão necessariamente sendo construídos com esses princípios em mente. A maioria dos modelos de última geração, incluindo o LLaMA da própria Meta, ainda são projetados para grandes servidores com GPUs poderosas. Esses modelos geralmente têm menos camadas, mas muito mais amplas. Por exemplo, o LLaMA3 8B possui quase 65 vezes mais parâmetros que o MobileLLM-125M, embora ambos os modelos tenham cerca de 30 camadas.
Então, qual é a alternativa? Você poderia continuar criando novos modelos do zero, adaptando-os para uso móvel. Ou você pode compactar os existentes.
Ao tornar esses modelos grandes e amplos mais eficientes para dispositivos móveis, os engenheiros geralmente recorrem a um conjunto de técnicas de compactação testadas e comprovadas. Esses métodos são quantização, poda, decomposição de matriz e destilação de conhecimento.
Quantização
Um dos métodos mais comumente usados para compactação de redes neurais é a quantização, que é conhecida por ser direta e preservar o desempenho de maneira eficaz.
Crédito da imagem: Jan Marcel Kezmann sobre Médio
O conceito básico é que uma rede neural consiste em números armazenados em matrizes. Esses números podem ser armazenados em diferentes formatos, como números de ponto flutuante ou inteiros. Você pode reduzir drasticamente o tamanho do modelo convertendo esses números de um formato mais complexo, como float32, para um mais simples, como int8. Por exemplo, um modelo que inicialmente ocupava 100 MB poderia ser compactado para apenas 25 MB usando quantização.
Poda
Conforme mencionado, uma rede neural consiste em um conjunto de matrizes preenchidas com números. A poda é o processo de remoção de números “sem importância”, conhecidos como “pesos”, dessas matrizes.
Ao remover esses pesos sem importância, o comportamento do modelo é minimamente afetado, mas os requisitos de memória e computacionais são reduzidos significativamente.
Decomposição matricial
A decomposição de matrizes é outra técnica eficaz para compactar redes neurais. A ideia é quebrar (ou “decompor”) grandes matrizes da rede em matrizes menores e mais simples. Em vez de armazenar uma matriz inteira, ela pode ser decomposta em duas ou várias matrizes menores. Quando multiplicadas, essas matrizes menores produzem um resultado igual ou muito próximo do original. Isso nos permite substituir uma matriz grande por outras menores sem alterar o comportamento do modelo. No entanto, este método não é perfeito — às vezes, as matrizes decompostas não conseguem replicar perfeitamente o original, resultando em um pequeno erro de aproximação. Ainda assim, a compensação em termos de eficiência muitas vezes vale a pena.
Destilação de conhecimento
A destilação do conhecimento, introduzida por Hinton et al. em 2015, é um método simples, mas eficaz, para criar um modelo menor e mais eficiente (o “modelo do aluno”), transferindo conhecimento de um modelo maior e pré-treinado (o “modelo do professor”).
Usando a destilação de conhecimento, um modelo de linguagem menor projetado arbitrariamente pode ser treinado para imitar o comportamento de um modelo maior. O processo funciona alimentando ambos os modelos com os mesmos dados, e o menor aprende a produzir resultados semelhantes aos do modelo maior. Essencialmente, o modelo do aluno é destilado com o conhecimento do modelo do professor, permitindo que ele tenha um desempenho semelhante, mas com muito menos parâmetros.
Um exemplo notável é o DistilBERT (Sanh et al. 2019), que reduziu com sucesso os parâmetros do BERT em 40%, mantendo 97% de seu desempenho e funcionando 71% mais rápido.
A destilação pode ser facilmente combinada com quantização, poda e decomposição matricial, onde o modelo do professor é a versão original e o aluno é a versão compactada. Essas combinações ajudam a refinar a precisão do modelo compactado. Por exemplo, você poderia compactar o GPT-2 usando decomposição de matriz e, em seguida, aplicar a destilação de conhecimento para treinar o modelo compactado para imitar o GPT-2 original.
Como compactar modelos existentes para casos de uso de IA no dispositivo
Há alguns anos, a Huawei também se concentrou em habilitar modelos de IA no dispositivo e publicou pesquisas sobre a compactação do GPT-2. Os pesquisadores usaram um método de decomposição de matriz para reduzir o tamanho do popular modelo GPT-2 de código aberto para um uso mais eficiente no dispositivo.
Especificamente, eles usaram uma técnica chamada decomposição de Kronecker, que é a base para seu artigo intitulado “Kronecker Decomposition for GPT Compression”. Como resultado, os parâmetros do GPT-2 foram reduzidos de 125 milhões para 81 milhões.
Para recuperar o desempenho do modelo após a compressão, os autores empregaram a destilação do conhecimento. A versão compactada – apelidada de KnGPT-2 – aprendeu a imitar o comportamento do GPT-2 original. Eles treinaram este modelo destilado usando apenas 10% do conjunto de dados original usado para treinar o GPT-2. No final, o tamanho do modelo diminuiu 35%, com uma perda relativamente pequena de desempenho.
Este ano, meus colegas e eu publicamos uma pesquisa sobre métodos de decomposição de matrizes, onde comprimimos com sucesso o modelo GPT-2 (com 125 milhões de parâmetros) para 81 milhões de parâmetros. Chamamos o modelo resultante de TQCompressedGPT-2. Este estudo melhorou ainda mais o método de decomposição de Kronecker e, com esse avanço, conseguimos utilizar apenas 3,1% do conjunto de dados original durante a fase de destilação do conhecimento. Isso significa que reduzimos o tempo de treinamento em cerca de 33 vezes em comparação ao uso do conjunto de dados completo e que os desenvolvedores que desejam implantar modelos como o LLaMA3 em smartphones precisarão de 33 vezes menos tempo para obter uma versão compactada do LLaMA3 usando nosso método.
A novidade do nosso trabalho reside em algumas áreas principais:
- Antes de aplicar a compressão, introduzimos um novo método: permutação de matrizes de pesos. Ao reorganizar as linhas e colunas das matrizes de camadas antes da decomposição, alcançamos maior precisão no modelo compactado.
- Aplicamos compactação iterativamente, reduzindo as camadas do modelo uma por uma.
Tornamos nosso modelo e código de algoritmo de código aberto, permitindo pesquisas e desenvolvimento adicionais.
Ambos os estudos nos aproximam do conceito que Meta introduziu com sua abordagem aos Mobile LLMs. Eles demonstram métodos para transformar modelos amplos existentes em versões mais compactas e profundas usando técnicas de decomposição de matriz e restaurando o desempenho do modelo compactado com destilação de conhecimento.
Modelos de primeira linha como LLaMA, Mistral e Qwen, que são significativamente maiores que 1 bilhão de parâmetros, são projetados para servidores em nuvem poderosos, não para smartphones. A pesquisa conduzida pela Huawei e pela nossa equipe oferece técnicas valiosas para adaptar esses grandes modelos para uso móvel, alinhando-se com a visão da Meta para o futuro da IA no dispositivo.
A compressão de modelos de IA é mais do que um desafio técnico: é um passo crucial para tornar a tecnologia avançada acessível a milhares de milhões de pessoas. À medida que os modelos se tornam mais complexos, a capacidade de executá-los de forma eficiente em dispositivos do dia a dia, como smartphones, torna-se essencial. Não se trata apenas de poupar recursos; trata-se de incorporar a IA em nossas vidas diárias de forma sustentável.
O progresso da indústria na abordagem deste desafio é significativo. Os avanços da Huawei e da TQ na compressão de modelos de IA estão empurrando a IA em direção a um futuro onde ela poderá funcionar perfeitamente em dispositivos menores, sem sacrificar o desempenho. Estes são passos críticos para a adaptação sustentável da IA às restrições do mundo real e para torná-la mais acessível a todos, estabelecendo uma base sólida para futuras pesquisas nesta área vital do impacto da IA na humanidade.