Grandes modelos de linguagem (ou LLMs) tornaram-se um tópico de conversas diárias. Sua rápida adoção é evidente pela quantidade de tempo necessária para atingir 100 milhões de usuários, que passou de “4.5 anos pelo Facebook” para um mínimo histórico de apenas “2 meses pelo ChatGPT”. Um transformador generativo pré-treinado (GPT) usa atualizações autorregressivas causais para fazer previsões. Uma variedade de tarefas, como reconhecimento de fala, geração de texto e resposta a perguntas, demonstraram ter um desempenho estupendo por essas arquiteturas de modelo. Vários modelos recentes, como Neox, falcão, lhama use a arquitetura GPT como backbone. O treinamento de LLMs requer uma quantidade colossal de tempo de computação, que custa milhões de dólares. Neste post, resumiremos o procedimento de treinamento do GPT Neox on Treinamento AWS, um acelerador de aprendizado de máquina (ML) desenvolvido especificamente para treinamento de aprendizado profundo. Descreveremos como treinamos esses modelos de maneira econômica (3.2 milhões de tokens/$) com o AWS Trainium, sem perder a qualidade do modelo.
Visão geral da solução
Modelos GPT NeoX e Pythia
GPT NeoX e Pythia são os modelos de linguagem causal de código aberto da Eleuther-AI com aproximadamente 20 bilhões de parâmetros em NeoX e 6.9 bilhões em Pythia. Ambos são modelos de decodificadores que seguem um projeto arquitetônico semelhante ao Chat GPT3. Porém, eles também possuem diversas adições, que também são amplamente adotadas nos modelos recentes como o Llama. Particularmente, eles possuem incorporação posicional rotacional (ROPE) com rotação parcial nas dimensões da cabeça. Os modelos originais (NeoX e Pythia 6.9B) são treinados em modelos disponíveis abertamente Empilhar conjunto de dados com desduplicação e usando back-end Megatron e Deepspeed.
Demonstramos o pré-treinamento e o ajuste fino desses modelos em instâncias Trn1 baseadas no AWS Trainium usando Neurônio NeMo biblioteca. Para estabelecer a prova de conceito e a reprodução rápida, usaremos um subconjunto menor do conjunto de dados da Wikipedia tokenizado usando o tokenizer GPT2 de codificação de pares de bytes (BPE).
Passo a passo
Baixe o conjunto de dados da Wikipedia pré-tokenizado conforme mostrado:
Tanto o NeoX 20B quanto o Pythia 6.9B utilizam ROPE com rotação parcial, por exemplo, girando 25% das dimensões da cabeça e mantendo o restante sem girar. Para implementar com eficiência a rotação parcial no acelerador AWS Trainium, em vez de concatenar as dimensões rotativas e não rotativas, acrescentamos frequências zero para dimensões não rotativas e, em seguida, giramos o conjunto completo de dimensões do cabeçote. Esse truque simples nos ajudou a melhorar o rendimento (sequências processadas por segundo) no AWS Trainium.
Etapas de treinamento
Para executar o treinamento, usamos Amazon Elastic Compute Cloud de vários nós gerenciados por SLURM (Amazon EC2) Cluster Trn1, com cada nó contendo uma instância trn1.32xl. Cada trn1.32xl possui 16 aceleradores com dois trabalhadores por acelerador. Depois de baixar o mais recente Neurônio NeMo pacote, use o fornecido neox e pitia scripts de pré-treinamento e ajuste fino com hiperparâmetros otimizados e execute o seguinte para um treinamento de quatro nós.
- Compilar: Pré-compile o modelo com três iterações de treinamento para gerar e salvar os gráficos:
- Executar: Execute o treinamento carregando os gráficos em cache das primeiras etapas
- Monitore os resultados
As mesmas etapas precisam ser seguidas para executar o modelo Pythia 6.9B com substituição neox_20B_slurm.sh
by pythia_6.9B_slurm.sh
.
Experimentos de pré-treinamento e ajuste fino
Demonstramos o pré-treinamento dos modelos GPT-NeoX e Pythia no AWS Trainium usando Neurônio NeMo biblioteca para iterações de 10k e também mostra o ajuste fino desses modelos para etapas de 1k. Para pré-treinamento, usamos o tokenizer GPT2 BPE dentro do NeMo e seguimos o mesmo configuração como usado no modelo original. O ajuste fino no AWS Trainium requer alteração de alguns parâmetros (como fator de divisão do tamanho do vocabulário), que são fornecidos nos scripts de ajuste fino para acomodar diferenças entre Megatron e NeMo e alterações entre GPU e AWS Trainium. A taxa de transferência de treinamento distribuído de vários nós com número variável de nós é mostrada na Tabela 1.
Modelo | Tensor Paralelo | Pipeline Paralelo | Número de Instâncias | Custo ($/hora) | Comprimento de sequência | Tamanho global do lote | Taxa de transferência (seq/seg) | Relação custo-rendimento (tokens/$) |
Pítia 6.9B | 8 | 1 | 1 | 7.59 | 2048 | 256 | 10.4 | 10,102,387 |
8 | 1 | 4 | 30.36 | 2048 | 256 | 35.8 | 8,693,881 | |
NeoX 20B | 8 | 4 | 4 | 30.36 | 2048 | 16384 | 13.60 | 3,302,704 |
8 | 4 | 8 | 60.72 | 2048 | 16384 | 26.80 | 3,254,134 | |
8 | 4 | 16 | 121.44 | 2048 | 16384 | 54.30 | 3,296,632 | |
8 | 4 | 32 | 242.88 | 2048 | 16384 | 107.50 | 3,263,241 | |
8 | 4 | 64 | 485.76 | 2048 | 16384 | 212.00 | 3,217,708 |
Tabela 1. Comparação do rendimento médio dos modelos GPT NeoX e Pythia para treinamento de até 500 etapas com alteração do número de nós. O preço de trn1.32xl baseia-se na tarifa efetiva reservada por hora por 3 anos.
A seguir, também avaliamos a trajetória de perda do treinamento do modelo no AWS Trainium e a comparamos com a execução correspondente em um cluster P4d (núcleos de GPU Nvidia A100). Junto com a perda de treinamento, também comparamos indicadores úteis, como norma de gradiente, que é a norma 2 dos gradientes do modelo calculados em cada iteração de treinamento para monitorar o progresso do treinamento. Os resultados do treinamento são mostrados na Figura 1, 2 e o ajuste fino do NeoX 20B na Figura 3.
Figura 1. Perda de treinamento calculada em média para todos os trabalhadores (esquerda) e norma de gradiente (direita) no treinamento em cada etapa. NeoX 20B é treinado em 4 nós com pequeno conjunto de dados wiki em GPU e Trainium com os mesmos hiperparâmetros de treinamento (tamanho global do lote = 256). A GPU está usando BF16 e precisão mista padrão, enquanto o AWS Trainium está usando BF16 completo com arredondamento estocástico. As trajetórias de norma de perda e gradiente correspondem à GPU e ao AWS Trainium.
Figura 2. Perda de treinamento calculada em média para todos os trabalhadores (esquerda) e norma de gradiente (direita) no treinamento em cada etapa. Semelhante ao GPT NeoX na Figura 1, Pythia 6.9B é treinado em 4 nós com pequeno conjunto de dados wiki em GPU e Trainium com os mesmos hiperparâmetros de treinamento (tamanho global do lote = 256). As trajetórias de norma de perda e gradiente correspondem a GPU e Trainium.
Figura 3. Modelo GPT NeoX 20B de ajuste fino em GPU e AWS Trainium com média de perda de treinamento em todos os trabalhadores (esquerda) e norma de gradiente (direita). Um pequeno conjunto de dados wiki é usado para demonstração de ajuste fino. As trajetórias de norma de perda e gradiente correspondem à GPU e ao AWS Trainium.
Nesta postagem, mostramos o treinamento econômico de LLMs em hardware de aprendizado profundo da AWS. Treinamos os modelos GPT NeoX 20B e Pythia 6.9B no AWS Trn1 com a biblioteca Neuron NeMo. A taxa de transferência normalizada de custo para 20 bilhões de modelos com AWS Trainium é de aproximadamente 3.2 milhões de tokens/US$ gastos. Junto com o treinamento econômico no AWS Trainium, obtemos uma precisão de modelo semelhante, o que é evidente na perda de etapas de treinamento e na trajetória da norma de gradiente. Também ajustamos os pontos de verificação disponíveis para o modelo NeoX 20B no AWS Trainium. Para obter informações adicionais sobre o treinamento distribuído com NeMo Megatron no AWS Trainium, consulte Referência do AWS Neuron para NeMo Megatron. Um bom recurso para iniciar o ajuste fino do modelo Llama pode ser encontrado aqui, Ajuste fino do Llama2. Para começar a usar o AWS Trainium gerenciado em Amazon Sage Maker, Ver Treine seus modelos de ML com AWS Trainium e Amazon SageMaker.
Sobre os autores
Gaurav Gupta atualmente é Cientista Aplicado nos laboratórios de IA da Amazon Web Services (AWS). Dr. Gupta completou seu doutorado pela USC Viterbi. Seus interesses de pesquisa abrangem o domínio da modelagem sequencial de dados, aprendizado de equações diferenciais parciais, teoria da informação para aprendizado de máquina, modelos dinâmicos fracionários e redes complexas. Atualmente trabalha em problemas aplicados e matemáticos sobre comportamento de treinamento de LLMs, modelos de visão com PDEs, modelos multimodais de teoria da informação. Gupta tem publicações em revistas/conferências importantes, como Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical society.
Ben Snyder é um cientista aplicado do AWS Deep Learning. Seus interesses de pesquisa incluem modelos fundamentais, aprendizagem por reforço e otimização assíncrona. Fora do trabalho, ele gosta de andar de bicicleta e acampar no interior.
Amith (R) Mamidala é engenheiro sênior de aplicativos de aprendizado de máquina do AWS Annapurna Labs. Dr. Mamidala completou seu doutorado na Ohio State University em computação e comunicação de alto desempenho. Durante sua gestão na pesquisa da IBM, o Dr. Mamidala contribuiu para a classe de computadores BlueGene, que frequentemente liderava o ranking Top500 dos supercomputadores mais poderosos e eficientes em termos de energia. O projeto foi premiado com a Medalha Nacional de Tecnologia e Inovação 2009. Após uma breve passagem como engenheiro de IA em um fundo de hedge financeiro, o Dr. Mamidala ingressou nos laboratórios Annapurna com foco no treinamento de modelos de linguagem grande.
Jun (Lucas) Huan é cientista principal do AWS AI Labs. Dr. Huan trabalha com IA e ciência de dados. Ele publicou mais de 180 artigos revisados por pares nas principais conferências e periódicos. Ele recebeu o Prêmio NSF de Desenvolvimento de Carreira em Início de Carreira em 2009. Antes de ingressar na AWS, ele trabalhou na pesquisa do Baidu como um cientista ilustre e chefe do Laboratório de Big Data do Baidu. Ele fundou a StylingAI Inc., uma start-up de IA, e trabalhou como CEO e cientista-chefe em 2019-2021. Antes de ingressar na indústria, foi professor Charles E. e Mary Jane Spahr no Departamento de EECS da Universidade do Kansas.
Shruti Koparkar é gerente sênior de marketing de produtos da AWS. Ela ajuda os clientes a explorar, avaliar e adotar a infraestrutura de computação acelerada Amazon EC2 para suas necessidades de aprendizado de máquina.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/frugality-meets-accuracy-cost-efficient-training-of-gpt-neox-and-pythia-models-with-aws-trainium/
- :tem
- :é
- $UP
- 1
- 10
- 100
- 10K
- 120
- 16
- 160
- 180
- 20
- 500
- 7
- 9
- a
- acelerado
- acelerador
- aceleradores
- acomodar
- precisão
- ACM
- em
- Adicional
- Informação adicional
- Adicionais
- adotar
- adotado
- Adoção
- Depois de
- AI
- Todos os Produtos
- mais baixo de sempre
- juntamente
- tb
- Amazon
- Amazon EC2
- Amazon Web Services
- Amazon Web Services (AWS)
- quantidade
- an
- e
- qualquer
- Aplicação
- aplicado
- aproximadamente
- arquitetônico
- arquitetura
- SOMOS
- por aí
- AS
- At
- disponível
- prêmio
- premiado
- AWS
- Espinha dorsal
- Backend
- Baidu
- baseado
- BE
- tornam-se
- antes
- comportamento
- Grande
- Big Data
- bilhão
- BIN
- ambos
- by
- Oportunidades
- CD
- Chefe executivo
- alterar
- Alterações
- mudança
- Charles
- ChatGPT
- chefe
- classe
- Na nuvem
- Agrupar
- Comunicação
- comparar
- comparando
- completar
- Efetuado
- integrações
- Computar
- computadores
- computação
- conferências
- contribuiu
- ao controle
- conversas
- Correspondente
- Custo
- custos
- poderia
- Atualmente
- Clientes
- diariamente
- dados,
- ciência de dados
- profundo
- deep learning
- Padrão
- demonstrar
- demonstraram
- Departamento
- Design
- Desenvolvimento
- diferenças
- dimensões
- Distinto
- distribuído
- treinamento distribuído
- Divisão
- dólares
- domínio
- descarga
- dr
- Dr.
- durante
- e
- cada
- Cedo
- Eficaz
- eficientemente
- embutindo
- codificação
- engenheiro
- Engenharia
- equações
- estabelecer
- avaliar
- evidente
- exemplo
- executar
- explorar
- poucos
- financeiro
- Primeiro nome
- primeiros passos
- focando
- seguir
- seguido
- seguinte
- Escolha
- encontrado
- Fundacional
- Fundado
- quatro
- fracionário
- da
- cheio
- fundo
- gerar
- geração
- generativo
- ter
- Global
- ido
- Bom estado, com sinais de uso
- GPU
- gradientes
- gráficos
- Gupta
- Hardware
- Ter
- he
- cabeça
- cerca viva
- fundos de hedge
- ajudou
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- sua
- hora
- Como funciona o dobrador de carta de canal
- Contudo
- HTML
- HTTPS
- Abraçando o Rosto
- IBM
- IDX
- IEEE
- executar
- melhorar
- in
- Inc.
- incluir
- Indicador
- indústria
- INFORMAÇÕES
- Infraestrutura
- Inovação
- dentro
- instância
- em vez disso
- interesses
- IT
- iteração
- iterações
- jane
- ingressou
- juntando
- jpg
- json
- Kansas
- manutenção
- laboratório
- Laboratório
- língua
- grande
- mais recente
- principal
- aprendizagem
- levou
- esquerda
- Comprimento
- Biblioteca
- lhama
- carregamento
- perder
- fora
- Baixo
- máquina
- aprendizado de máquina
- fazer
- gerenciados
- Gerente
- Marketing
- Match
- matemático
- significar
- atende
- mers
- Meta
- milhão
- milhões
- ML
- modelo
- modelagem
- modelos
- Monitore
- mês
- mais
- a maioria
- Nacional
- Natureza
- Cria
- redes
- nó
- nós
- NSF
- número
- Nvidia
- obter
- of
- frequentemente
- Ohio
- on
- open source
- abertamente
- otimização
- otimizado
- or
- original
- esboço
- lado de fora
- pacote
- papéis
- parâmetros
- particularmente
- peer-reviewed
- para
- atuação
- phd
- platão
- Inteligência de Dados Platão
- PlatãoData
- Publique
- poderoso
- predição
- Diretor
- problemas
- procedimentos
- Processado
- Produto
- Professor
- Progresso
- projeto
- fornecido
- publicações
- publicado
- qualidade
- questão
- Links
- R
- Posição
- Taxa
- relação
- alcançar
- recentemente
- reconhecimento
- referência
- reprodução
- requeridos
- exige
- pesquisa
- reservado
- recurso
- DESCANSO
- Resultados
- certo
- arredondamento
- Execute
- corrida
- mesmo
- Salvar
- Ciência
- Cientista
- Scripts
- SEC
- Vejo
- senior
- Serviços
- conjunto
- vários
- ela
- mostrar
- mostrou
- mostrando
- semelhante
- simples
- Tamanho
- pequeno
- menor
- Sociedade
- palmo
- discurso
- Reconhecimento de Voz
- gasto
- começo
- Start-up
- começado
- Estado
- Passo
- Passos
- tal
- resumir
- tarefas
- Tecnologia
- texto
- do que
- A
- deles
- então
- teoria
- Este
- deles
- isto
- três
- Taxa de transferência
- tempo
- para
- tokenized
- topo
- tópico
- para
- Trem
- treinado
- Training
- trajetória
- transformador
- dois
- universidade
- Atualizações
- us
- usar
- usava
- usuários
- usos
- utilização
- variedade
- variando
- Contra
- visão
- foi
- we
- web
- serviços web
- qual
- enquanto
- largamente
- Wikipedia
- de
- sem
- Atividades:
- trabalhou
- trabalhadores
- trabalhar
- trabalho
- investimentos
- zefirnet
- zero