Aller au contenu principal

Chapitre 2 : Collecte et Prétraitement des Données

Introduction​

La qualité et la diversité des données d'entraînement déterminent fondamentalement les capacités du modèle. Les LLM modernes sont entraînés sur des trillions de tokens provenant de sources diverses.

Sources de Données​

Common Crawl​

  • Pétaoctets de données web
  • Nécessite un filtrage intensif
  • Point de départ le plus courant

Sources Curatées​

data_sources = {
"Wikipedia": "Haute qualité, encyclopédique",
"Books": "Texte long, cohérent",
"ArXiv": "Articles scientifiques",
"GitHub": "Code et documentation",
"StackOverflow": "Format Q&R",
}

Pipeline de Traitement des Données​

Données Web Brutes → Déduplication → Filtrage de Qualité → Tokenisation → Données d'Entraînement

1. Déduplication​

from datasketch import MinHash, MinHashLSH

def create_minhash(text, num_perm=128):
"""Créer une signature MinHash pour la déduplication."""
m = MinHash(num_perm=num_perm)
for word in text.split():
m.update(word.encode('utf8'))
return m

2. Filtrage de Qualité​

def quality_filter(text):
"""Filtrer les documents de faible qualité."""
# Filtre de longueur
if len(text.split()) < 50:
return False

# Filtre de répétition
lines = text.split('\n')
unique_lines = set(lines)
if len(unique_lines) / len(lines) < 0.5:
return False

# Détection de la langue
if not is_english(text):
return False

return True

3. Tokenisation​

from transformers import AutoTokenizer

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

def tokenize_dataset(texts, max_length=2048):
"""Tokeniser et segmenter les textes pour l'entraînement."""
all_tokens = []
for text in texts:
tokens = tokenizer.encode(text)
all_tokens.extend(tokens)

# Créer des segments de longueur fixe
chunks = [
all_tokens[i:i+max_length]
for i in range(0, len(all_tokens), max_length)
]
return chunks

Échelle de l'Ensemble de Données​

ModèleTokens d'EntraînementTaille des Données
GPT-3300B~570 GB
LLaMA1.4T~1.4 TB
LLaMA 22T~2 TB

Points Clés​

Résumé
  1. Qualité des données > quantité de données
  2. Déduplication est cruciale pour l'efficacité de l'entraînement
  3. Sources diversifiées améliorent la généralisation du modèle