Conjuntos de dados para treinar um modelo de linguagem


Um modelo de linguagem é um modelo matemático que descreve uma linguagem humana como uma distribuição de probabilidade sobre seu vocabulário. Para treinar uma rede de aprendizagem profunda para modelar uma linguagem, você precisa identificar o vocabulário e aprender sua distribuição de probabilidade. Você não pode criar o modelo do nada. Você precisa de um conjunto de dados com o qual seu modelo possa aprender.

Neste artigo, você aprenderá sobre conjuntos de dados usados ​​para treinar modelos de linguagem e como obter conjuntos de dados comuns de repositórios públicos.

Vamos começar.

Conjuntos de dados para treinar um modelo de linguagem

Conjuntos de dados para treinar um modelo de linguagem
Foto de Dan V. Alguns direitos reservados.

Um bom conjunto de dados para treinar um modelo de linguagem

Um bom modelo de linguagem deve aprender o uso correto da linguagem, livre de preconceitos e erros. Ao contrário das linguagens de programação, as linguagens humanas carecem de gramática e sintaxe formais. Eles evoluem continuamente, impossibilitando catalogar todas as variações linguísticas. Portanto, o modelo deve ser treinado a partir de um conjunto de dados em vez de elaborado a partir de regras.

Configurar um conjunto de dados para modelagem de linguagem é um desafio. Você precisa de um conjunto de dados grande e diversificado que represente as nuances da linguagem. Ao mesmo tempo, deve ser de alta qualidade, apresentando uso correto da linguagem. Idealmente, o conjunto de dados deve ser editado e limpo manualmente para remover ruídos como erros de digitação, erros gramaticais e conteúdo não linguístico, como símbolos ou tags HTML.

Criar tal conjunto de dados do zero é caro, mas vários conjuntos de dados de alta qualidade estão disponíveis gratuitamente. Conjuntos de dados comuns incluem:

  • Rastreamento comum. Um enorme conjunto de dados continuamente atualizado de mais de 9,5 petabytes com conteúdo diversificado. É usado pelos principais modelos, incluindo GPT-3, Llama e T5. No entanto, por ser proveniente da Internet, contém conteúdo duplicado e de baixa qualidade, além de preconceitos e materials ofensivo. Limpeza e filtragem rigorosas são necessárias para torná-lo útil.
  • C4 (Corpus Rastejado Limpo Colossal). Um conjunto de dados de 750 GB extraído da net. Ao contrário do Widespread Crawl, este conjunto de dados é pré-limpo e filtrado, tornando-o mais fácil de usar. Ainda assim, espere possíveis preconceitos e erros. O modelo T5 foi treinado neste conjunto de dados.
  • Wikipédia. Somente o conteúdo em inglês tem cerca de 19 GB. É enorme, mas gerenciável. É bem selecionado, estruturado e editado de acordo com os padrões da Wikipedia. Embora cubra uma ampla gama de conhecimentos gerais com alta precisão factual, seu estilo e tom enciclopédicos são muito específicos. O treinamento apenas neste conjunto de dados pode fazer com que os modelos se ajustem demais a esse estilo.
  • WikiTexto. Um conjunto de dados derivado de artigos verificados e em destaque da Wikipedia. Existem duas versões: WikiText-2 (2 milhões de palavras de centenas de artigos) e WikiText-103 (100 milhões de palavras de 28.000 artigos).
  • LivroCorpus. Um conjunto de dados de alguns GB de textos de livros longos, ricos em conteúdo e de alta qualidade. Útil para aprender narrativas coerentes e dependências de longo prazo. No entanto, conhece problemas de direitos autorais e preconceitos sociais.
  • A pilha. Um conjunto de dados com curadoria de 825 GB de várias fontes, incluindo BookCorpus. Mistura diferentes gêneros textuais (livros, artigos, código-fonte e trabalhos acadêmicos), proporcionando ampla cobertura temática projetada para o raciocínio multidisciplinar. No entanto, esta diversidade resulta em qualidade variável, conteúdo duplicado e estilos de escrita inconsistentes.

Obtendo os conjuntos de dados

Você pode pesquisar esses conjuntos de dados on-line e baixá-los como arquivos compactados. No entanto, você precisará entender o formato de cada conjunto de dados e escrever um código personalizado para lê-los.

Como alternativa, pesquise conjuntos de dados no repositório Hugging Face em https://huggingface.co/datasets. Este repositório fornece uma biblioteca Python que permite baixar e ler conjuntos de dados em tempo actual usando um formato padronizado.

Abraçando o repositório de conjuntos de dados faciais

Vamos baixar o conjunto de dados WikiText-2 do Hugging Face, um dos menores conjuntos de dados adequados para construir um modelo de linguagem:

A saída pode ser assim:

Se ainda não o fez, instale a biblioteca de conjuntos de dados Hugging Face:

Ao executar este código pela primeira vez, load_dataset() baixa o conjunto de dados para sua máquina native. Certifique-se de ter espaço em disco suficiente, especialmente para grandes conjuntos de dados. Por padrão, os conjuntos de dados são baixados para ~/.cache/huggingface/datasets.

Todos os conjuntos de dados Hugging Face seguem um formato padrão. O dataset object é iterável, com cada merchandise como um dicionário. Para treinamento de modelo de linguagem, os conjuntos de dados normalmente contêm sequências de texto. Neste conjunto de dados, o texto é armazenado sob o "textual content" chave.

O código acima mostra alguns elementos do conjunto de dados. Você verá strings de texto simples de comprimentos variados.

Pós-processamento dos conjuntos de dados

Antes de treinar um modelo de linguagem, você pode querer pós-processar o conjunto de dados para limpar os dados. Isso inclui reformatar o texto (recortar sequências longas, substituir vários espaços por espaços únicos), remover conteúdo não linguístico (tags HTML, símbolos) e remover caracteres indesejados (espaços extras ao redor da pontuação). O processamento específico depende do conjunto de dados e de como você deseja apresentar o texto ao modelo.

Por exemplo, ao treinar um modelo pequeno no estilo BERT que lida apenas com letras minúsculas, você pode reduzir o tamanho do vocabulário e simplificar o tokenizer. Aqui está uma função geradora que fornece texto pós-processado:

Criar uma boa função de pós-processamento é uma arte. Deve melhorar a relação sinal-ruído do conjunto de dados para ajudar o modelo a aprender melhor, preservando ao mesmo tempo a capacidade de lidar com formatos de entrada inesperados que um modelo treinado pode encontrar.

Leituras Adicionais

Abaixo estão alguns recursos que você pode achar úteis:

Resumo

Neste artigo, você aprendeu sobre conjuntos de dados usados ​​para treinar modelos de linguagem e como obter conjuntos de dados comuns de repositórios públicos. Este é apenas um ponto de partida para a exploração do conjunto de dados. Considere aproveitar as bibliotecas e ferramentas existentes para otimizar a velocidade de carregamento do conjunto de dados, para que não se torne um gargalo no seu processo de treinamento.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *