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
| Modelo | Tokens de Treinamento | Tamanho dos Dados |
|---|---|---|
| GPT-3 | 300B | ~570 GB |
| LLaMA | 1,4T | ~1,4 TB |
| LLaMA 2 | 2T | ~2 TB |
Principais Pontos
Summary
- Qualidade dos dados > quantidade de dados
- Remoção de duplicatas é fundamental para eficiência do treinamento
- Fontes diversas melhoram a generalização do modelo