notícias

70 vezes a compressão máxima!Não importa quantos pontos de verificação você tenha em um modelo grande, você não terá medo.

2024-08-05

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

A coluna AIxiv é uma coluna onde a Machine Heart publica conteúdo acadêmico e técnico. Nos últimos anos, a coluna Heart of the Machine AIxiv recebeu mais de 2.000 relatórios, abrangendo os principais laboratórios das principais universidades e empresas de todo o mundo, promovendo efetivamente o intercâmbio e a divulgação acadêmica. Se você tem um trabalho excelente que deseja compartilhar, sinta-se à vontade para contribuir ou entre em contato conosco para reportar. E-mail de envio: [email protected]; [email protected];

Os autores deste artigo são todos do Laboratório Noah da Huawei. O primeiro autor é Li Wenshuo, e os autores correspondentes são Wang Yunhe e Chen Xinghao. Nos últimos anos, equipes relevantes publicaram uma série de trabalhos representativos em conferências importantes, como ICML, CVPR, NeurIPS, ICCV e ECCV. Eles produziram resultados valiosos em áreas como modelos eficientes de linguagem grande e modelos visuais, e cooperaram com eles. universidades e instituições de pesquisa científica bem conhecidas. A cooperação institucional é extensa.

Como o merecido "rei do tráfego" na atual indústria e academia de IA, grandes modelos atraíram um grande número de acadêmicos e empresas para investir recursos em pesquisa e treinamento. À medida que a escala cresce, as questões de sistema e de engenharia tornaram-se problemas inevitáveis ​​no treinamento de grandes modelos. Por exemplo, durante o treinamento de 54 dias do Llama3.1, o sistema travou 466 vezes, em média uma vez a cada 2,78 horas!



Então, são necessários pontos de verificação de armazenamento frequentes. Mas armazenar pontos de verificação também é um grande projeto por si só.



A Meta fez muitos esforços para acelerar os tempos de verificação de armazenamento e aumentar a frequência de armazenamento para combater falhas frequentes do sistema. Mas o armazenamento frequente também significa uma grande sobrecarga de recursos de armazenamento. Seu cluster de treinamento está equipado com um SSD de 240 PB para enfrentar esse desafio. Só o custo do armazenamento é de 100 milhões de yuans!

O método ExCP da Huawei Noah surgiu para lidar com a enorme sobrecarga causada pelo armazenamento, eles propuseram uma tecnologia de ponto de verificação de compressão extrema, que pode compactar o modelo 70 vezes sem perdas, reduzindo significativamente a sobrecarga de armazenamento durante o treinamento.





O código agora é de código aberto e lançado na estrutura Apache 2.0. Alguns parceiros na edição reproduziram os resultados com sucesso.



  • Endereço do artigo: https://arxiv.org/abs/2406.11257
  • Endereço do armazém: https://github.com/Gaffey/ExCP

O método também é muito inovador. Dois conceitos importantes são mencionados no artigo. Um é usar as informações residuais dos pontos de verificação no treinamento para obter uma maior proporção de poda através da dispersão de informações nas séries temporais; e os pesos são combinados para compressão para atingir uma alta taxa de compressão geral.



método específico

1. Resíduos do ponto de verificação

Durante o processo de treinamento, os parâmetros atuais podem ser considerados como o peso armazenado no ponto de verificação anterior mais a soma das atualizações do gradiente em iterações sucessivas. Esta parte é relativamente esparsa e contém menos informações, portanto esse resíduo é compactado, uma melhor compactação. proporção pode ser obtida. Pelo contrário, o momento armazenado no otimizador é a média móvel do primeiro e segundo momentos do gradiente. Para o primeiro momento, o parâmetro padrão da média móvel é 0,9, que varia de centenas a milhares. não há muita correlação com o conteúdo armazenado no último ponto de verificação, portanto o otimizador compacta diretamente seu próprio valor em vez do residual.O ponto de verificação final a ser compactado é expresso como



2. Compressão da junta de impulso do otimizador de peso

O trabalho existente relacionado à compactação do modelo geralmente se concentra apenas no desempenho de inferência do modelo ou no tamanho do ponto de verificação de armazenamento final do modelo, mas não presta atenção à sobrecarga de espaço de armazenamento do modelo durante todo o processo de treinamento. Portanto, o trabalho existente apenas comprime os pesos, ignorando que otimizadores comuns como Adam, na verdade, armazenam um momento que é o dobro do número de pesos. Por um lado, este trabalho comprime os dois juntos, melhorando significativamente a taxa de compressão geral, por outro lado, também utiliza a correlação entre os pesos e o impulso do otimizador para melhorar ainda mais a taxa de compressão um do outro;

Poda de peso: Como o peso da poda é o valor residual, o momento de segunda ordem do momento do otimizador pode representar aproximadamente a amplitude de mudança do valor residual do peso no período passado, portanto, o momento de segunda ordem do momento do otimizador pode ser usado como um indicador Determine a proporção de poda de diferentes camadas.A estratégia de poda é mostrada na seguinte fórmula



Na fórmula, W e representam o peso e o segundo momento respectivamente.



Poda de momento do otimizador: Para poda de momento, você pode usar o momento de primeira ordem como um indicador para realizar a poda. Há uma breve prova de convergência no artigo.Ao mesmo tempo, se o peso de uma posição foi podado, o momento do otimizador da posição correspondente também deve ser processado simultaneamente, de modo que a estratégia de poda é mostrada na seguinte fórmula



Na fórmula, representa o momento de primeira ordem.

3. Processo geral de compressão

O processo geral de compressão é mostrado no Algoritmo 1. As etapas de cálculo do peso residual/compressão conjunta/quantização não uniforme/compressão de codificação são realizadas em sequência para obter o resultado final da compressão.



O processo de recuperação do arquivo completo do ponto de verificação é mostrado no Algoritmo 2. Após a descompactação, o resultado do ponto flutuante é primeiro recuperado do livro de códigos e do subscrito armazenado após a quantização não uniforme e, em seguida, comparado com o peso da linha de base (a verificação anterior O peso original do ponto ou o peso de reconstrução recuperado) são somados para obter o arquivo completo do ponto de verificação. O processo de restauração dos arquivos de ponto de verificação em todo o processo de treinamento é mostrado no Algoritmo 3. Após a conclusão do treinamento, apenas as sementes aleatórias dos pesos de inicialização e os resultados de compactação armazenados em cada ponto de verificação são salvos e, em seguida, os pontos de verificação são restaurados em sequência para obter o completo Uma sequência de pontos de verificação a partir dos quais um ou mais pontos de verificação podem ser selecionados para retomar o treinamento/teste, etc.

Resultados experimentais

O artigo não avalia apenas modelos de linguagem grandes, mas este método também pode alcançar bons resultados em modelos visuais maiores, como o ViT-L32.



Também pode ser observado no experimento de ablação que o uso do método de poda residual reduz bastante as perdas causadas pela poda.



O artigo também fornece exemplos de perguntas e respostas para modelos de linguagem grandes antes e depois da compactação. Pode-se observar que a compactação em si não causa danos à capacidade de perguntas e respostas do modelo.