Inteligência artificial
GLM-130B: Um Modelo de Linguagem Pré-Treinado Bilingue Aberto

O framework GLM-130B é um modelo de linguagem pré-treinado bilingue com mais de 130 bilhões de parâmetros, capaz de gerar saídas de texto em inglês e chinês. O framework GLM-130B é uma tentativa de abrir um modelo de linguagem em uma escala de mais de 100B parâmetros e discutir como frameworks de tal escala podem ser pré-treinados, pois atualmente, treinar um modelo de tal escala é frequentemente acompanhado de problemas como divergência e picos de perda.
Neste artigo, vamos falar sobre o framework GLM-130B, que tenta criar um método para pré-treinar modelos de linguagem grandes com centenas de bilhões de parâmetros. Vamos mergulhar mais fundo no funcionamento e na arquitetura do framework GLM-130B, juntamente com o processo de treinamento e as escolhas de design que não apenas ajudam a aumentar a eficiência, mas também a estabilidade. Experimentos iniciais realizados para testar o funcionamento do framework GLM-130B em uma ampla variedade de benchmarks em inglês resultaram no modelo GLM-130B superando o atual estado da arte do framework GPT-3 por uma margem considerável. Então, vamos começar e explorar como o framework GLM-130B entrega resultados consistentes, precisos e estáveis.
Introdução ao Framework GLM-130B
Os modelos de linguagem grandes capazes de operar em configurações de poucos disparos e zero disparos, especialmente aqueles com mais de 100 bilhões de parâmetros, apresentam leis de escala atraentes, e o framework GPT-3 é um dos frameworks de melhor desempenho que entrega melhorias de desempenho consideráveis em relação ao seu predecessor, o framework BERT. No entanto, apesar da popularidade do framework GPT-3 e de suas aplicações amplamente disseminadas, o processo de treinamento e, de certa forma, o próprio framework GPT-3 tem sido não transparente para o público. Além disso, enumerar empiricamente todos os possíveis designs para treinar LLMs com mais de 100B parâmetros é computacionalmente inviável, o que torna ainda mais crítico criar um método de pré-treinamento para frameworks de LLM de grande escala.
O ponto acima torna compartilhar o funcionamento e o processo de treinamento de frameworks de LLM de grande escala, como o GPT-3, de valor crítico, e com as preocupações éticas em mente, o framework GLM-130B é uma tentativa de pré-treinar um LLM preciso e de código aberto com mais de 100B parâmetros. Durante o curso de sua tentativa, a equipe de desenvolvimento do GLM-130B observou que pré-treinar um framework de LLM de grande escala é frequentemente acompanhado de uma ampla variedade de desafios técnicos e de engenharia em termos de estabilidade de pré-treinamento, eficiência e convergência.
Para ser mais específico, o GLM-130B é um framework denso bidirecional e bilingue que consiste em mais de 130B parâmetros, pré-treinado em 400B tokens em um cluster de 96 nós de GPU NVIDIA DGX-A100 durante um período de quase dois meses. Além disso, em vez de optar pela arquitetura GPT-style, o framework GLM-130B usa o algoritmo GLM ou Modelo de Linguagem Geral, uma tentativa de aproveitar seus objetivos de preenchimento de lacunas autoregressivas e a vantagem de atenção bidirecional. A tabela a seguir compara o framework GLM-130B com outros modelos com mais de 100B parâmetros, incluindo GPT, BLOOM-176B e OPT-175B.

Os conceitos de engenharia e desenvolvimento envolvidos no framework GLM-130B superam quase todos os frameworks de LLM de grande escala, incluindo o GPT-3 e o PaLM 540B, com mais de 500B parâmetros, em muitos casos e em uma ampla variedade de benchmarks. A figura a seguir compara o desempenho do framework GLM-130B com modelos com mais de 100B+ parâmetros, e como pode ser visto, o framework GLM-130B tem significativamente menos toxicidade de geração e viés do que seus congêneres.

Finalmente, o GLM-130B foi projetado para permitir que tantos desenvolvedores quantos possível realizem estudos em frameworks com mais de 100B parâmetros, e há duas maneiras pelas quais o framework GLM-130B alcança isso. Primeiramente, em vez de usar mais de 175B parâmetros como o BLOOM e o OPT, o framework GLM-130B usa 130B parâmetros, pois o tamanho do modelo suporta interferência mesmo em um servidor A100 único. Em segundo lugar, os requisitos de GPU para executar o framework GLM-130B são menores em comparação com outros frameworks de LLM, e o framework GLM-130B alcança isso quantizando o framework original em precisão INT4. A quantização INT4 usada pelo framework GLM-130B melhora o desempenho enquanto mantém uma degradação de desempenho negligenciável.
GLM-130B: Arquitetura
O viés indutivo de um modelo de aprendizado de máquina é descrito por sua arquitetura, e não é surpreendente quando os desenvolvedores não podem explorar várias arquiteturas para modelos de linguagem grandes, dado o custo computacional e a viabilidade. Com isso dito, vamos dar uma olhada na arquitetura do GLM-130B.
Os frameworks de LLM de grande escala, como o PaLM, o GPT e mais, têm mais de 100B parâmetros e são construídos na arquitetura convencional de decodificador apenas do estilo GPT para modelagem de linguagem autoregressiva. Por outro lado, o framework GLM-130B explora a possibilidade de usar um modelo de linguagem geral bidirecional ou GLM, um modelo de linguagem baseado em transformador que visa aproveitar o preenchimento de lacunas autoregressivas como objetivo de treinamento, como sua base.
A atenção bidirecional do Modelo de Linguagem Geral sobre contextos não corrompidos ou não mascarados é o que separa o framework GLM-130B da abordagem do estilo GPT que usa uma abordagem unidirecional. Além disso, para suportar tanto a geração quanto a compreensão de dados, o framework GLM combina duas estratégias de corrupção, cada uma das quais é indicada por um token de máscara especial e único.
- [MASK] : [MASK] é uma estratégia de corrupção que usa lacunas curtas em frases, as quais somam até um certo percentual da entrada.
- [gMASK] : [gMASK] é uma estratégia de corrupção que usa lacunas de comprimento aleatório no final da frase com os contextos de prefixo.
A abordagem seguida pelo framework GLM é o que permite que o framework registre uma pontuação de precisão de mais de 80% em modelagem de linguagem LAMBADA zero-shot e supere tanto o PaLM 540B quanto o framework GPT-3.

Normalização de Camada
Um dos principais desafios enfrentados pelos desenvolvedores ao treinar um framework de LLM é a instabilidade de treinamento, e usar uma LN (Normalização de Camada) apropriada pode ajudar com o treinamento de LLMs. O framework GLM-130B usa uma abordagem Post-LN graças ao seu desempenho em tarefas downstream.
FFNs e Codificação Posicional
Redes Neurais Feedforward ou FFNs e codificação posicional são duas abordagens adotadas pelo framework GLM-130B para introduzir alto desempenho downstream e estabilidade de treinamento.
Configuração de Pré-Treinamento
Os objetivos de pré-treinamento do framework GLM-130B não incluem apenas o aprendizado de multi-tarefas para um pequeno número de tokens, mas também incluem o GLM auto-supervisionado para preenchimento autoregressivo de lacunas, com a expectativa de que essa abordagem ajudará o framework GLM-130B em tarefas downstream. Com isso dito, a configuração de pré-treinamento do framework GLM-130B parece a seguinte.
Preenchimento de Lacunas Auto-Supervisionado
Como já mencionado, o framework GLM-130B usa duas estratégias de corrupção, nomeadamente [MASK] e [gMASK], e uma dessas estratégias é aplicada independentemente a cada sequência de treinamento, uma de cada vez. Para preencher as lacunas, a estratégia [MASK] mascara spans consecutivos em 30% da sequência de treinamento, onde os comprimentos dos spans somam até 15% da entrada, e segue uma distribuição de Poisson. Para os 70% restantes da sequência, o prefixo de cada sequência é mantido como um contexto, e a estratégia [gMASK] ajuda a mascarar o resto, e o comprimento mascarado é então amostrado usando a distribuição uniforme.
Pré-Treinamento de Instruções Multi-Tarefa
Foi indicado que seguir uma abordagem de aprendizado de multi-tarefas para pré-treinar os modelos pode entregar melhores resultados do que o ajuste fino, para melhorar a transferência de tarefas em um ambiente de zero disparos. Subsequentemente, o framework GLM-130B propõe usar uma variedade de conjuntos de dados de instruções durante o pré-treinamento, incluindo geração de linguagem, compreensão e extração de informações.
Em comparação com outras abordagens para transferência de tarefas zero-shot que usam ajuste fino de multi-tarefas, a abordagem de Pré-Treinamento de Instruções Multi-Tarefa seguida pelo framework GLM-130B conta apenas por 5% dos tokens totais, e é definida durante a fase de pré-treinamento, em uma tentativa de evitar estragar outras habilidades do framework de LLM ou, em outras palavras, geração incondicional gratuita.
Estratégia de Paralelismo 3D
Existem duas práticas de fato para treinar modelos de grande escala com bilhões de parâmetros, o paralelismo de modelo de tensor e o paralelismo de dados. Em uma tentativa de minimizar a utilização de GPU e lidar com os requisitos de GPU imensos, o framework GLM-130B implementa uma estratégia de paralelismo 3D que combina o paralelismo de modelo de pipeline com o paralelismo de tensor e o paralelismo de dados.
GLM-130B: Estabilidade de Treinamento
A estabilidade de treinamento é um fator importante ao determinar a qualidade de um LLM, e a estabilidade de treinamento é influenciada fortemente dependendo do número de tokens que ele passa. Além disso, é vital estabelecer um equilíbrio entre estabilidade e eficiência com relação a formatos de ponto flutuante, dado as restrições de computação. Por exemplo, formatos de ponto flutuante de baixa precisão aumentam a eficiência de computação, mas frequentemente resultam em colapsos de treinamento, pois são propensos a erros de underflow e overflow.
Precisão Mista
Em uma tentativa de aumentar a precisão de treinamento e reduzir o uso de memória, o framework GLM-130B segue a prática comum de usar precisões mistas, ou seja, FP16 para ambos os forward e backward, e FP32 para ambos os pesos mestres e estados do otimizador. Assim como outros frameworks de LLM populares, incluindo BLOOM-176B e OPT-175B, a fase de treinamento do framework GLM-130B usando a estratégia de precisão mista enfrenta perdas de pico frequentes, e a frequência dessas perdas de pico tende a aumentar à medida que o modelo continua a ser treinado. Além disso, existem problemas importantes que os desenvolvedores enfrentam ao escalar os transformadores.

Primeiramente, a escala de valor da ramificação principal do transformador pode ser vasta nas camadas mais profundas ao usar Pre-LN, e no framework GLM-130B, é abordada usando um DeepNorm baseado em Pre-LN, que garante que a escala de valor permaneça limitada em todos os momentos. Em segundo lugar, à medida que o modelo é escalado, as pontuações de atenção crescem a um ponto em que excedem a faixa de FP16.
Redução de Gradiente de Camada de Incorporação ou EGS
Os desenvolvedores que trabalham no framework GLM-130B identificaram que a norma do gradiente pode agir como um indicador informativo para colapsos de treinamento, e um colapso de treinamento geralmente segue um pico na norma do gradiente. A causa desses picos é o gradiente anormal da camada de incorporação, e os desenvolvedores observaram que, em comparação com a norma do gradiente de outras camadas, a norma do gradiente da camada de incorporação é maior por várias ordens de magnitude e também tende a flutuar dramaticamente durante o início do treinamento do framework. Os modelos de visão também enfrentam esse problema, e é tratado congelando a camada de projeção de patch. No entanto, a mesma abordagem não pode ser aplicada a LLMs, pois, em modelos de linguagem, não é possível congelar as camadas de projeção.

GLM-130B: Resultados e Desempenho
Para avaliar o desempenho do GLM-130B para tarefas em inglês, ele implementa as mesmas configurações seguidas por frameworks de LLM comuns, incluindo PaLM e GPT-3, e como o GLM-130B é um framework bilingue, ele também é avaliado em vários benchmarks chineses. O desempenho do framework GLM-130B será medido em vários benchmarks, incluindo Modelagem de Linguagem, MMLU ou Entendimento de Linguagem Multitarefa Maciça, BIG-Bench ou Além do Benchmark do Jogo de Imitação, e CLUE ou Avaliação de Entendimento de Linguagem Chinesa. Então, vamos começar.
Modelagem de Linguagem
O teste de modelagem de linguagem no framework GLM-130B é realizado em dois conjuntos de dados: LAMBADA e Pile.
O conjunto de dados LAMBADA é usado para testar as capacidades de modelagem de última palavra dos LLMs, e o framework GLM-130B alcança uma pontuação de precisão zero-shot de 80,2 em um ambiente bilingue, e, a caminho, estabelece um novo recorde de benchmark no conjunto de dados LAMBADA.
Por outro lado, o Pile é um conjunto de testes que compreende uma série de benchmarks para modelos de linguagem. Em média, em comparação com o GPT-3 e o Jurassic-1, o framework GLM-130B entrega seu melhor desempenho em 18 conjuntos de testes compartilhados em termos de BPBs ponderados. Os resultados demonstram as fortes capacidades de linguagem do framework GLM-130B, e os resultados estão incluídos na tabela abaixo.

MMLU ou Entendimento de Linguagem Multitarefa Maciça
MMLU ou Entendimento de Linguagem Multitarefa Maciça é um benchmark diversificado que compreende mais de 50 tarefas de resposta a perguntas de múltipla escolha relacionadas à inteligência e conhecimento humanos, variando de nível de escola secundária a nível de especialista, e é lançado após a raspagem do conjunto de testes Pile, e, portanto, serve como um teste ideal para avaliar as capacidades de aprendizado de poucos disparos de um LLM.

Como pode ser visto, em configurações de poucos disparos (5 disparos), o desempenho do framework GLM-130B se aproxima do desempenho do modelo GPT-3 após visualizar cerca de 300B tokens. O desempenho continua a melhorar à medida que o treinamento prossegue, e quando o treinamento termina, o framework alcança uma pontuação de precisão de 44,8 após visualizar um total de 400B tokens.
BIG-Bench ou Além do Benchmark do Jogo de Imitação
BIG-Bench ou Além do Benchmark do Jogo de Imitação é um conjunto de tarefas desafiadoras que testa a capacidade de um modelo em conhecimento, raciocínio e senso comum. Como demonstrado nas figuras a seguir, em configurações zero-shot, o framework GLM-130B supera tanto o PaLM 540B quanto o framework GPT-3 175B, o que pode ser devido ao MIP e à atenção de contexto bidirecional para melhorar o desempenho do GLM-130B em tarefas não vistas em configurações zero-shot. Além disso, à medida que o número de disparos aumenta, o desempenho do framework GLM-130B também melhora, superando consistentemente o framework GPT-3.

CLUE ou Avaliação de Entendimento de Linguagem Chinesa
O desempenho zero-shot em chinês do framework GLM-130B é avaliado em tarefas de benchmark de NLP estabelecidas, incluindo CLUE e FewCLUE, e é comparado com o ERNIE Titan 3.0 de 260B, o maior modelo de linguagem chinesa existente. Como pode ser observado, o framework GLM-130B constantemente supera o framework ERNIE Titan 3.0 de 260B em 12 tarefas diferentes, e executa quase 260% melhor do que o framework ERNIE em dois conjuntos de dados de MRC abstratos.

Conclusão
Neste artigo, falamos sobre o GLM-130B, um modelo de linguagem pré-treinado bilingue que visa promover a pesquisa de LLM inclusiva. A arquitetura, engenharia e empreendimentos técnicos visam fornecer à comunidade de IA uma melhor compreensão da arquitetura dos frameworks de LLM, eficiência e estabilidade de treinamento, objetivos de pré-treinamento e interferência acessível.












