LLM Training - Data Preparation

Reading time: 3 minutes

Ce sont mes notes du livre très recommandé https://www.manning.com/books/build-a-large-language-model-from-scratch avec quelques informations supplémentaires.

Basic Information

Vous devriez commencer par lire ce post pour quelques concepts de base que vous devriez connaître :

0. Basic LLM Concepts

1. Tokenization

tip

L'objectif de cette phase initiale est très simple : Diviser l'entrée en tokens (ids) d'une manière qui a du sens.

1. Tokenizing

2. Data Sampling

tip

L'objectif de cette deuxième phase est très simple : Échantillonner les données d'entrée et les préparer pour la phase d'entraînement généralement en séparant le jeu de données en phrases d'une longueur spécifique et en générant également la réponse attendue.

2. Data Sampling

3. Token Embeddings

tip

L'objectif de cette troisième phase est très simple : Attribuer à chacun des tokens précédents dans le vocabulaire un vecteur des dimensions souhaitées pour entraîner le modèle. Chaque mot dans le vocabulaire sera un point dans un espace de X dimensions.
Notez qu'initialement, la position de chaque mot dans l'espace est juste initialisée "aléatoirement" et ces positions sont des paramètres entraînables (seront améliorés pendant l'entraînement).

De plus, pendant l'embedding des tokens, une autre couche d'embeddings est créée qui représente (dans ce cas) la position absolue du mot dans la phrase d'entraînement. De cette façon, un mot à différentes positions dans la phrase aura une représentation (signification) différente.

3. Token Embeddings

4. Attention Mechanisms

tip

L'objectif de cette quatrième phase est très simple : Appliquer certains mécanismes d'attention. Ceux-ci vont être beaucoup de couches répétées qui vont capturer la relation d'un mot dans le vocabulaire avec ses voisins dans la phrase actuelle utilisée pour entraîner le LLM.
Beaucoup de couches sont utilisées pour cela, donc beaucoup de paramètres entraînables vont capturer cette information.

4. Attention Mechanisms

5. LLM Architecture

tip

L'objectif de cette cinquième phase est très simple : Développer l'architecture du LLM complet. Mettre tout ensemble, appliquer toutes les couches et créer toutes les fonctions pour générer du texte ou transformer du texte en IDs et vice versa.

Cette architecture sera utilisée à la fois pour l'entraînement et pour prédire du texte après qu'il ait été entraîné.

5. LLM Architecture

6. Pre-training & Loading models

tip

L'objectif de cette sixième phase est très simple : Entraîner le modèle depuis zéro. Pour cela, l'architecture LLM précédente sera utilisée avec quelques boucles parcourant les ensembles de données en utilisant les fonctions de perte et l'optimiseur définis pour entraîner tous les paramètres du modèle.

6. Pre-training & Loading models

7.0. LoRA Improvements in fine-tuning

tip

L'utilisation de LoRA réduit beaucoup le calcul nécessaire pour affiner des modèles déjà entraînés.

7.0. LoRA Improvements in fine-tuning

7.1. Fine-Tuning for Classification

tip

L'objectif de cette section est de montrer comment affiner un modèle déjà pré-entraîné afin qu'au lieu de générer un nouveau texte, le LLM donnera les probabilités que le texte donné soit catégorisé dans chacune des catégories données (comme si un texte est un spam ou non).

7.1. Fine-Tuning for Classification

7.2. Fine-Tuning to follow instructions

tip

L'objectif de cette section est de montrer comment affiner un modèle déjà pré-entraîné pour suivre des instructions plutôt que de simplement générer du texte, par exemple, répondre à des tâches en tant que chatbot.

7.2. Fine-Tuning to follow instructions