Fine tuned un modèle open source Mistral 7B

Contexte

Fine tuned un LLM qu’est-ce que va veut dire et à quoi ça sert?

Les LLMs tel que chat GPT sont impressionnants. Ce que je vous propose dans cet article c’est de vous guider pour entraîner votre propre LLM, beaucoup plus modeste en taille, sur une tâche en particulier: réaliser le sommaire d’une conversation.

Pour y arriver nous allons fine tuned (entrainement spécialisé) un LLM (large language model) de 7 milliards de paramètres Mistral 7B!

Même si 7B paramètres semble beaucoup, dans le monde des LLMs on est dans la catégorie petit modèle. Pour rappel OpenAI GPT 3.5 c’est 175B paramètres soit exactement 25 fois plus!

Pourquoi utiliser ce modèle?

  • SOTA (State Of The Art) pour cette taille de modèle
  • Fit dans le free tier de Google Collab

On peut constater que Mistral 7B (orange clair) se compare avantageusement sur plusieurs benchmarks par rapport à Llama 2 13B, un modèle Open source presque deux fois plus gros!

La 2e raison est que ce modèle est suffisamment petit pour tenir sur la version gratuite de Google Collab en termes de RAM de GPU.

L’entraînement

Voici le lien vers le Jupyter Notebook qui va nous permettre de réaliser l’entraînement sur Google Collab.

Assurez-vous que de vous connecter à un environnement avec un GPU gratuit. Pour cela il y a une option connecter en haut à droite:

Pour exécuter chacune des étapes il suffit de clicker sur le bouton à gauche de la commande.

Si cela n’est pas clair pour vous, ne vous en faites pas, je vous propose de lire cet excellent guide Google Collab avant de vous lancer.

Je vais maintenant expliquer étape par étape le rôle de chacune des commandes du Jupyter Notebook.

Pip install

Cette commande permet d’installer dans le Notebook les librairies Python requises pour l’entraînement.

HuggingFace Login

Cette étape n’est pas obligatoire mais recommandée. Elle permet de se logger au portail de LLM open source HuggingFace pour y publier le modèle que nous allons entrainer.

Après avoir créé un compte sur HuggingFace (gratuit), vous allez devoir générer une access key via le menu settings en haut à droite lorsque vous clicker sur votre profil.

Ensuite choisissez Access Tokens et New Token :

Lorsque vous aurez un compte HuggingFace et une Access Token, vous allez pouvoir vous connecter à partir de votre Notebook en exécutant la commande suivante:

Entraînement du modèle

C’est maintenant que les choses sérieuses commencent.

Même si au niveau du code python cela semble un peu compliqué, si on décortique par petit bout de code cela devient plus clair.

Voici ce qui est réalisé par le code qui permet de faire l’entraînement du modèle:

  • le chargement du dataset qui va nous servir pour l’entraînement
  • le chargement du modèle de base Mistral 7B
  • la configuration d’optimisation
  • la configuration de l’entraînement et l’exécution de l’entraînement
  • la publication du modèle entraîné sur HuggingFace

Je vous recommande pour commencer de ne pas modifier les paramètres et d’exécuter le code tel que.

Sur un GPU T4 gratuit de Google Collab cet entrainement devrait durer environ 30 minutes.

Grâce aux optimisations le training du modèle ne consomme que 10 Go de RAM du GPU:

Inférence

Notre modèle est maintenant entrainé. Il est prêt pour ce qu’on appelle l’inférence c’est à dire prêt à être utilisé!

Résumé

Il existe maintenant un bon modèle Open Source Mistral 7B qui est suffisamment petit pour être fine tuned sur le free Tier de Google Collab. A partir d’un Jupyter Notebook, il est plus simple que jamais de le faire gratuitement et de publier le modèle sur le portail de LLM Open Source HuggingFace.

Bien que Google Collab soit bien adapté à la phase de training si on ne dispose pas de GPU, la partie utilisation du modèle (inférence) requiert pour s’intégrer dans une application d’être servi via une API.

Dans le prochain article nous verrons comment exposer ce modèle (inférence) via une API Rest et comment l’intégrer dans une application.