Dans le vaste monde des intelligences artificielles génératives, ChatGPT est aujourd’hui l’une des nombreuses options à disposition. Depuis que OpenAI a dévoilé son premier modèle de cette technologie, une véritable compétition s’est engagée, avec l’émergence de concurrents prêts à repousser les limites de la performance. Parmi ces acteurs de premier plan, on peut citer Bard de Google, LLama de Facebook, et le plus récent venu, Anthropic. Ils ont tous fait leurs preuves en termes de performances, mais il est un modèle qui se distingue particulièrement en matière d’accessibilité open source.

Il s’agit de LLama de Facebook, qui en est déjà à sa deuxième version majeure. C’est cet outil exceptionnel qui nous offre l’opportunité d’installer et d’exploiter notre propre intelligence artificielle générative. Dans ce billet, nous allons essayer de comprendre ce qu’est un modèle de language, comment il fonctionne afin de pouvoir faire un choix éclairé en vue d’une ins. Nous allons installer un framework d’inférence et faire des tests de génération.

C’est quoi concrètement un LLM (Large Language Model)

Un LLM, ou Large Language Model (en français, “grand modèle de langage”), est un type de modèle d’intelligence artificielle conçu pour comprendre et générer du texte en langage naturel. Ces modèles sont capables d’apprendre la structure et la sémantique du langage à partir de vastes quantités de données textuelles et peuvent être utilisés pour un large éventail d’applications liées au traitement du langage naturel. ChatGpt en est un exemple concret.

Pourquoi déployer sa propre IA générative en local?

Plusieurs motivations peuvent vous pousser à prendre cette décision.

  • Vous êtes passionné par la technologie : L’idée de déployer votre propre IA sur votre machine peut être particulièrement séduisante, surtout si vous appréciez l’aspect “bidouille” et que vous aimez mettre les mains à la pâte.
  • La protection de la vie privée vous tient à cœur : Si la confidentialité de vos données est une priorité et que vous préférez ne pas les partager avec des tiers, cette option pourrait s’avérer idéale pour vous.
  • Vous êtes soucieux de vos dépenses : Si vous envisagez de générer de longs textes, d’effectuer des simulations sur de longues périodes et que vous êtes attentif aux coûts associés aux services en ligne, alors l’idée de faire fonctionner votre propre clone de ChatGPT peut constituer une excellente alternative.

Une fois que vous avez pris la décision de vous lancer, il vous faudra désormais choisir le modèle génératif qui convient le mieux à vos besoins.

Comment choisir son modèle open source d’IA générative?

Deux concepts clés vont vous permettre de faire tourner votre IA générative :

  • l’inference : pour faire tourner votre propre LLM (large language model) il vous faut une machine capable de dompter la bête avec un temps de réponse raisonnable. Cette capacité est appelée inférence
  • la quantification : un large modèle de language représente les données qui le constitue sur des nombres à virgules. Pour plus de précision on peut se retrouver avec plusieurs nombres après la virgule. La quantification consiste à réduire ces nombres en des représentations de moindre nombre de bits (par exemple, 16 bits, 8 bits ou 4 bits) pour économiser de la mémoire et des ressources informatiques.

Ces deux concepts vont vous permettre de choisir quel modèle utilisé. Voici deux tableaux qui vont vous aider à faire votre choix.

Setup requis pour un modèle 8-bit

ModelVram utilisé en GBCartes graphiques pouvant être utiliséesRAM en GB
LLaMA 7B / Llama 2 7B10
3060 12GB, 3080 10GB
24
LLaMA 13B / Llama 2 13B203090, 3090 Ti, 409032
LLaMA 33B / Llama 2 34B40A6000 48GB, A100 40GB64
LLaMA 65B / Llama 2 70B80A100 80GB128
source : LocalLLaMA

Setup requis pour un modèle 4-bit

ModelVram utilisé en GBCartes graphiques pouvant être utiliséesRAM en GB
LLaMA 7B / Llama 2 7B6GTX 1660, 2060, AMD 5700 XT, RTX 3050, 30606
LLaMA 13B / Llama 2 13B10AMD 6900 XT, RTX 2060 12GB, 3060 12GB, 3080, A200012
LLaMA 33B / Llama 2 34B20RTX 3080 20GB, A4500, A5000, 3090, 4090, 6000, Tesla V10032
LLaMA 65B / Llama 2 70B40A100 40GB, 2×3090, 2×4090, A40, RTX A6000, 800064
source : LocalLLaMA

Comme vous pouvez le constater, si vous avez une machine modeste privilégiez un modèle 4 bits. C’est moins gourmand en mémoire avec un temps de réponse raisonnable.

structure de la nomenclature d’un modèle de language

Maintenant que vous savez choisir votre modèle vous allez vouloir le faire tourner. C’est là que ça peut coincer si vous n’êtes pas expérimenté dans ce domaine. Heureusement il y a plusieurs framework open source qui nous permettent de faire de l’inférence efficacement et simplement. Ils optimisent l’utilisation des ressources de votre ordinateur. Parmi ces frameworks figurent les suivants :

  • llama.cpp dont le but principal est faire tourner le modèle LLaMA quantifié sur 4 bits sur un macbook
  • text generation web UI qui est une interface web pour faire tourner des modèles de données
  • gpt4all qui est un backend en C pour faire de l’inférence
  • Ollama qui est aussi une plateforme qui permet de faire tourner simplement des IA génératives sur mac et linux. Une version windows est en cours de préparation

Pour les besoins du billets je vais me concentrer sur l’utilisation de Ollama qui me semble plus rapide à installer et simple à utiliser. Le seul inconvénient est qu’il faut disposer d’un macOS.

Comment installer Ollama?

Dans un premier temps il faut télecharger l’exécutable:

Une fois que vous avez les sources vous pouvez suivre tout simplement les instructions et déplacer l’app dans le dossier application.

Pour commencer à interagir avec Ollama rendez vous dans votre terminal et exécutez:

ollama run llama2

Cette commande va lancer le modèle llama2. Vous allez pouvoir interagir avec. Ainsi vous pouvez par exemple lui demander de vous écrire un poème en imitant le style de Paul Verlaine

LLama2 est le modèle de base. Nous pouvons aller plus loin en utilisant des modèles plus spécifiques. Ollama supporte une liste de modèles open source. Ces modèles ont pour base LLaMa. Vous pouvez les utiliser en faisant un pull comme ceci:

ollama pull codeup #codeup étant un modèle spécialement entrainé pour générer du code
exemple d’utilisation du modèle codeup pour générer une fonction de tirage sous python

Il est très simple comme vous pouvez le voir de jouer avec votre propre LLM sur votre machine. Avec Ollama vous avez une liste variée de modèles optimisés pour la plateforme. Vous pouvez aller plus loin avec hugginface qui est une plateforme pour créer, éditer ou partager des modèles d’IA génératives. Vous pouvez y trouver un nombre incroyables de modèles avec des caractéristiques spécifiques pour vos besoins. Je vous invite à explorer la documentation de Ollama pour comprendre toutes les possibilités qu’offre ce framework.

Liens utiles:

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *