Le domaine du Deep Learning est riche et très en vogue, notamment avec l’avènement des modèles génératifs en tout genre (image, son, texte, etc.). On pense à ChatGPT, capable de converser de manière fluide et cohérente.
Mais derrière ces applications se cachent des algorithmes que l’on nomme modèles
tels que GPT-4, Mixtral, Llama, Gemini, Claude, etc. Ces modèles sont souvent versionnés : Llama 2 et 3, GPT-3 et 4, Claude-2 et 3, etc.
Ces modèles sont extrêmement coûteux à créer et à maintenir, tant en termes de ressources computationnelles que de données nécessaires pour l’entraînement. Il existe plusieurs techniques pour les optimiser, que nous détaillerons plus loin.
Le principe de création est similaire pour tous les modèles, bien qu'il existe deux méthodes principales d’entraînement de modèle :
- L’entraînement supervisé : Cette méthode implique l'utilisation de données d'entraînement étiquetées, où chaque entrée est associée à une sortie correcte. L'algorithme apprend en comparant ses prédictions aux réponses correctes et ajuste ses paramètres pour minimiser les erreurs.
- L’entraînement non-supervisé : Dans cette méthode, l'algorithme apprend à partir de données non étiquetées, en identifiant des structures ou des patterns inhérents aux données. Aucun retour direct sous forme de corrections spécifiques n'est fourni.
Élaboration d’un modèle
Les étapes d’élaboration d’un modèle ci-dessous traitent de l’entraînement supervisé :
-
Agrégation, annotation et prétraitement des données d’entraînement : Collecter une grande quantité de données pertinentes, les étiqueter correctement et les transformer en un format utilisable par le modèle. Cela peut inclure le nettoyage des données, la normalisation, et la division en ensembles d'entraînement, de validation et de test.
-
Description du modèle :

- Entrée : Définir le type et la forme des données que le modèle recevra. Par exemple, pour une tâche de classification d'images, cela pourrait être des images de taille fixe.
- Couches : Choisir et organiser les couches du réseau de neurones, telles que des couches convolutives pour les images ou des couches récurrentes pour les données séquentielles par exemple dans le cadre de réseaux neuronaux classique (RNN)
- Fonction de perte : Sélectionner la fonction qui mesure la différence entre les prédictions du modèle et les véritables étiquettes. Par exemple, l'entropie croisée (Categorical Cross Entropy) pour la classification ou erreur quadratique moyenne (Mean Squared Error) pour la régression.
- Fonction d’activation : Utiliser des fonctions comme ReLU, Sigmoid ou Tanh pour introduire la non-linéarité nécessaire au réseau de neurones pour apprendre des patterns complexes.
- Optimiseur : Choisir l'algorithme qui ajustera les poids du modèle, comme Adam ou SGD (Stochastic Gradient Descent).
- Sortie : Définir le format des résultats produits par le modèle. Par exemple, une probabilité pour chaque classe dans une tâche de classification.
-
Entraînement du modèle :
- Nombre d’époques : Déterminer le nombre de passes complètes à travers l'ensemble de données d'entraînement. Trop peu d’époques peuvent conduire à un sous-apprentissage, tandis que trop peuvent conduire à un sur-apprentissage.
- Fonctions à exécuter entre les époques : Inclure des techniques comme le dropout pour éviter le sur-apprentissage, et la validation croisée pour évaluer la performance du modèle sur un ensemble de validation.
Zoom sur ce qu’il se passe lors de l’entraînement
Lors de l’entraînement d’un modèle, plusieurs processus cruciaux se déroulent :
- Emission d’une hypothèse par le modèle (traduite par les poids de chaque neurone du réseau)
- Calcul de l’hypothèse (passage de la donnée à travers les couches de neurones pondérés)
- Vérification de la distance du résultat par rapport à la vérité (l’étiquette ou
label
)
- Mise à jour des poids, et donc de la prochaine hypothèse
Concrètement :
- Forward Propagation : Les données d'entrée passent à travers les différentes couches du réseau, où chaque couche applique des transformations mathématiques. Les activations des neurones sont calculées jusqu'à ce qu'une sortie soit produite.