Modelos e plataformas de IA
OLMo: Aperfeiçoando a Ciência dos Modelos de Linguagem
O desenvolvimento e o progresso dos modelos de linguagem nos últimos anos marcaram sua presença quase em todos os lugares, não apenas na pesquisa de NLP, mas também em ofertas comerciais e aplicações do mundo real. No entanto, o aumento da demanda comercial por modelos de linguagem, em certa medida, impediu o crescimento da comunidade. Isso ocorre porque a maioria dos modelos de estado da arte e capazes está bloqueada por interfaces proprietárias, tornando impossível para a comunidade de desenvolvimento acessar detalhes vitais de sua arquitetura de treinamento, dados e processos de desenvolvimento. Agora é inegável que esses detalhes de treinamento e estruturais são cruciais para estudos de pesquisa, incluindo o acesso a seus riscos e vieses potenciais, criando assim uma necessidade para a comunidade de pesquisa ter acesso a um modelo de linguagem verdadeiramente aberto e poderoso.
Para atender a essa necessidade, os desenvolvedores criaram o OLMo, um framework de modelo de linguagem de estado da arte e verdadeiramente aberto. Esse framework permite que os pesquisadores usem o OLMo para construir e estudar modelos de linguagem. Ao contrário da maioria dos modelos de linguagem de estado da arte, que apenas liberaram o código da interface e os pesos do modelo, o framework OLMo é verdadeiramente de código aberto, com código de avaliação, métodos de treinamento e dados de treinamento acessíveis publicamente. O objetivo principal do OLMo é empoderar e impulsionar a comunidade de pesquisa aberta e o desenvolvimento contínuo de modelos de linguagem.
Neste artigo, discutiremos o framework OLMo em detalhes, examinando sua arquitetura, metodologia e desempenho em comparação com os frameworks de estado da arte atuais. Vamos começar.
OLMo: Aperfeiçoando a Ciência dos Modelos de Linguagem
O modelo de linguagem tem sido, sem dúvida, a tendência mais quente nos últimos anos, não apenas dentro da comunidade de AI e ML, mas também em toda a indústria de tecnologia, devido às suas capacidades notáveis em realizar tarefas do mundo real com desempenho semelhante ao humano. O ChatGPT é um exemplo primordial do potencial que os modelos de linguagem possuem, com grandes jogadores da indústria de tecnologia explorando a integração de modelos de linguagem com seus produtos.
A NLP, ou Processamento de Linguagem Natural, é uma das indústrias que mais empregou modelos de linguagem nos últimos anos. No entanto, desde que a indústria começou a empregar a anotação humana para alinhamento e pré-treinamento em larga escala, os modelos de linguagem testemunharam um rápido aprimoramento em sua viabilidade comercial, resultando na maioria dos frameworks de linguagem e NLP de estado da arte tendo interfaces proprietárias restritas, com a comunidade de desenvolvimento não tendo acesso a detalhes vitais.
Para garantir o progresso dos modelos de linguagem, o OLMo, um modelo de linguagem de estado da arte e verdadeiramente aberto, oferece aos desenvolvedores um framework para construir, estudar e avançar no desenvolvimento de modelos de linguagem. Ele também fornece aos pesquisadores acesso ao seu código de treinamento e avaliação, metodologia de treinamento, dados de treinamento, logs de treinamento e checkpoints de modelo intermediários. Os modelos de estado da arte existentes têm diferentes graus de abertura, enquanto o modelo OLMo liberou todo o framework, desde o treinamento até os dados e ferramentas de avaliação, estreitando assim a lacuna de desempenho em comparação com modelos de estado da arte como o LLaMA2.
Para modelagem e treinamento, o framework OLMo inclui o código de treinamento, pesos do modelo completos, ablações, logs de treinamento e métricas de treinamento na forma de código de interface, bem como logs do Weights & Biases. Para análise e construção de conjuntos de dados, o framework OLMo inclui os dados de treinamento completos usados para os modelos AI2’s Dolma e WIMBD, juntamente com o código que produz os dados de treinamento. Para fins de avaliação, o framework OLMo inclui o modelo Catwalk da AI2 para avaliação downstream e o modelo Paloma para avaliação baseada em perplexidade.
OLMo: Modelo e Arquitetura
O modelo OLMo adota uma arquitetura de transformador apenas decodificador com base nos Sistemas de Processamento de Informações Neurais e entrega dois modelos com 1 bilhão e 7 bilhões de parâmetros, respectivamente, com um modelo de 65 bilhões de parâmetros atualmente em desenvolvimento.

A arquitetura do framework OLMo entrega várias melhorias em relação a frameworks que incluem o componente de transformador vanilla em sua arquitetura, incluindo modelos de linguagem de estado da arte recentes como o OpenLM, Falcon, LLaMA e PaLM. A figura a seguir compara o modelo OLMo com 7 bilhões de parâmetros contra os LLMs recentes que operam com números quase iguais de parâmetros.

O framework OLMo seleciona os hiperparâmetros otimizando o modelo para o throughput de treinamento no hardware, minimizando ao mesmo tempo o risco de divergência lenta e picos de perda. Com isso, as principais alterações implementadas pelo framework OLMo que o distinguem da arquitetura de transformador vanilla são as seguintes:
Sem Vieses
Ao contrário do Falcon, PaLM, LLaMA e outros modelos de linguagem, o framework OLMo não inclui nenhum viés em sua arquitetura para melhorar a estabilidade do treinamento.
Norma de Camada Não Paramétrica
O framework OLMo implementa a formulação não paramétrica da norma de camada em sua arquitetura. A Norma de Camada Não Paramétrica não oferece nenhuma transformação afim dentro da norma, ou seja, não oferece nenhum ganho adaptativo ou viés. A Norma de Camada Não Paramétrica não apenas oferece mais segurança do que as Normas de Camada Paramétricas, mas também é mais rápida.
Função de Ativação SwiGLU
Como a maioria dos modelos de linguagem, como o PaLM e o LLaMA, o framework OLMo inclui a função de ativação SwiGLU em sua arquitetura em vez da função de ativação ReLU e aumenta o tamanho da ativação oculta para o múltiplo mais próximo de 128 para melhorar o throughput.
RoPE ou Incorporações Positionais Rotativas
Os modelos OLMo seguem os modelos LLaMA e PaLM e trocam as incorporações positionais absolutas pelas Incorporações Positionais Rotativas ou RoPE.
Pré-Treinamento com Dolma
Embora a comunidade de desenvolvimento agora tenha acesso melhorado aos parâmetros do modelo, as portas para acessar os conjuntos de dados de pré-treinamento ainda permanecem fechadas, pois os dados de pré-treinamento não são liberados junto com os modelos fechados ou abertos. Além disso, as documentações técnicas que cobrem esses dados muitas vezes carecem de detalhes vitais necessários para entender e replicar completamente o modelo. O bloqueio torna difícil prosseguir com a pesquisa em certas linhas de pesquisa de modelos de linguagem, incluindo a compreensão de como os dados de treinamento impactam as capacidades e limitações do modelo. O framework OLMo construiu e liberou seu conjunto de dados de pré-treinamento, Dolma, para facilitar a pesquisa aberta sobre o pré-treinamento de modelos de linguagem. O conjunto de dados Dolma é uma coleção diversa e multi-fonte de mais de 3 trilhões de tokens em 5 bilhões de documentos coletados de 7 fontes diferentes que são comumente usadas por LLMs poderosos para pré-treinamento e são acessíveis ao público em geral. A composição do conjunto de dados Dolma é resumida na tabela a seguir.

O conjunto de dados Dolma é construído usando um pipeline de 5 componentes: filtragem de idioma, filtragem de qualidade, filtragem de conteúdo, mistura multi-fonte, deduplicação e tokenização. O OLMo também liberou o relatório Dolma, que fornece mais insights sobre os princípios de design e detalhes de construção, juntamente com um resumo de conteúdo mais detalhado. O modelo também abre suas ferramentas de curação de dados de alto desempenho para permitir a curação fácil e rápida de corpora de dados de pré-treinamento. A avaliação do modelo segue uma estratégia de duas etapas, começando com a avaliação online para tomada de decisão durante o treinamento do modelo e uma avaliação offline final para uma avaliação agregada a partir de checkpoints do modelo. Para a avaliação offline, o OLMo usa o framework Catwalk, nossa ferramenta de avaliação publicamente disponível que tem acesso a uma ampla diversidade de conjuntos de dados e formatos de tarefas. O framework usa o Catwalk para avaliação downstream, bem como para avaliação intrínseca de modelagem de linguagem em nosso novo benchmark de perplexidade, Paloma. O OLMo então compara com vários modelos públicos usando sua pipeline de avaliação fixa, tanto para avaliação downstream quanto para avaliação de perplexidade.
O OLMo executa várias métricas de avaliação sobre a arquitetura do modelo, inicialização, otimizadores, cronograma de taxa de aprendizado e misturas de dados durante o treinamento do modelo. Os desenvolvedores chamam isso de “avaliação online” do OLMo, pois é uma iteração em loop a cada 1000 passos de treinamento (∼4B tokens de treinamento) para fornecer um sinal contínuo e precoce sobre a qualidade do modelo sendo treinado. A configuração dessas avaliações depende da maioria das tarefas e configurações de experimento usadas para nossa avaliação offline. O OLMo visa não apenas comparações do OLMo-7B com outros modelos para o melhor desempenho, mas também mostrar como ele permite uma avaliação científica mais completa e controlada.
Treinamento do OLMo
É importante notar que os modelos do framework OLMo são treinados usando a estratégia de otimizador ZeRO, que é fornecida pelo framework FSDP por meio do PyTorch e, dessa forma, reduz substancialmente o consumo de memória de GPU, dividindo os pesos do modelo sobre as GPUs. Com isso, na escala de 7B, o treinamento pode ser feito com um tamanho de lote de 4096 tokens por GPU em nosso hardware. O framework de treinamento para os modelos OLMo-1B e -7B usa um tamanho de lote globalmente constante de cerca de 4M tokens (2048 instâncias, cada uma com um comprimento de sequência de 2048 tokens). Para o modelo OLMo-65B (atualmente em treinamento), os desenvolvedores usam um aquecimento do tamanho do lote que começa em cerca de 2M tokens (1024 instâncias), dobrando a cada 100B tokens até cerca de 16M tokens (8192 instâncias).
Para melhorar o throughput, empregamos o treinamento de precisão mista (Micikevicius et al., 2017) por meio das configurações internas do FSDP e do módulo amp do PyTorch. O último garante que certas operações, como a softmax, sempre sejam executadas em precisão total para melhorar a estabilidade, enquanto todas as outras operações sejam executadas em meia precisão com o formato bfloat16. Em nossas configurações específicas, os pesos do modelo compartilhados e o estado do otimizador local para cada GPU são mantidos em precisão total. Os pesos dentro de cada bloco de transformador são apenas convertidos para o formato bfloat16 quando os parâmetros de tamanho completo são materializados em cada GPU durante as passagens direta e inversa. Os gradientes são reduzidos entre as GPUs em precisão total.
Otimizador
O framework OLMo utiliza o otimizador AdamW com os seguintes hiperparâmetros.

Para todos os tamanhos de modelo, a taxa de aprendizado aquece linearmente nos primeiros 5000 passos (∼21B tokens) até um valor máximo e, em seguida, decresce linearmente com a raiz quadrada inversa do número de passos até a taxa de aprendizado mínima especificada. Após o período de aquecimento, o modelo recorta os gradientes de modo que a norma l- total dos gradientes de parâmetro não exceda 1,0. A tabela a seguir fornece uma comparação de nossas configurações de otimizador na escala de 7B com as de outros LMs recentes que também usaram o AdamW.

Dados de Treinamento
O treinamento envolve a tokenização de instâncias de treinamento por palavra e BPE tokenizer para o modelo de peça de sentença após adicionar um token EOS especial no final de cada documento e, em seguida, agrupar conjuntos consecutivos de 2048 tokens para formar instâncias de treinamento. As instâncias de treinamento são embaralhadas da mesma forma para cada execução de treinamento. A ordem dos dados e a composição exata de cada lote de treinamento podem ser reconstruídas a partir dos artefatos que liberamos. Todos os modelos OLMo liberados foram treinados por pelo menos 2T tokens (uma época sobre seus dados de treinamento) e alguns foram treinados além disso, iniciando uma segunda época sobre os dados com uma ordem de embaralhamento diferente. Dada a pequena quantidade de dados que isso repete, deve ter um efeito negligenciável.
Resultados
O checkpoint usado para a avaliação do OLMo-7B é treinado até 2,46T tokens no conjunto de dados Dolma com o cronograma de decréscimo linear de taxa de aprendizado mencionado anteriormente. Um ajuste adicional desse checkpoint no conjunto de dados Dolma por 1000 passos com taxa de aprendizado decrescendo linearmente para 0 aumenta ainda mais o desempenho do modelo em perplexidade e conjuntos de avaliação de tarefas finais descritos anteriormente. Para a avaliação final, os desenvolvedores compararam o OLMo com outros modelos publicamente disponíveis – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B e RPJ-INCITE-7B.
Avaliação Downstream
O conjunto de avaliação downstream principal é resumido na tabela a seguir.

Realizamos uma avaliação zero-shot por abordagem de classificação de rank em todos os casos. Nessa abordagem, as completions de texto candidatas (por exemplo, diferentes opções de múltipla escolha) são classificadas por probabilidade (geralmente normalizada por algum fator de normalização) e a precisão da previsão é relatada.
Embora o Catwalk use vários métodos típicos de normalização de probabilidade, como normalização por token e normalização por caractere, as estratégias de normalização aplicadas são escolhidas separadamente para cada conjunto de dados e incluem a probabilidade incondicional da resposta. Mais concretamente, isso envolveu nenhuma normalização para as tarefas arc e openbookqa, normalização por token para as tarefas hellaswag, piqa e winogrande, e nenhuma normalização para as tarefas boolq, copa e sciq (ou seja, tarefas em uma formulação próxima a uma tarefa de previsão de token único).

A figura a seguir mostra o progresso da pontuação de precisão para as nove tarefas finais principais. Pode-se deduzir que há uma tendência geralmente crescente no número de precisão para todas as tarefas, exceto para a OBQA, à medida que o OLMo-7B é treinado em mais tokens. Um aumento repentino na precisão de muitas tarefas entre o último e o penúltimo passo mostra o benefício de reduzir linearmente a LR para 0 ao longo dos 1000 passos de treinamento finais. Por exemplo, no caso das avaliações intrínsecas, o Paloma argumenta por meio de uma série de análises, desde a inspeção do desempenho em cada domínio separadamente até resultados mais resumidos sobre combinações de domínios. Relatamos resultados em dois níveis de granularidade: o desempenho agregado sobre 11 dos 18 fontes no Paloma, bem como resultados mais detalhados sobre cada uma dessas fontes individualmente.

Pensamentos Finais
Neste artigo, discutimos o OLMo, um modelo de linguagem de estado da arte e verdadeiramente aberto que oferece aos desenvolvedores um framework para construir, estudar e avançar no desenvolvimento de modelos de linguagem, além de fornecer aos pesquisadores acesso ao seu código de treinamento e avaliação, metodologia de treinamento, dados de treinamento, logs de treinamento e checkpoints de modelo intermediários. Os modelos de estado da arte existentes têm diferentes graus de abertura, enquanto o modelo OLMo liberou todo o framework, desde o treinamento até os dados e ferramentas de avaliação, estreitando assim a lacuna de desempenho em comparação com modelos de estado da arte como o LLaMA2.












