Visão geral do desenvolvimento de tecnologia de modelo grande - (1)

Documento de referência de conteúdo de texto "A Survey of Large Language Models"

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Título do artigo: A Survey of Large Language Models
Link do artigo: https://arxiv.org/pdf/2303.18223v10.pdf

Como o conteúdo desse paper é demais, meu artigo está dividido em várias partes para mostrar! O diretório é o seguinte:

Visão geral do desenvolvimento da tecnologia de modelos de grande escala- (1)
Visão geral do desenvolvimento da tecnologia de modelos de grande escala- (2)
Visão geral do desenvolvimento da tecnologia de modelos de grande escala- (3)
Visão geral do desenvolvimento da tecnologia de modelos de grande escala- (4)

1. Introdução

A linguagem é uma habilidade humana essencial de expressão e comunicação, desenvolvida na primeira infância e evoluindo ao longo da vida. No entanto, para que as máquinas entendam e usem a linguagem para se comunicar como humanos, elas precisam do suporte de poderosos algoritmos de inteligência artificial. Este objetivo tem sido um desafio de pesquisa de longa data.

A modelagem de linguagem (LM) é um dos métodos técnicos importantes na promoção da inteligência da linguagem de máquina. Os LMs visam construir modelos probabilísticos generativos de sequências de palavras para prever a probabilidade de tokens futuros (ou ausentes). A pesquisa de LM recebeu ampla atenção e passou por quatro estágios principais de desenvolvimento.

O primeiro estágio é o modelo estatístico de linguagem (SLM), que é baseado em métodos estatísticos de aprendizado para prever a próxima palavra, construindo um modelo de previsão de palavras. O SLM alcançou certos resultados nas áreas de recuperação de informações e processamento de linguagem natural, mas devido ao problema de esparsidade de dados, a estimativa precisa de modelos de linguagem de alta ordem torna-se difícil.

A segunda etapa é a Modelagem de Linguagem Neural (NLM), que usa redes neurais para descrever as probabilidades de sequências de palavras. O NLM introduz o conceito de representação distribuída de palavras e melhora o desempenho de tarefas de NLP aprendendo características efetivas de palavras ou sentenças. O surgimento do NLM teve um impacto importante na aprendizagem de representação de modelos de linguagem.

A terceira etapa é o modelo de linguagem pré-treinamento (PLM), que inclui as séries BERT e GPT. Esses modelos aprendem representações gerais de palavras sensíveis ao contexto por pré-treinamento em corpora não rotulados em grande escala. O PLM alcança ganhos significativos de desempenho em várias tarefas de NLP por meio de um paradigma de aprendizado pré-treinado e ajustado.

O quarto estágio é o modelo de linguagem de modelo grande (LLM), que melhora o desempenho aumentando o tamanho do modelo ou o tamanho dos dados. Os LLMs demonstraram uma capacidade surpreendente de resolver tarefas complexas e provocaram um repensar das possibilidades da inteligência geral artificial (AGI). O rápido desenvolvimento do LLM está impulsionando a inovação no campo da pesquisa de IA.

modelo de modelagem de linguagem exemplo
SLM Classificação de texto, marcação de parte do discurso, análise sintática
NLM Autoencoders, Autoencoders variacionais, Generative Adversarial Networks, Denoising Autoencoders
PLM BERT, GPT, ROBERTa, ALBERT
LLM GPT-3、GPT-4,ChatGPT、InstructGPT

O rápido progresso do LLM teve um impacto significativo na comunidade de IA e trouxe novas direções de pesquisa em áreas como processamento de linguagem, recuperação de informações e visão computacional. Apesar de alguns desafios e problemas não resolvidos, espera-se que o LLM seja uma das principais tecnologias para a construção de inteligência geral artificial

Este artigo combina a tradução da visão geral do artigo e meu próprio entendimento para escrever uma visão geral do desenvolvimento da tecnologia de modelos em grande escala. As seguintes partes do artigo são as seguintes:

capítulo do artigo contente
Capítulo 2 Histórico sobre LLMs, incluindo terminologia, configurações, recursos e visão geral organizacional
Seção 3 Resumir os recursos disponíveis necessários para desenvolver LLMs
Seção 4 Introdução à tecnologia de pré-treinamento de modelos grandes
Seção 5 Introdução à Adaptação de Modelos Grandes
Seção 6 Introdução à utilização de conhecimento de modelo grande
Seção 7 Introdução à avaliação de desempenho de modelos grandes
Seção 8 Resuma e discuta o futuro dos grandes modelos

2. Visão geral do modelo grande

2.1 Plano de fundo do modelo grande

Modelos de linguagem grandes (LLMs) geralmente se referem a modelos de linguagem Transformer com centenas de bilhões de parâmetros, que são treinados em dados de texto em grande escala. Os LLMs demonstraram fortes capacidades na compreensão da linguagem natural e na capacidade de resolver tarefas complexas por meio da geração de texto. Antes de entender como os LLMs funcionam,

Primeiro, apresentamos o histórico básico dos LLMs, incluindo leis de escala, recursos emergentes e tecnologias-chave

2.1.1 A lei de escala dos LLMs

A lei de escala dos LLMs significa que, com o aumento da escala do modelo, escala de dados e quantidade de cálculo, a melhoria do desempenho dos LLMs mostra uma certa regularidade . Atualmente, a maioria dos LLMs são construídos na arquitetura Transformer e empregam objetivos de pré-treinamento semelhantes, como modelagem de linguagem. A pesquisa mostra que estender os LLMs pode melhorar muito o desempenho do modelo. No estudo, foram propostas duas leis de escala representativas.

A primeira é a lei da escala KM, proposta por Kaplan et al., que descreve a relação entre o desempenho do modelo de linguagem neural e o tamanho do modelo com um modelo de lei de potência ( N ) (N)( N ) , tamanho do conjunto de dados( D ) ( D)( D ) e computação de treinamento( C ) (C)( C ) a relação entre. A lei de escala KM descreve a relação entre desempenho e esses três fatores por meio de três fórmulas básicas, ou seja, tamanho do modelo, tamanho do conjunto de dados e computação de treinamento.

L ( N ) = ( N c N ) α N , α N ∼ 0,076 , N c ∼ 8,8 × 1 0 13 L(N) = (\frac{N_c}{N})^{\alpha_N},\alpha_N \sim 0,076,N_c \sim 8,8 \times 10^{13};L ( N )=(NNc)an,an0,076 ,Nc8.8×1 013
L ( D ) = ( D c D ) α D , α D ∼ 0,095 , D c ∼ 5,4 × 1 0 13 L(D) = (\frac{D_c}{D})^{\alpha_D},\alpha_D \sim 0,095,D_c \sim 5,4 \times 10^{13}L ( D )=(DDc)aD,aD0,095 ,Dc5.4×1 013
L ( C ) = ( C c C ) α C , α C ∼ 0,050 , C c ∼ 3,1 × 1 0 8 L(C) = (\frac{C_c}{C})^{\alpha_C},\alpha_C \sim 0,050,C_c \sim 3,1 \times 10^{8}L ( C )=(CCc)aC,aC0,050 ,Cc3.1×1 08

onde L( ) denota a perda de entropia cruzada. Essas três leis são obtidas ajustando o desempenho do modelo em diferentes tamanhos de dados (tokens de 22M a 23B), tamanho do modelo (768M a 1,5 bilhão de parâmetros não incorporados) e cálculos de treinamento. Eles mostram que existe uma forte dependência entre o desempenho do modelo e esses três fatores .

A segunda é a lei de escala de Chinchilla, proposta por Hoffmann et al. Eles conduziram experimentos rigorosos por meio de uma ampla gama de tamanhos de modelo (70M a 16B) e tamanhos de dados (tokens de 5B a 500B) e ajustaram outra forma de lei de escala para orientar o treinamento de otimização computacional de LLMs. A lei de escala Chinchilla fornece uma maneira de alocar de maneira ideal entre o tamanho do modelo e o tamanho dos dados, otimizando a função de perda.

L ( N , D ) = E + AN α + BD β L(N,D)=E+\frac{A}{N^\alpha}+\frac{B}{D^\beta}L ( N ,D )=E+NaA+DbB

Dos quais E = 1,69 E = 1,69E=1,69 ,A = 406,4 A = 406,4A=406,4 ,B = 410,7 B = 410,7B=410,7 ,α = 0,34 \alpha = 0,34a=0,34 ebeta = 0,28 \beta = 0,28b=0,28 . Ao restringirC ≈ 6 NDC ≈ 6NDC6 Otimize a função de perda L sob N D ( N , D ) L(N,D)L ( N ,D ) , mostrando a distribuição ideal do orçamento computacional entre o tamanho do modelo e o tamanho dos dados da seguinte forma
N opt ( C ) = G ( C 6 ) a , D opt ( C ) = G − 1 ( C 6 ) b N_{opt}(C)=G(\frac{C}{6})^a,D_{opt}(C)=G^{-1}(\frac{C}{6})^bNo pt( C )=G (6C)um ,Do pt( C )=G1 (6C)b
ondea = α α + β a=\frac{\alpha}{\alpha+\beta}a=a + ba, b = β α + β b=\frac{\beta}{\alpha+\beta}b=a + bb, G é um fator de escala que pode ser calculado a partir de A, B, α e β.

O estudo dessas leis de escala revela a estreita relação entre o desempenho dos LLMs e o tamanho do modelo, o tamanho dos dados e a quantidade de computação, fornecendo orientação para futuras pesquisas e otimização dos LLMs.

2.1.2 Capacidades emergentes do LLM

As capacidades emergentes dos LLMs são formalmente definidas como “ capacidades ausentes em modelos pequenos, mas presentes em modelos maiores ”, que é uma das características mais marcantes que distinguem os LLMs dos PLMs anteriores. Quando a capacidade emergente emerge, ela adquire ainda uma característica notável: quando a escala atinge um determinado nível, o desempenho excede significativamente o nível aleatório . Por analogia, esse padrão emergente está intimamente relacionado ao fenômeno das transições de fase na física. Em princípio, as capacidades emergentes podem ser associadas a algumas tarefas complexas, e mais atenção é dada às capacidades gerais que podem ser aplicadas para resolver várias tarefas. Aqui, apresentamos brevemente três capacidades emergentes típicas de LLMs e modelos representativos com tais capacidades .

  • Aprendizagem Contextual : Aprendizagem Contextual (ICL:Aprendizagem Contextual Incremental) é oficialmente introduzida pela GPT-3: supondo que o modelo de linguagem tenha sido fornecido com instruções de linguagem natural ou várias demonstrações de tarefas, ele pode prever instâncias e saída por meio de sequências de palavras de texto de entrada sem treinamento adicional ou atualizações de gradiente. Entre os modelos da série GPT, o modelo GPT-3 de 175B exibe forte capacidade de aprendizado de contexto em geral, enquanto os modelos GPT-1 e GPT-2 não. No entanto, esse recurso também depende da tarefa downstream específica. Por exemplo, para GPT-3 em 13B, a capacidade de aprendizado contextual pode surgir em tarefas aritméticas, como adição e subtração de números de 3 dígitos, mas GPT-3 em 175B não funciona bem em tarefas de resposta a perguntas persas.
  • Ajuste fino do modelo .Ajuste fino em LLMs usando novos conjuntos de dados. Por meio do ajuste fino, os LLMs podem executar novas tarefas de acordo com as instruções de tarefas relacionadas ao novo conjunto de dados, melhorando assim a capacidade de generalização.
  • raciocínio passo a passo . Para modelos de linguagem pequenos, muitas vezes é difícil resolver tarefas complexas envolvendo várias etapas de raciocínio, como problemas matemáticos. No entanto, com a estratégia de sugestão da Cadeia de Pensamento (CoT) , os LLMs podem resolver essas tarefas explorando o mecanismo de sugestão, que envolve etapas intermediárias de raciocínio para chegar à resposta final.Para tarefas complexas, os LLMs podem inferir a saída passo a passo, assim como enviamos " continuar" no gpt

2.1.3 Principais tecnologias do LLM

  1. Expansão : Quanto maior o tamanho dos LLMs, maior o tamanho dos dados e quanto mais cálculos de treinamento, maior a capacidade do modelo. Use as leis de escala e dimensionamento de dados para alocar recursos de computação com mais eficiência.
  2. Treinamento : Devido ao enorme tamanho dos LLMs, é muito desafiador treinar com sucesso LLMs capazes. Algoritmos de treinamento distribuído e estruturas de otimização são necessários para apoiar o aprendizado de modelos de grande escala.
  3. Evocação de habilidades : Evocar as habilidades latentes dos LLMs, projetando instruções de tarefas apropriadas ou estratégias de aprendizado contextual, permitindo que exibam desempenho superior em tarefas específicas.
  4. Ajuste fino de alinhamento : Para se alinhar com os valores humanos, são necessários métodos de ajuste fino de alinhamento para garantir que o conteúdo gerado pelos LLMs seja benéfico, honesto e inofensivo.
  5. Manipulação de ferramentas : Utilize ferramentas externas para complementar LLMs para determinadas tarefas, como usar uma calculadora para cálculos precisos ou usar um mecanismo de pesquisa para obter informações atualizadas.

Essas técnicas-chave desempenham um papel importante no desenvolvimento de LLMs com capacidades de aprendizado gerais e poderosas.

2.2 Evolução técnica dos modelos da série GPT:

A série de modelos GPT passou por vários estágios de evolução tecnológica. A fase inicial de exploração inclui o desenvolvimento dos modelos GPT-1 e GPT-2, que empregam uma arquitetura Transformer generativamente pré-treinada. No estágio de salto da escala do modelo, o modelo GPT-3 introduziu o conceito de aprendizagem contextual (ICL), e a escala de parâmetros foi expandida para 175B, mostrando excelente desempenho e capacidade de raciocínio. Na fase de melhoria da capacidade, a capacidade do modelo GPT-3 foi aprimorada ainda mais por treinamento de dados de código e alinhamento com as preferências humanas. Por fim, com base na tecnologia aprimorada do modelo GPT-3, foram lançados o modelo GPT-3.5 e o modelo GPT-4, entre os quais o ChatGPT é otimizado para diálogo e o GPT-4 possui recursos mais fortes para resolver tarefas complexas e melhorar a segurança.

A figura abaixo mostra a linha do tempo de grandes modelos de linguagem (com mais de 10 bilhões de tamanho) que existiram nos últimos anos. Essa linha do tempo é amplamente determinada pela data de publicação do artigo técnico do modelo (como a data de envio ao arXiv). Se não houver artigo correspondente, defina a data do modelo para a primeira vez em que foi publicado ou anunciado publicamente. Os LLMs com pontos de verificação de modelo disponíveis publicamente são marcados em amarelo. Devido a restrições de espaço no gráfico, o gráfico inclui apenas LLMs com resultados de avaliação divulgados publicamente.

insira a descrição da imagem aqui

3. Recursos de suporte do modelo LLM

Desenvolver ou reproduzir LLMS não é uma tarefa fácil, dadas as dificuldades técnicas e a enorme demanda de recursos computacionais. Uma abordagem possível é aprender com o LLMS existente e reutilizar recursos publicamente disponíveis para desenvolvimento incremental ou pesquisa experimental. Nesta seção, resumimos brevemente os recursos disponíveis publicamente para o desenvolvimento de LLMS, incluindo pontos de verificação de modelo e API, corpus e recursos de biblioteca.

Ponto de verificação do modelo: refere-se a salvar o estado intermediário do modelo durante o processo de treinamento para que possa ser carregado e usado quando necessário. No aprendizado profundo, o treinamento do modelo geralmente requer vários ciclos iterativos e os parâmetros do modelo são atualizados em cada ciclo. Para evitar a perda de resultados de treinamento causada por interrupções inesperadas no processo de treinamento e para facilitar a avaliação subsequente do modelo e a implantação do aplicativo, você pode salvar periodicamente os pontos de verificação do modelo.
Os pontos de verificação do modelo geralmente contêm: os parâmetros de peso do modelo, o estado do otimizador e outras informações relacionadas ao treinamento. Ao salvar um ponto de verificação do modelo, o modelo pode ser recarregado quando necessário e continuar treinando ou inferindo previsões do estado de treinamento anterior. Isso economiza tempo de treinamento, facilita a depuração e otimização do modelo e permite o uso flexível do modelo em diferentes ambientes.

3.1 Pontos de verificação de modelo e APIs disponíveis publicamente

Considerando o enorme custo do pré-treinamento do modelo, um ponto de verificação do modelo bem treinado é crucial para a comunidade de pesquisa na pesquisa e desenvolvimento do LLMS.Como a escala de parâmetros é um fator chave a ser considerado ao usar o LLMS, classificamos esses modelos públicos em dois níveis de escala (centenas de bilhões de parâmetros e dezenas de bilhões de parâmetros), o que ajuda os usuários a determinar os recursos apropriados de acordo com seu orçamento de recursos. Além disso, para inferência, podemos usar diretamente a API exposta para executar a tarefa sem executar o modelo localmente. Em seguida, apresentamos APIs e pontos de verificação de modelo disponíveis publicamente.

Modelos com centenas de bilhões de parâmetros

Com exceção de LLaM (a maior versão contém 65B de parâmetros) e NLLB (a maior versão contém 54,5B de parâmetros), a maioria dos modelos nesta categoria variam em tamanho de parâmetro de 10B a 20B. Outros modelos nesta linha incluem mT5, PanGu-α, T0, GPT-NeoX-20B, CodeGen, UL2, Flan-T5 e mT0

Modelos com dezenas de bilhões de parâmetros

Apenas alguns modelos nesta categoria foram lançados publicamente. Por exemplo, OPT, OPT-IML, BLOOM e BLOOMZ têm quase o mesmo número de parâmetros que GPT-3 (versão 175B), enquanto GLM e Galactica têm parâmetros 130B e 120B, respectivamente. Entre eles, o compartilhamento aberto do OPT (versão 175B) visa permitir que os pesquisadores conduzam pesquisas reprodutíveis em larga escala. Para o estudo da generalização cross-lingual, BLOOM (versão 176B) e BLOOMZ (versão 176B) podem ser usados ​​como modelos de base porque eles funcionam bem em tarefas de modelagem de linguagem multilíngue. Entre esses modelos, OPT-IML com ajuste fino de instrução pode ser um bom modelo candidato para estudar o efeito do ajuste de instrução. Modelos dessa escala geralmente exigem milhares de GPUs ou TPUs para treinamento. Por exemplo, OPT (versão 175B) usou 992 GPUs A100-80GB, enquanto GLM (versão 130B) usou um cluster de 96 nós de GPU NVIDIA DGX-A100 (8x40G).

API pública para LLMs

A API fornece uma maneira mais conveniente para usuários comuns usarem LLMs sem executar o modelo localmente. Como uma interface representativa para o uso de LLMs, a API da série de modelos GPT é amplamente utilizada na academia e na indústria. O OpenAI fornece sete interfaces principais para os modelos da série GPT-3: ada, bababage, curie, davinci (a versão mais poderosa da série GPT-3), text-ada-001, text-babbage-001 e text-curie-001. Entre eles, as primeiras quatro interfaces podem ser ajustadas no servidor host da OpenAI. Em particular, babage, curie e davinci correspondem aos modelos GPT-3 (1B), GPT-3 (6.7B) e GPT-3 (175B), respectivamente. Além disso, existem duas APIs relacionadas ao Codex, code-cushman-001 (uma poderosa versão multilíngue do Codex (12B)) e code-davinci-002.

Além disso, a série GPT-3.5 inclui um modelo básico code-davinci-002 e três versões aprimoradas, a saber, text-davinci-002, text-davinci-003 e gpt-3.5-turbo-0301. Vale ressaltar que gpt-3.5-turbo-0301 é a interface para chamar o ChatGPT. Recentemente, a OpenAI também lançou a API correspondente do GPT-4, incluindo gpt-4, gpt-4-0314, gpt-4-32k e gpt-4-32k-0314. Em geral, a escolha da interface da API depende de cenários específicos de aplicativos e requisitos de resposta. O uso detalhado pode ser encontrado no site do projeto.

3.2 Corpus comumente usado

Em comparação com os PLMs anteriores, os LLMs exigem mais dados de treinamento que cobrem uma ampla gama de conteúdo devido a terem mais parâmetros. Para atender a essa necessidade, cada vez mais conjuntos de dados de treinamento prontos para pesquisa foram lançados. Nesta seção, vários corpora comumente usados ​​para treinamento de LLMs são brevemente resumidos. Classificamos esses corpora em seis grupos de acordo com seu tipo de conteúdo: Livros, CommonCrawl, Reddit Links, Wikipedia, Código e Outros.

A figura abaixo mostra as estatísticas das fontes de dados comumente usadas
insira a descrição da imagem aqui

livros

BookCorpus, um conjunto de dados comumente usado em modelos anteriores de pequena escala, como GPT e GPT-2, contém mais de 11.000 livros que cobrem vários tópicos e gêneros, como ficção e biografia. Outro corpus de livros em grande escala é o Projeto Gutenberg, que inclui mais de 70.000 obras literárias, incluindo romances, prosa, poesia, drama, história, ciência, filosofia e outros tipos de obras. Atualmente, é uma das maiores coleções de livros de código aberto e é usado para treinamento de MT-NLG e LLaMA. Quanto aos Books1 e Books2 usados ​​no GPT-3, eles são muito maiores que o BookCorpus, mas ainda não foram divulgados publicamente.

CommonCrawl

O CommonCrawl é um dos maiores bancos de dados de rastreadores da Web de código aberto, contendo volumes de dados em nível de PB e tem sido amplamente usado como dados de treinamento para LLMs existentes. Devido ao enorme tamanho de todo o conjunto de dados, a pesquisa existente extrai principalmente subconjuntos de páginas da web dos dados de um período específico. No entanto, devido à grande quantidade de ruído e informações de baixa qualidade nos dados da rede, o pré-processamento dos dados é necessário antes do uso. Com base no CommonCrawl, quatro conjuntos de dados filtrados têm sido comumente usados ​​em pesquisas existentes: C4, CC-Stories, CC-News e RealNews. Colossal Clean Crawled Corpus (C4) inclui cinco variantes, ou seja, en (806G), en.noclean (6T), realnewslike (36G), webtextlike (17G) e multilíngue (38T). A versão en tem sido utilizada para pré-treinamento de T5, LaMDA, Gopher e UL2. O C4 multilíngue, também conhecido como mC4, foi usado no mT5. CC-Stories (31G) consiste em um subconjunto de dados CommonCrawl, e o conteúdo é apresentado na forma de histórias. No entanto, a fonte original do CC-Stories não está disponível agora, então uma versão reproduzida do CC-Stories-R foi incluída na Tabela 2. Além disso, dois corpora de notícias extraídos do CommonCrawl, REALNEWS (120G) e CC-News (76G), também são comumente usados ​​como dados pré-treinamento.

Link do Reddit

Reddit é uma plataforma de mídia social que permite aos usuários enviar links e postagens de texto para serem votados como "like" ou "down" por outros. Normalmente, postagens com votos altos são consideradas úteis e podem ser usadas para criar conjuntos de dados de alta qualidade. WebText é um corpus bem conhecido de links altamente apreciados no Reddit, mas não está disponível publicamente. Como alternativa, existe uma alternativa de código aberto facilmente acessível chamada OpenWebText. Outro corpus extraído do Reddit é o PushShift.io, um conjunto de dados atualizado em tempo real contendo dados históricos desde a criação do Reddit. O Pushshift fornece não apenas despejos de dados mensais, mas também utilitários úteis que oferecem suporte aos usuários na pesquisa, resumo e investigações preliminares em conjuntos de dados inteiros. Isso permite que os usuários coletem e processem facilmente os dados do Reddit.

Wikipédia

A Wikipédia é uma enciclopédia online que contém um grande número de artigos de alta qualidade que cobrem uma variedade de tópicos. A maioria desses artigos é escrita em estilo expositivo (com referências de apoio) e abrange uma variedade de idiomas e campos. Em geral, as versões somente em inglês da Wikipedia são amplamente usadas na maioria dos LLMs (por exemplo, GPT-3, LaMDA e LLaMA). A Wikipedia está disponível em vários idiomas, portanto pode ser usada em um ambiente multilíngue.

o código

Para coletar dados de código, os trabalhos existentes rastreiam principalmente códigos licenciados de código aberto da Internet. Fontes primárias de dados incluem repositórios de código público licenciados de código aberto (como GitHub) e plataformas de perguntas e respostas relacionadas a código (como StackOverflow). O Google lançou publicamente o conjunto de dados do BigQuery, que contém um grande número de trechos de código de código aberto licenciados em várias linguagens de programação, como um conjunto de dados de código representativo. O CodeGen usa o BIGQUERY, um subconjunto do conjunto de dados do BigQuery, para treinar a versão multilíngue do CodeGen (CodeGen-Multi).

outro

Pile é um conjunto de dados de texto em grande escala, diversificado e de código aberto contendo 800 GB de dados de várias fontes, incluindo livros, sites, códigos, artigos científicos e plataformas de mídia social. É construído a partir de 22 subconjuntos diversos de alta qualidade. O conjunto de dados Pile é amplamente utilizado em modelos de diferentes escalas de parâmetros, como GPT-J (6B), CodeGen (16B) e Megatron-Turing NLG (530B). Além disso, o ROOTS consiste em vários conjuntos de dados menores (1,61 TB de texto no total), abrangendo 59 idiomas diferentes (incluindo linguagem natural e linguagem de programação), que foram usados ​​para treinamento do BLOOM.

Na prática, os LLMs pré-treinamento geralmente requerem uma mistura de diferentes fontes de dados (veja a figura abaixo), não apenas um único corpus . Portanto, os estudos existentes geralmente misturam vários conjuntos de dados disponíveis no mercado (como C4, OpenWebText e Pile) e, em seguida, realizam processamento adicional para obter um corpus de pré-treinamento. Além disso, para treinar LLMs adaptados a aplicações específicas, também é importante extrair dados de fontes relevantes (como Wikipedia e BigQuery) para enriquecer as informações correspondentes nos dados pré-treinamento. Para referência rápida às fontes de dados usadas em LLMs existentes, mostramos corpora pré-treinados para três LLMs representativos:

GPT-3 (175B) é pré-treinado com rótulos 300B em um conjunto de dados misto, incluindo CommonCrawl, WebText2, Books1, Books2 e Wikipedia.
O PaLM (540B) usa um conjunto de dados pré-treinado contendo fontes rotuladas 780B, incluindo conversas de mídia social, páginas da Web filtradas, livros, Github, Wikipedia multilíngue e notícias.
O LLaMA extrai dados de treinamento de várias fontes, incluindo CommonCrawl, C4, Github, Wikipedia, Books, ArXiv e StackExchange. A quantidade de dados de treinamento para LLaMA (6B) e LLaMA (13B) é de 1,0T marcas, e a quantidade de dados de treinamento para LLaMA (32B) e LLaMA (65B) é de 1,4T marcas.

insira a descrição da imagem aqui

3.3 Recursos da biblioteca

Nesta seção, apresentamos brevemente uma variedade de recursos de biblioteca disponíveis para o desenvolvimento de LLMs.

Transformadores

Uma biblioteca Python de código aberto para construir modelos usando a arquitetura Transformer, desenvolvida e mantida pela Hugging Face. Possui uma API simples e amigável para facilitar o uso e a personalização de vários modelos pré-treinados. Como uma poderosa biblioteca, possui uma grande e ativa comunidade de usuários e desenvolvedores, atualizando e melhorando regularmente modelos e algoritmos.

DeepSpeed

DeepSpeed ​​é uma biblioteca desenvolvida pela Microsoft para otimização de deep learning (compatível com PyTorch), que vem sendo utilizada para treinar diversos LLMs como MT-NLG e BLOOM. Ele fornece suporte para várias técnicas de otimização para treinamento distribuído, como otimização de memória (tecnologia ZeRO, checkpointing de gradiente) e paralelismo de pipeline.

Megatron-LM

Megatron-LM é uma biblioteca de aprendizado profundo desenvolvida pela NVIDIA para treinar modelos de linguagem em grande escala. Ele também fornece diversas técnicas de otimização de treinamento distribuído, incluindo modelo e paralelismo de dados, treinamento de precisão mista e FlashAttention. Essas técnicas de otimização podem melhorar muito a eficiência e a velocidade do treinamento e realizar um treinamento distribuído eficiente entre as GPUs.

JAX

JAX é uma biblioteca Python desenvolvida pelo Google para algoritmos de aprendizado de máquina de alto desempenho que permite aos usuários realizar cálculos em arrays com aceleração de hardware, como GPU ou TPU. Ele é capaz de computação eficiente em uma variedade de dispositivos e oferece suporte a recursos como diferenciação automática e compilação just-in-time.

Colossal-AI

Colossal-AI é uma biblioteca de aprendizado profundo desenvolvida pela HPC-AI Tech para treinar modelos de IA em grande escala. Ele é implementado com base no PyTorch e suporta um rico conjunto de estratégias de treinamento paralelas. Além disso, pode utilizar o método proposto por Patrick Star para otimizar o gerenciamento de memória heterogênea. Recentemente, baseado no LLaMA, um modelo estilo ChatGPT chamado ColossalChat foi desenvolvido usando Colossal-AI, e duas versões 7B e 13B foram lançadas publicamente.

BMTrain

BMTrain é uma biblioteca desenvolvida pela OpenBMB para treinar modelos de parâmetros de grande escala de forma eficiente, enfatizando a simplicidade do código, baixo uso de recursos e alta disponibilidade. O BMTrain incorporou vários LLMs comuns (como Flan-T5 e GLM) em seu ModelCenter, e os desenvolvedores podem usar esses modelos diretamente.

FastMoE

FastMoE é uma biblioteca de treinamento dedicada a modelos MoE (mistura de especialistas). Ele é desenvolvido com base no PyTorch e projetado com eficiência e facilidade de uso em mente. O FastMoE simplifica o processo de conversão de modelos Transformer em modelos MoE e oferece suporte para paralelismo de dados e paralelismo de modelo durante o treinamento.

Acho que você gosta

Origin blog.csdn.net/weixin_42010722/article/details/131654611
Recomendado
Clasificación