Pular para o conteúdo principal

Capítulo 2: Coleta e Pré-processamento de Dados

Introdução​

A qualidade e a diversidade dos dados de treinamento determinam fundamentalmente as capacidades do modelo. LLMs modernos são treinados com trilhões de tokens provenientes de fontes diversas.

Fontes de Dados​

Common Crawl​

  • Petabytes de dados da web
  • Requer filtragem intensiva
  • Ponto de partida mais comum

Fontes Curadas​

data_sources = {
"Wikipedia": "Alta qualidade, enciclopédico",
"Books": "Texto longo, coeso",
"ArXiv": "Artigos científicos",
"GitHub": "Código e documentação",
"StackOverflow": "Formato de perguntas e respostas",
}

Pipeline de Processamento de Dados​

Dados Brutos da Web → Remoção de Duplicatas → Filtragem de Qualidade → Tokenização → Dados de Treinamento

1. Remoção de Duplicatas​

from datasketch import MinHash, MinHashLSH

def create_minhash(text, num_perm=128):
"""Create MinHash signature for deduplication."""
m = MinHash(num_perm=num_perm)
for word in text.split():
m.update(word.encode('utf8'))
return m

2. Filtragem de Qualidade​

def quality_filter(text):
"""Filter low-quality documents."""
# Length filter
if len(text.split()) < 50:
return False

# Repetition filter
lines = text.split('\n')
unique_lines = set(lines)
if len(unique_lines) / len(lines) < 0.5:
return False

# Language detection
if not is_english(text):
return False

return True

3. Tokenização​

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b")

def tokenize_dataset(texts, max_length=2048):
"""Tokenize and chunk texts for training."""
all_tokens = []
for text in texts:
tokens = tokenizer.encode(text)
all_tokens.extend(tokens)

# Create fixed-length chunks
chunks = [
all_tokens[i:i+max_length]
for i in range(0, len(all_tokens), max_length)
]
return chunks

Escala do Conjunto de Dados​

ModeloTokens de TreinamentoTamanho dos Dados
GPT-3300B~570 GB
LLaMA1,4T~1,4 TB
LLaMA 22T~2 TB

Principais Pontos​

Summary
  1. Qualidade dos dados > quantidade de dados
  2. Remoção de duplicatas é fundamental para eficiência do treinamento
  3. Fontes diversas melhoram a generalização do modelo