RedPajama-Data-V2: O Fator Transformador para Modelos de Linguagem de Grande Escala de Código Aberto
Published on
Introdução
No cenário em constante evolução da inteligência artificial, o desenvolvimento de poderosos modelos de linguagem de grande escala (LLMs) tem sido em grande parte dominado por entidades comerciais. No entanto, a comunidade de código aberto tem feito progressos significativos na democratização do acesso à tecnologia de IA de ponta. Entre as inúmeras iniciativas que impulsionam essa mudança, o projeto RedPajama se destaca como um farol de inovação e colaboração.
RedPajama, um esforço conjunto de Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM, Hazy Research e MILA Québec AI Institute, tem como objetivo criar modelos de linguagem de código aberto líderes e totalmente abertos que rivalizam com seus concorrentes proprietários. O marco mais recente do projeto, RedPajama-Data-V2, está pronto para transformar a forma como os modelos de linguagem de código aberto são treinados, fornecendo um conjunto de dados sem precedentes de 30 trilhões de tokens.
Quer saber as últimas notícias sobre LLM? Confira o ranking mais recente de LLM!
RedPajama-Data-V2: Uma Mudança de Paradigma para Modelos de Linguagem de Código Aberto
O RedPajama-Data-V2 é um conjunto de dados da web maciço especificamente projetado para treinar LLMs. Ele inclui mais de 100 bilhões de documentos de texto provenientes de 84 snapshots do CommonCrawl, processados usando o pipeline CCNet. Desses documentos, 30 bilhões vêm com sinais de qualidade pré-computados e 20 bilhões são deduplicados.
O conjunto de dados abrange cinco idiomas: inglês, francês, espanhol, alemão e italiano. O número de documentos e tokens para a parte anotada e deduplicada do conjunto de dados é o seguinte:
Idioma | # Documentos | Contagem Estimada de Tokens (deduplicados) |
---|---|---|
Inglês | 14.5B | 20.5T |
Alemão | 1.9B | 3.0T |
Francês | 1.6B | 2.7T |
Espanhol | 1.8B | 2.8T |
Italiano | 0.9B | 1.5T |
Total | 20.8B | 30.4T |
A inclusão de mais de 40 conjuntos de anotações de qualidade pré-computadas diferencia o RedPajama-Data-V2 de outros conjuntos de dados. Essas anotações permitem que os usuários filtrem e ponderem ainda mais os dados de acordo com suas necessidades específicas, proporcionando uma flexibilidade e opções de personalização sem precedentes.
O RedPajama-Data-V2 é atualmente o maior conjunto de dados público especificamente projetado para treinamento de LLMs, com mais de 100 bilhões de documentos brutos e 30 trilhões de tokens após deduplicação e filtragem. Ele abrange cinco idiomas: inglês (20.5T tokens), alemão (3.0T), francês (2.7T), espanhol (2.8T) e italiano (1.5T).
Em comparação, outros conjuntos de dados proeminentes, como o The Pile (usado para treinar modelos EleutherAI), contêm cerca de 1,2 trilhão de tokens, enquanto o conjunto de dados usado para treinar o Llama 2 tinha 2,4 trilhões de tokens. A escala do RedPajama-Data-V2 é incomparável, fornecendo uma abundância de dados de treinamento de alta qualidade.
Por que o RedPajama-Data-V2 é tão bom
O que realmente diferencia o RedPajama-Data-V2 é a inclusão de mais de 40 anotações de qualidade pré-computadas para cada documento. Essas anotações cobrem várias categorias, como pontuações de perplexidade, previsões de classificadores, métricas de linguagem natural, indicadores de toxicidade de conteúdo e muito mais.
-
Alta Qualidade: Ter esses sinais de qualidade permite que os pesquisadores filtrem e ponderem facilmente o conjunto de dados de acordo com suas necessidades específicas. Outros conjuntos de dados geralmente aplicam heurísticas fixas, limitando a personalização posterior. O RedPajama-Data-V2 oferece uma flexibilidade sem precedentes para criar subconjuntos personalizados otimizados para diferentes aplicações de LLM.
-
Totalmente Código Aberto: O projeto RedPajama é totalmente código aberto, com todos os scripts de processamento de dados disponíveis no GitHub e o conjunto de dados hospedado no HuggingFace. Essa transparência permite que a comunidade entenda, reproduza e desenvolva com base no conjunto de dados.
-
Redução do Custo de Treinamento de LLM: A escala e a qualidade do RedPajama-Data-V2 têm o potencial de reduzir significativamente os custos computacionais para treinar LLMs poderosos. Ao fornecer um vasto conjunto de dados informativos, os modelos podem alcançar um desempenho sólido com menos parâmetros e menos recursos computacionais.
Configurando o RedPajama-Data-V2
Para começar com o RedPajama-Data-V2, você pode carregar o conjunto de dados de exemplo usando o seguinte código Python:
from datasets import load_dataset
ds = load_dataset("togethercomputer/RedPajama-Data-V2", name="sample")
Para baixar uma combinação específica de partition
x snapshot_id
x language
, use o seguinte comando:
wget "https://data.together.xyz/redpajama-data-v2/v1.0.0/urls/minhash-urls.txt" -O "minhash-urls.txt"
Executando o Pipeline do RedPajama-Data-V2
O pipeline do RedPajama-Data-V2 consiste em três etapas principais:
- Preparando os artefatos
- Computando os sinais de qualidade
- Deduplicação
Etapa 1: Preparando os Artefatos
Esta etapa cria os artefatos utilizados nas etapas subsequentes, incluindo a construção de classificadores de qualidade, treinamento de modelos generativos de saco de palavras para a computação do peso de importância, obtenção da lista de palavras ruins do repositório LDNOOBW e obtenção da lista mais recente de URLs em lista negra do UT1.
Para criar os artefatos, defina as variáveis de ambiente no arquivo de configuração e execute:
bash scripts/run_prep_artifacts.sh \
--config configs/rp_v2.0.conf \
--listings /path/to/listings/file.txt \
--max_workers 32
Passo 2: Computando Sinais de Qualidade
O segundo passo computa os sinais de qualidade, incluindo as assinaturas minhash para a deduplicação difusa. Configure as variáveis de ambiente no arquivo de configuração e execute:
bash scripts/apptainer_run_quality_signals.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///caminho/para/diretório/de/dados" \
--output_base_uri "file:///caminho/para/diretório/de/saída/de/dados" \
--max_docs -1
Passo 3: Deduplicação
O terceiro passo envolve a deduplicação exata e difusa. Para a deduplicação exata usando um filtro de Bloom, execute:
python3 app/src/bloomfilter.py \
--listings /caminho/para/arquivo/de/listagens.txt \
--input_base_uri "s3://caminho/para/diretório/de/dados/ccnet" \
--output_dir "/caminho/para/diretório/de/saída" \
--s3_profile "..." \
--endpoint_url "..." \
--parallel_readers 32 \
--batch_size 10 \
--capacity "..." \
--error_rate "..."
Para a deduplicação difusa com hashing sensível à localidade, execute:
bash scripts/apptainer_run_lsh.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///caminho/para/diretório/de/dados" \
--output_dir "/caminho/para/diretório/de/saída" \
--similarity "<threshold_de_similaridade>" \
--listings "/caminho/para/arquivo/de/listagens/minhash.txt" \
--max_docs -1
Sinais de Qualidade RedPajama-Data-V2
O RedPajama-Data-V2 inclui um conjunto abrangente de sinais de qualidade, que podem ser categorizados nos seguintes grupos:
- CCNet: Sinais derivados do pipeline CCNet, como pontuação de perplexidade, identificação de idioma e comprimento do documento.
- Heurísticas de ML: Sinais baseados em modelos de aprendizado de máquina, como classificadores para páginas semelhantes ao Wikipedia e reamostragem por importância.
- Linguagem Natural: Sinais relacionados às propriedades linguísticas do conteúdo, como contagem de palavras, contagem de frases e fração de palavras únicas.
- Repetitividade: Sinais que medem a repetitividade do conteúdo, como a fração de caracteres em n-gramas duplicados.
- Toxicidade: Sinais que indicam conteúdo potencialmente tóxico, como a presença de palavras da lista de bloqueio LDNOOBW e categorias da lista negra UT1.
- Deduplicação: Assinaturas minhash para deduplicação difusa em vários limiares de similaridade de Jaccard.
Uma lista detalhada de todos os sinais de qualidade pode ser encontrada na documentação do RedPajama-Data-V2.
O Futuro do RedPajama e dos LLMs de Código Aberto
O RedPajama-Data-V2 marca um marco significativo no desenvolvimento de LLMs de código aberto. Ao fornecer um conjunto vasto e de alta qualidade com anotações extensivas, o projeto visa reduzir as barreiras de entrada para pesquisadores e organizações que buscam construir modelos de linguagem poderosos.
A equipe do RedPajama planeja expandir o conjunto de dados com anotações adicionais de qualidade, como anotações de contaminação, modelagem de tópicos e categorização de documentos. Eles incentivam ativamente o envolvimento da comunidade para sugerir e desenvolver novas anotações para aprimorar ainda mais a utilidade do conjunto de dados.
Paralelamente ao desenvolvimento do conjunto de dados, a Together está construindo modelos abertos com base no RedPajama-Data-V2. Esses modelos serão totalmente abertos e comercialmente viáveis, fornecendo uma alternativa livre de dramas para os LLMs existentes. O projeto também oferece assistência a empresas e organizações interessadas em construir modelos personalizados usando uma combinação de dados abertos e proprietários.
Conclusão
O RedPajama-Data-V2 representa um avanço significativo na democratização da tecnologia de IA. Ao fornecer um conjunto de dados de alta qualidade totalmente aberto para treinar LLMs, o projeto capacita pesquisadores, desenvolvedores e organizações a criar modelos de linguagem poderosos sem as limitações impostas por APIs proprietárias.
À medida que o projeto RedPajama continua a crescer e evoluir, ele tem o potencial de remodelar o cenário de IA, promovendo inovação, colaboração e acessibilidade. Com o apoio e a participação da comunidade de IA, o RedPajama está bem posicionado para se tornar um catalisador para a próxima geração de LLMs e além.
Quer ficar por dentro das últimas notícias sobre LLM? Confira a última classificação de LLM!