Simple Science

Ciência de ponta explicada de forma simples

# Informática# Aprendizagem de máquinas# Inteligência Artificial# Computação e linguagem

Nova técnica para treinar de forma eficiente grandes modelos de linguagem

Este artigo detalha uma técnica para usar mini-lotes menores no treinamento de LLM.

― 7 min ler


Treinamento EficienteTreinamento Eficientepara Modelos Grandesmemória no treinamento de modelos.Um novo método reduz a necessidade de
Índice

Treinar grandes modelos de linguagem (LLMs) pode ser bem puxado em termos de memória e poder de processamento. Esses modelos têm bilhões de parâmetros, o que significa que eles precisam de muitos recursos tanto para o treinamento quanto para o ajuste fino. Uma abordagem comum pra tornar o treinamento mais eficaz é usar mini-batches maiores. Mas, à medida que os tamanhos dos mini-batches aumentam, os requisitos de memória também crescem, o que pode ser um problema ao trabalhar com modelos grandes. Este artigo discute uma nova técnica que permite usar mini-batches menores, mas ainda captura os benefícios normalmente associados aos maiores.

O Desafio com Mini-batches Grandes

Quando estamos treinando modelos de aprendizado de máquina, mini-batches maiores ajudam a melhorar o desempenho e aceleram a convergência do treinamento. Treinamento com mini-batches grandes significa que o modelo pode considerar mais exemplos de uma vez, o que pode resultar em melhores estimativas do gradiente geral. Porém, treinar modelos grandes com mini-batches grandes normalmente exige muito mais memória de GPU. Por exemplo, ajustar um modelo menor com um tamanho de lote de 128 pode exigir cerca de 44 GB de memória de GPU. Essa limitação às vezes torna impossível usar tamanhos de lote maiores devido aos limites de memória.

Encontrando uma Solução

Dada a importância dos mini-batches grandes, surge a pergunta: tem como capturar as vantagens dos mini-batches maiores usando apenas os menores? A solução proposta envolve pegar mini-batches menores que conseguem imitar os efeitos dos maiores. Isso é feito selecionando grupos menores de exemplos que se assemelham aos padrões encontrados nos lotes maiores. Para isso, foi desenvolvido um método que formula a seleção de mini-batches menores como um problema de Otimização.

O Problema de Otimização

O objetivo desse método é selecionar pequenos mini-batches e garantir que esses lotes consigam simular a dinâmica de treinamento dos mini-batches maiores. Fazendo isso, conseguimos facilitar melhores resultados de treinamento sem precisar de mais memória. O primeiro passo envolve estruturar o problema de modo a maximizar certas características dos Gradientes dos mini-batches maiores. No entanto, isso traz desafios devido à complexidade e à natureza de alta dimensão dos gradientes dos grandes modelos de linguagem.

Estimativas de Gradiente de Baixa Dimensão

Para resolver a questão de lidar com gradientes de alta dimensão, o método proposto utiliza técnicas que reduzem a dimensionalidade dos gradientes. Isso envolve usar ideias de otimização para criar estimativas de gradientes em dimensões mais baixas. Focando em representações significativamente reduzidas, ainda conseguimos reunir informações suficientes para fazer seleções precisas.

O Uso de Estimativas de Gradiente

O método calcula estimativas de gradientes de forma eficiente em memória usando uma técnica chamada Aproximação Estocástica de Perturbação Simultânea (SPSA). Essa técnica permite calcular estimativas de gradientes que exigem memória mínima. Importante, o método calcula apenas os gradientes da última camada, o que reduz bastante a complexidade envolvida, facilitando os cálculos.

Esparsificando os Gradientes

Pra simplificar ainda mais os cálculos, o método foca em uma pequena quantidade das dimensões mais importantes dos gradientes da última camada. Isso se baseia na ideia de que certos parâmetros terão um impacto maior nos resultados do que outros. Mantendo apenas os parâmetros com os gradientes mais altos, o método pode minimizar efetivamente os requisitos de memória. Isso permite cálculos eficientes de similaridades entre os exemplos no mini-batch selecionado.

Implementando o Processo de Seleção

Uma vez que as estimativas de gradiente de baixa dimensão foram obtidas, o próximo passo é calcular as similaridades entre essas estimativas pra escolher o melhor mini-batch pequeno. A seleção é feita usando um algoritmo guloso. Esse algoritmo começa com um conjunto vazio e, a cada passo, adiciona o exemplo que traz o maior benefício para a seleção geral. Assim, o mini-batch selecionado consegue replicar bem o comportamento dos mini-batches maiores.

Avaliação de Desempenho

Pra avaliar a eficácia do método proposto, foram realizados experimentos usando conjuntos de dados e modelos específicos. Esses testes mediram como os mini-batches menores se saíram em comparação aos maiores. Os resultados mostraram que usar o novo método permitiu um aumento de 1,3 vezes na velocidade de treinamento e uma redução de 2x no uso de memória, mantendo altos níveis de desempenho.

Comparação com Técnicas Existentes

O método apresentado não é a primeira tentativa de resolver o problema de memória associado ao treinamento de grandes modelos. Outras abordagens, como LoRA e otimização sem gradiente, foram desenvolvidas. O LoRA se concentra em congelar certos parâmetros e treinar através de matrizes de baixo rank. Embora esses métodos ofereçam alguma eficiência em memória, eles muitas vezes resultam em uma queda de desempenho em comparação ao treinamento com todos os parâmetros do modelo. A nova abordagem visa preencher essa lacuna e melhorar métodos anteriores ao manter alto desempenho enquanto usa menos recursos.

Abordagens de Seleção de Dados

Além de otimizar a seleção de mini-batches, o novo método também considera a seleção de dados para o treinamento de LLMs. Selecionar dados de forma eficiente pode melhorar o desempenho do modelo enquanto reduz os custos computacionais. A estratégia de seleção proposta considera várias fontes de dados e garante que diferentes exemplos sejam incluídos no mini-batch, ajudando a equilibrar o processo geral de treinamento.

Configuração de Treinamento Eficiente em Memória

O novo método é projetado pra trabalhar com técnicas existentes que economizam memória sem precisar de mudanças significativas. Essa adaptabilidade significa que ele pode ser facilmente integrado a vários regimes de treinamento, tornando-o uma opção versátil para os profissionais. Ao abordar tanto a seleção de mini-batches quanto a otimização de dados, esse método representa uma abordagem abrangente para enfrentar os desafios encontrados no treinamento de grandes modelos.

Sucesso no Ajuste Fino de Grandes Modelos

Os experimentos envolveram o ajuste fino de um modelo de 2,7 bilhões de parâmetros conhecido como Phi-2. Esse modelo mostrou alto desempenho em várias tarefas e conjuntos de dados. A nova abordagem de treinamento eficiente em memória foi bem-sucedida no ajuste do Phi-2, levando a resultados de ponta em uma variedade de benchmarks padrão.

Direções Futuras

À medida que o aprendizado de máquina e os modelos de linguagem continuam a evoluir, vai ser crucial desenvolver novas técnicas pra atender à crescente demanda por memória e poder computacional. O método proposto oferece um caminho promissor pra lidar com esses desafios. Trabalhos futuros podem construir sobre essas descobertas pra explorar mais otimizações no treinamento de modelos e desenvolver métodos ainda mais eficazes pra minimizar o uso de memória enquanto melhora o desempenho.

Conclusão

O desenvolvimento de métodos de treinamento eficientes em memória pra grandes modelos de linguagem é um passo necessário pra tornar o aprendizado de máquina avançado mais acessível e prático. Ao selecionar efetivamente mini-batches menores que simulam a dinâmica dos maiores, o método aumenta a velocidade de treinamento e reduz os requisitos de memória enquanto mantém altos níveis de desempenho. Essa abordagem tem um grande potencial pra futuras aplicações em várias áreas e encoraja mais investigações em métodos de treinamento inovadores pra grandes modelos.

Fonte original

Título: Mini-batch Coresets for Memory-efficient Training of Large Language Models

Resumo: Training with larger mini-batches improves the convergence rate and can yield superior performance. However, training with large mini-batches becomes prohibitive for Large Language Models (LLMs), due to the large GPU memory requirement. To address this problem, an effective approach is finding small mini-batch coresets that closely match the gradient of larger mini-batches. However, this approach becomes infeasible and ineffective for LLMs, due to the highly imbalanced nature of the sources in language data, use of the Adam optimizer, and the very large gradient dimensionality of LLMs. In this work, we address the above challenges by proposing Coresets for Training LLMs (CoLM). First, we show that mini-batch coresets found by gradient matching do not contain representative examples of the small sources w.h.p., and thus including all examples of the small sources in the mini-batch coresets is crucial for optimal performance. Second, we normalize the gradients by their historical exponential to find mini-batch coresets for training with Adam. Finally, we leverage zeroth-order methods to find smooth gradient of the last V -projection matrix and sparsify it to keep the dimensions with the largest normalized gradient magnitude. We apply CoLM to fine-tuning Phi-2, Phi-3, and Zephyr with LoRA on MathInstruct and SuperGLUE benchmark. Remarkably, CoLM reduces the memory requirement of fine-tuning by 2x and even outperforms training with 4x larger mini-batches. Notably, CoLM easily stack with existing memory-efficient training methods, such as LoRA.

Autores: Dang Nguyen, Wenhan Yang, Rathul Anand, Yu Yang, Baharan Mirzasoleiman

Última atualização: 2024-10-10 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2407.19580

Fonte PDF: https://arxiv.org/pdf/2407.19580

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes