🔎 Décodage du pipeline LLM – Étape 1: Traitement des entrées et tokenisation

 🔎 Décodage du pipeline LLM – Étape 1: Traitement des entrées et tokenisation

Auteur (s): Ecem Karaman

Publié à l’origine sur Vers l’IA.

🔎 Décodage du pipeline LLM – Étape 1: Traitement des entrées et tokenisation

🔹 Du texte brut à l’entrée prêt pour le modèle

Dans mon post précédent, j’ai aménagé le Pipeline LLM en 8 étapesdécoder comment Modèles de grande langue (LLMS) traiter la langue dans les coulisses. Maintenant, faisons un zoom avant – en commençant par Étape 1: traitement des entrées.

Dans cet article, je vais explorer exactement comment le texte brut se transforme en entrées numériques structurées que les LLM peuvent comprendre, plonger en nettoyage de texte, méthodes de tokenisation, codage numérique et structuration de chat. Cette étape est souvent négligée, mais elle est cruciale car la qualité du codage d’entrée affecte directement la sortie du modèle.

🧩 1. Nettoyage et normalisation du texte (texte brut → texte prétraité)

But: Entrée de l’utilisateur brut → Texte standardisé et nettoyant pour une tokenisation précise.

📌 Pourquoi le nettoyage et la normalisation de texte?

  • Texte d’entrée brut → Souvent désordonné (fautes de frappe, boîtier, ponctuation, emojis) → La normalisation garantit cohérence.
  • Étape de préparation essentielle → réduit les erreurs de tokenisationassurer de meilleures performances en aval.
  • Compromis de normalisation: Les modèles GPT préservent le formatage et les nuances (plus de complexité de jetons); Bert nettoie agressivement le texte → les jetons plus simples, les nuances réduites, idéales pour les tâches structurées.

🔍 Détails techniques (en coulisses)

  • Normalisation Unicode (NFKC / NFC) → Standardalise les personnages (é contre É).
  • Pliage de cas (LowerCasing) → Réduit la taille du vocabulaire, standardalise la représentation.
  • Normalisation des espaces → Supprime les espaces inutiles, les onglets, les pauses de ligne.
  • Normalisation de ponctuation (utilisation cohérente de ponctuation).
  • Manipulation de la contraction («Ne pas» → «ne pas» ou maintenu intact en fonction des exigences du modèle). GPT préserve généralement les contractions, les modèles basés sur Bert peuvent se séparer.
  • Manipulation spéciale des personnages (emojis, accents, ponctuation).
import unicodedata
import re

def clean_text(text):
text = text.lower() # Lowercasing
text = unicodedata.normalize("NFKC", text) # Unicode normalization
text = re.sub(r"\s+", " ", text).strip() # Remove extra spaces
return text

raw_text = "Hello! How’s it going? 😊"
cleaned_text = clean_text(raw_text)
print(cleaned_text) # hello! how’s it going?

🔡 2. Tokenisation (texte prétraité → jetons)

But: Texte brut → jetons (sous-mots, mots ou caractères).

La tokenisation a un impact direct sur la qualité et l’efficacité du modèle.

📌 Pourquoi la tokenisation?

  • Modèles Impossible de lire directement le texte brut → Doit se convertir en unités discrètes (jetons).
  • Jetons: Unité fondamentale que les réseaux de neurones traitent.

Exemple: «intéressant» → («intérêt», «ing»)

🔍 Dans les coulisses

La tokenisation implique:

  • Texte de cartographie → jetons basé sur un vocabulaire prédéfini.
  • Espace blanc et normalisation de ponctuation (par exemple, espaces → marqueurs spéciaux comme Ġ).
  • Segmenter les mots inconnus en sous-mots connus.
  • Équilibrage de la taille du vocabulaire et de l’efficacité de calcul.
  • Peut être déterministe (règles fixes) ou probabilistes (segmentation adaptative)

🔹 Types de jetons et différences de base

Tokenisation sous-mots (BPE, pièce d’éloge, Unigram) est le plus fréquent dans les LLM modernes en raison de l’efficacité et de la précision équilibrées.

Types de tokeniseurs sous-mots:

  • Encodage de paires d’octets (BPE): Merge de manière itérative des paires de caractères fréquents (modèles GPT).
  • BPE au niveau des octets: BPE, mais opère au niveau des octets, permettant une meilleure tokenisation du texte non anglaise (GPT-4, LLAMA-2/3)
  • Pièce de bougie: Optimise les divisions basées sur la probabilité dans le corpus d’entraînement (Bert).
  • Unigramme: Supprime les jetons improbables de manière itérative, créant un ensemble optimal (T5, lama).
  • Piece à la phrase: Prend en charge directement le texte brut; Whitespace-Aware (Deepseek, Modèles multilingues).
Différents tokenisers sortent différentes divisions de jetons en fonction de l’algorithme, de la taille du vocabulaire et des règles de codage.
  • Gpt-4 et GPT-3.5 utiliser BPE – Bon équilibre entre la taille et la performance du vocabulaire.
  • Bert usages Pièce de bouche – Approche de sous-mots plus structurée; Manipulation légèrement différente de mots inconnus.

📌 Le noyau Types de jetons sont publics, mais des modèles d’IA spécifiques peuvent en utiliser des versions ajustées fines (par exemple, le BPE est un algorithme qui décide de diviser le texte, mais les modèles GPT utilisent une version personnalisée de BPE). Les personnalisations de jetons spécifiques au modèle optimisent les performances.

# GPT-2 (BPE) Example
from transformers import AutoTokenizer
tokenizer_gpt2 = AutoTokenizer.from_pretrained("gpt2")
tokens = tokenizer_gpt2.tokenize("Let's learn about LLMs!")
print(tokens)
# ('Let', "'s", 'Ġlearn', 'Ġabout', 'ĠLL', 'Ms', '!')
# Ġ prefix indicates whitespace preceding token
# OpenAI GPT-4 tokenizer example (via tiktoken library)
import tiktoken
encoding = tiktoken.encoding_for_model("gpt-4")
tokens = encoding.encode("Let's learn about LLMs!")
print(tokens) # Numeric IDs of tokens
print(encoding.decode(tokens)) # Decoded text

🔢 3. Encodage numérique (jetons → ID de jeton)

But: Convertissez les jetons en ID numériques uniques.

  • LLMS Ne traitez pas le texte directement – Ils fonctionnent sur des chiffres. → Les jetons sont toujours des unités textuelles
  • Chaque jeton a un représentation entier unique dans le vocabulaire du modèle.
  • ID de jeton (entiers) Activer les opérations et les calculs de tenseur efficaces à l’intérieur des couches neuronales.

🔍 Dans les coulisses

Les tables de recherche de vocabulaire mappent efficacement les jetons → les entiers uniques (ID de jeton).

  • La taille du vocabulaire définit les contraintes du modèle (utilisation de la mémoire et performances) (GPT-4: ~ Tokens 50K):

Petit vocabulaire: Moins de paramètres, moins de mémoire, mais plus de jetons.

Grand vocabulaire: contexte plus riche, précision plus élevée, mais augmentation du coût de calcul.

  • Les tables de recherche sont des cartes de hachage: Permettre temps constant Conversions token-id (O (1) complexité).
  • Jetons spéciaux (par exemple, (PAD), , (CLS)) avoir ID réservés → Format d’entrée standardisé.
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")

tokens = tokenizer.tokenize("LLMs decode text.")
print("Tokens:", tokens) # Tokens: ('LL', 'Ms', 'Ġdecode', 'Ġtext', '.')

token_ids = tokenizer.convert_tokens_to_ids(tokens)
print("Token IDs:", token_ids) # Token IDs: (28614, 12060, 35120, 1499, 13)

📜 4. Entrée de formatage pour LLMS (ID de jeton → Templates de chat)

Objectif: Structure Tokenisé Entrée pour les modèles conversationnels (chat multi-tours)

  • Pourquoi: Les LLM comme GPT-4, Claude, Llama s’attendent à une entrée structurée dans rôles (Système, utilisateur, assistant).
  • En coulisses: Les modèles utilisent un formatage spécifique et des jetons spéciaux → maintenir le contexte de la conversation et les rôles.

🔍 Dans les coulisses

Les modèles de chat fournissent:

  • Identification des rôles: Sépare clairement les instructions du système, les entrées des utilisateurs et les réponses assistantes.
  • Gestion du contexte: Conserve l’historique des conversations multi-tours → une meilleure cohérence de réponse.
  • Entrée structurée: Chaque message enveloppé de jetons spéciaux ou JSON structurés → aide à distinguer clairement les entrées.
  • Métadonnées (facultative): Peut inclure des horodatages, des étiquettes de haut-parleurs ou des comptages de jetons par haut-parleur (pour les modèles avancés).
Comparaison des modèles de chat: Différents styles influencent directement l’interprétation du contexte du modèle.

📐 5. Codage d’entrée du modèle (texte structuré → tendeurs)

But: Convertir les ID de jeton numérique → les tableaux numériques structurés (tenseurs) pour GPU– Compatibilité du calcul neuronal basé.

Pourquoi les tenseurs?

  • Les réseaux de neurones s’attendent tableaux numériques (tenseurs) avec des dimensions uniformes (Taille du lot × longueur de séquence), pas simples listes d’entiers.
  • ID de jeton seul = entiers discrets; Tableaux de tenseur Ajouter une structure et un contexte (rembourrage, masques).
  • Un rembourrage, une troncature, un lot → affecter directement l’efficacité et les performances du modèle.

🔍 Détails techniques (en coulisses)

  • Rembourrage: Ajoute des jetons spéciaux (PAD) à des séquences plus courtes → Formes de tenseur uniformes.
  • Troncature: Supprime les jetons excédentaires des longues entrées → assure la compatibilité avec les fenêtres de contexte fixe (par exemple, GPT-2: 1024 jetons).
  • Masques d’attention: Les tenseurs binaires distinguant les jetons réels (1) vs jetons de rembourrage (0) → Empêche le modèle d’assister aux jetons de rembourrage pendant le calcul.
  • Toldage du tenseur: Combine plusieurs entrées dans des lots → un calcul parallèle optimisé sur GPU.

🔍 Prise à emporter

Le traitement des entrées est plus que la simple tokenisation – il comprend Nettoyage de texte, tokenisation, codage numérique, structuration de chat et formatage d’entrée du modèle final.

Type de jetons → Complotions du modèle: BPE (GPT), pièce d’éloge (Bert), Unigram (LLAMA) – Le choix affecte la taille du vocabulaire, la vitesse, la complexité.

Les modèles basés sur le chat s’appuient sur la mise en forme structurée (Modèles de chat) → Affecte directement la cohérence, la pertinence, le flux de conversation.

ID de jeton → Tenseurs Critique: Assure une compatibilité numérique pour un traitement neuronal efficace.

📖 Next Up: Étape 2 – Traitement du réseau neuronal

Maintenant que nous avons couvert comment Le texte brut devient une entrée de modèle structuréele prochain post Décomposer comment le réseau neuronal traite cette entrée pour générer un sens – couvrant Incorporer les couches, les mécanismes d’attention, et plus encore.

Si vous avez apprécié cet article:

💻 Découvrez mon Github pour les projets sur Ai /MlCybersecurity et Python
🔗 Connectez-vous avec moi Liendin Pour discuter de tout ce qui

💡 Pensées? Questions? Discutons! 🚀

Publié via Vers l’IA



Source link

Related post