Melhorando a eficiência no treinamento de modelos de linguagem
Novo método de empacotamento melhora a velocidade de treinamento e o uso de recursos em modelos de linguagem.
― 5 min ler
Índice
- O problema do preenchimento
- Alternativas eficientes
- O papel da máscara
- Agrupando exemplos
- Novos métodos de agrupamento
- Agrupamento online em mini-lote
- Agrupamento offline
- Seleção otimizada de amostras
- Testando o novo método
- Visão geral dos resultados
- Benefícios do agrupamento
- Entendendo as diferenças nos conjuntos de dados
- Comparações dos métodos
- Estudo do tamanho do mini-lote
- Métodos de seleção de amostras
- Conclusão
- Fonte original
Treinar grandes modelos de linguagem (LLMs) geralmente envolve lidar com diferentes comprimentos de dados de entrada. Muitas vezes, exemplos mais curtos precisam ser preenchidos com tokens extras pra ficarem do mesmo tamanho que o maior exemplo de um lote. Esse método ajuda no processamento, mas usa mais recursos e pode deixar o treinamento mais lento.
O problema do preenchimento
Preencher pode parecer uma boa solução pra manter as coisas uniformes, mas acaba desperdiçando recursos ao adicionar tokens desnecessários. Esses tokens extras não ajudam o modelo a aprender e podem diluir os sinais que realmente importam. Métodos tradicionais podem atrasar o processo de treinamento, resultando em ineficiências.
Alternativas eficientes
Uma maneira de melhorar a eficiência é organizar as sequências em um lote de forma mais inteligente. Esse método faz um preenchimento dinâmico das sequências, permitindo que sejam processadas de uma forma mais enxuta, sem tokens de preenchimento desnecessários. Assim, apenas as entradas relevantes contribuem para o aprendizado do modelo.
O papel da máscara
A máscara tem um papel crucial nesse processo melhorado. Ignorando as áreas preenchidas durante o treinamento, o modelo consegue focar nos dados reais. Isso mantém o processo de aprendizado intacto e reduz as complicações que surgem com entradas de comprimentos variados. Embora o preenchimento em nível de lote seja melhor que o tradicional, ainda dá pra tornar isso mais eficiente.
Agrupando exemplos
Combinar exemplos menores em um único exemplo maior, conhecido como agrupamento, é uma forma de aumentar a eficiência. Se feito da maneira certa, os modelos podem se beneficiar de um treinamento mais rápido, permitindo um aprendizado mais ágil a partir de conjuntos de dados maiores.
Novos métodos de agrupamento
O novo método usa IDs de posição pra definir onde um exemplo termina e outro começa. Essa melhoria permite uma melhor organização dos dados durante o processamento. Existem diferentes estratégias pra como agrupar esses exemplos, seja em tempo real durante Mini-lotes ou como um conjunto completo offline.
Agrupamento online em mini-lote
Nesse método, os exemplos são agrupados durante cada mini-lote, criando um tensor pra processamento. IDs de posição são gerados pra identificar onde cada exemplo começa e termina.
Agrupamento offline
Essa alternativa agrupa um conjunto completo de exemplos antecipadamente, formando um tensor único. Isso pode deixar o processo de treinamento mais tranquilo, sem etapas adicionais.
Seleção otimizada de amostras
Usar métodos de seleção de amostras facilita na hora de decidir quais exemplos agrupar. Esses métodos podem melhorar ainda mais a eficiência do agrupamento, juntando amostras de forma inteligente.
Testando o novo método
O novo método de agrupamento foi testado em três conjuntos de dados diferentes, cada um com características únicas. Os resultados mostraram melhorias na rapidez do processamento e redução do uso de recursos durante o treinamento.
Visão geral dos resultados
Quatro abordagens principais foram testadas. As duas primeiras eram tradicionais: sem agrupamento com preenchimento e agrupamento básico sem IDs especiais. As outras duas eram as novas soluções com IDs de posição, avaliadas de formas diferentes-agrupamento offline e online.
Os métodos tradicionais mostraram desempenho mais lento, mas mantiveram os melhores resultados de aprendizado. Os novos métodos melhoraram a velocidade significativamente, mas com um pequeno comprometimento na eficácia do treinamento.
Benefícios do agrupamento
O novo método com IDs de posição mostrou melhorias consideráveis na velocidade de processamento, permitindo mais trabalho em menos tempo. No entanto, descobriram que agrupar demais poderia atrapalhar o aprendizado, levando a uma melhora mais lenta na perda de treinamento.
Pra encontrar um equilíbrio, o método de mini-lote online foi sugerido, pois mantém um bom padrão de aprendizado enquanto acelera o processamento.
Entendendo as diferenças nos conjuntos de dados
As variações nos resultados entre os diferentes conjuntos de dados foram devido às suas características únicas, como o comprimento médio dos exemplos. Comprimentos menores permitiram ganhos mais significativos com o agrupamento, enquanto conjuntos de dados com exemplos mais longos mostraram menos melhora.
Comparações dos métodos
As descobertas comparando diferentes métodos mostraram que o agrupamento funcionou melhor que o preenchimento tradicional. Permitiu um processamento mais rápido. Os dois novos métodos usando IDs de posição superaram as abordagens tradicionais em termos de velocidade, mas nem sempre trouxeram os mesmos benefícios de aprendizado.
Estudo do tamanho do mini-lote
Outro aspecto avaliado foi o efeito do tamanho do mini-lote no desempenho. Os resultados mostraram que agrupar exemplos em mini-lotes levou a um ganho maior na velocidade de processamento. O uso de memória também foi menor, permitindo tamanhos de lote maiores e um desempenho geral melhor.
Métodos de seleção de amostras
Diferentes modelos foram testados com vários métodos de seleção de amostras. Os resultados indicaram que os métodos tradicionais de preenchimento eram os mais lentos, enquanto os métodos de agrupamento offline ofereceram o melhor desempenho. Por outro lado, o agrupamento em mini-lote ainda proporcionou aumentos notáveis na velocidade.
Conclusão
Uma solução leve e prática para agrupar exemplos foi introduzida, integrando IDs de posição com a biblioteca Hugging Face Transformers. As melhorias na velocidade de processamento e eficiência fazem dela uma adição valiosa ao treinamento de grandes modelos de linguagem.
Título: Enhancing Training Efficiency Using Packing with Flash Attention
Resumo: Padding is often used in tuning LLM models by adding special tokens to shorter training examples to match the length of the longest sequence in each batch. While this ensures uniformity for batch processing, it introduces inefficiencies by including irrelevant padding tokens in the computation and wastes GPU resources. Hugging Face SFT trainer has always offered the option to use packing to combine multiple training examples, allowing for maximal utilization of GPU resources. However, up till now, it did not offer proper masking of each packed training example. This capability has been added to Hugging Face Transformers 4.44. We analyse this new feature and show the benefits across different variations of packing.
Autores: Achintya Kundu, Rhui Dih Lee, Laura Wynter, Raghu Kiran Ganti, Mayank Mishra
Última atualização: 2024-08-31 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.09105
Fonte PDF: https://arxiv.org/pdf/2407.09105
Licença: https://creativecommons.org/licenses/by-sa/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.