Believemy logo purple

Créer un LLM personnalisé avec Ollama en 2 minutes

Découvrez Ollama, exécutez des modèles de langage LLMs localement en toute confidentialité et personnalisez LLama facilement sur votre appareil !
Mis à jour le 3 décembre 2024
Believemy logo

L'intelligence artificielle générative est une véritable préoccupation et un enjeu stratégique à la fois pour les entreprises mais aussi pour les entités gouvernementales.

Avec l'arrivée de ChatGPT, de nombreuses solutions ont vu le jour : Gemini ou encore Mistral par exemple.

Le problème vient du fait :

  • que l'accès à ces services peut engendrer des coûts très élevés en cas d'utilisation assez intensive ;
  • qu'on ne sait pas ce que ces services font de nos données personnelles ;
  • que nos données transitent forcément par une connexion internet ;
  • et que nous sommes obligés de subir les pannes qui se produisent sur ces services.

Heureusement, une alternative existe pour pallier à ces problèmes : Ollama.

Page d'accueil d'Ollama
Page d'accueil d'Ollama

 

C'est quoi Ollama ?

Ollama est un projet relativement récent, né de la volonté de simplifier l’utilisation des modèles de langage (qu'on appelle partout LLMs pour Large Language Model) en permettant leur exécution directement sur des machines locales, plutôt que de les héberger sur des serveurs cloud.

L’idée derrière Ollama est de rendre les modèles de langage plus accessibles aux développeurs tout en respectant les préoccupations croissantes liées à la confidentialité des données.

Si vous connaissez Docker, dites-vous qu'il s'agit du Docker des LLMs. Si ça ne vous dit rien, il s'agit d'un espace sur votre ordinateur qui est en "zone de quarantaine". Rien ne peut entrer, et rien ne peut sortir de cet espace.

On retrouve chez Ollama des commandes qui laissent beaucoup penser à celles de Docker : pull et run par exemple.

Grâce à Ollama, toutes vos données sont stockées en local (donc sur votre ordinateur). Vous pourrez également ajuster les modèles de langage facilement selon vos besoins.

Adieu les abonnements aux services en ligne ! 😁

 

Installer Ollama

Pour installer Ollama, commençons par elle sur le site officiel.

Il vous suffit de cliquer sur le gros bouton "Download". Vous ne devriez pas avoir de mal à le trouver. 😉

Choissisez votre système d'exploitation et c'est parti !

Cliquez sur votre système d'exploitation
Cliquez sur votre système d'exploitation

 

Si vous êtes sur Mac ou Windows

Un fichier devrait maintenant se télécharger sur votre ordinateur : ouvrez-le et installer ce qu'on vous demande.

Si tout est bon voici ce que vous devriez voir.

Capture d'écran du message de bienvenue de Ollama sur Mac
Capture d'écran du message de bienvenue de Ollama sur Mac

Un message vous demandera d'installer une commande > Ollama cliquez juste sur Install.

Bravo ! Vous avez installé Ollama !

 

Si vous êtes sur Linux

Ouvrez votre terminal et tapez :

CONSOLE
curl -fsSL https://ollama.com/install.sh | sh

Vous devriez désormais pouvoir utiliser la commande Ollama !

 

Lancer une instance Ollama

Maintenant que Ollama est installé sur notre ordinateur, démarrons une première instance !

Avant d'aller plus loin, vérifiez bien que la commande suivante vous renvoie le numéro de version.

CONSOLE
ollama --version

Pour démarrer notre première instance, il faut déjà comprendre ce que nous allons faire.

Nous allons commencer par utiliser le modèle de langage de Facebook : Llama dans sa version 3.1 (la toute dernière version).

Si cela ne vous dit rien, ce modèle de langage est tout simplement le nec plus ultra des modèles de langage, classé même devant ChatGPT d'OpenAI dans plusieurs classements selon ses configurations. D'ailleurs, il est en open-source.

Performances entre Llama 3.1 (405 milliards de paramètres) et GPT4
Performances entre Llama 3.1 (405 milliards de paramètres) et GPT4 (source)

Maintenant qu'on a toute votre attention : c'est parti. 🙃

 

Lancer le modèle Llama 3.1

Pour lancer un modèle de language, nous allons utilise la commande suivante :

CONSOLE
ollama run <nom du modèle>

Dans <nom du modèle> vous avez la possibilité de choisir dans cette immense liste de modèles de language pris en charge par Ollama.

Nous allons travailler avec Llama3.1 voici ce que nous allons taper dans notre terminal :

CONSOLE
ollama run llama3.1

Il existe plusieurs versions du modèle Llama3.1 :

  • llama3.1 - Correspond à la version classique du modèle Llama (8 milliards de paramètres)
  • llama3.1:70b - Correspond à la version avec 70 milliards de paramètres
  • llama3.1:405b - Correspond à la version avec 405 milliards de paramètres 🤪

Il ne faut surtout pas télécharger la version avec 405 milliards de paramètres sauf si vous avez un très bon ordinateur avec 231gb de ram ainsi que l'équivalant de 4 cartes graphiques 4090.

Le téléchargement du modèle Llama3.1 est normalement maintenant réalisé après quelques minutes si vous avez la fibre optique. Le modèle pèse 4.7GB.

Notre modèle est désormais prêt à répondre à nos demandes
Notre modèle est désormais prêt à répondre à nos demandes

 

Utiliser le modèle Llama 3.1

Maintenant que notre modèle est prêt à nous répondre, tentons de lui poser une question !

CONSOLE
>>> Quelle est la réponse du mystère de la vie ?
La question "la réponse au mystère de la vie" est profondément complexe et sujet à interprétations diverses, en fonction des cadres philosophiques, scientifiques et spirituels. Cependant, plusieurs perspectives sont couramment discutées...

J'espérais 42 comme message, tant pis !

Pour arrêter notre modèle, vous avez le choix :

  • lui dire au revoir /bye
  • avec Ctrl + d

 

Utiliser le modèle Llama 3.1 via une API REST

Il est aussi possible d'utiliser le modèle Llama 3.1 avec une API directement. Pour cela, il nous faut mettre en place dans une première étape notre serveur local : ce que nous allons voir nous permettra aussi de créer votre modèle directement sur votre serveur de production.

Lancer le serveur Ollama

Pour lancer notre serveur, il suffit de taper la commande suivante :

CONSOLE
ollama serve

Votre serveur devrait désormais être ouvert avec tout un tas de messages vous présentant quelques informations que vous pouvez choisir totalement d'ignorer.

Si vous avez cette erreur :

CONSOLE
Error: listen tcp 127.0.0.1:11434: bind: address already in use

Ceci signifie que votre serveur est déjà ouvert. Si vous avez installé Ollama sur Mac ou sur Windows, c'est tout à fait normal : son installation ouvre automatiquement Ollama ! Il vous suffit d'aller dans la barre des tâches à la recherche de l'icône Ollama et de cliquer sur "Stop ollama".

Si vous êtes sur Linux, vous pouvez aussi arrêter Ollama de cette façon avec votre terminal.

CONSOLE
systemctl stop ollama

 

Utiliser l'API REST pour Ollama

Maintenant ouvrons un nouveau terminal est utilisons l'outil curl pour envoyer une requête sur notre nouveau serveur Ollama :

CONSOLE
curl -X POST http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "Salut comment que ça va ?",
  "stream": false
}'

Pour notre requête nous faisons une demande sur une adresse qui a été générée par notre serveur avec trois paramètres bien précis à l'intérieur :

  • model - Notre modèle à utiliser
  • prompt - Notre demande
  • stream - Quand cette propriété est sur true nous recevons uniquement un objet avec notre réponse. Si nous mettons sur false nous recevons à la place un objet avec des informations sur les contextes qui ont été utilisé par notre modèle en plus du message de celui-ci.

Vous devriez avoir un objet sous format JSON que vous pourrez utiliser dans vos projets.

Exemple d'une utilisateur sur notre tout nouveau serveur Ollama
Exemple d'une utilisateur sur notre tout nouveau serveur Ollama

 

Personnaliser Llama 3.1 à nos besoins

Vous pensiez que c'était tout ? Allons ! Pas avec Believemy. 😗

Nous allons désormais apprendre à personnaliser le modèle Llama à nos besoins. Pour ce faire rien de plus simple surtout si vous connaissez déjà Docker.

Créer un fichier Modelfile

Afin d'arriver enfin à personnaliser notre modèle de language, nous allons devoir créer un fichier Modelfile qui ressemble beaucoup aux fichiers Dockerfile par exemple.

Ouvrez donc votre éditeur de code habituel ou si vous ne savez pas ce que c'est, ouvrez bloc-note (je n'aurai jamais pensé dire ça un jour sur Believemy 👀).

Créons le fichier Modelfile (sans extension) :

CONSOLE
FROM llama3

PARAMETER temperature 3

SYSTEM """
You respond in french. Behave like if you were Steve Jobs and always say at the end of yours messages "Steve Jobs."
"""

Plusieurs explications :

  • FROM - notre modèle qu'on souhaite utiliser
  • PARAMETER temperature - plus la valeur est élevée, plus le modèle de language sera cohérent. Plus la valeur est faible (disons 1 par exemple) plus elle sera créative et totalement imprédictible.
  • SYSTEM - On place ici des choses qu'on souhaite que le modèle de language connaisse pour chaque message qu'on lui donnera. En quelque sorte, c'est comme si nous faisions son éducation. ✨

Pour en savoir encore plus sur la personnalisation d'un modèle de language par Ollama vous pouvez aller sur cette documentation.

 

Créer un nouveau modèle

Nous pouvons désormais ajouter notre propre modèle (LLama version personnalisé).

CONSOLE
ollama create steve -f ./Modelfile

Voici que nous faisons :

  • create - On crée un nouveau modèle
  • steve - On lui donne son nom (choisissez celui que vous préférez)
  • -f - On indique qu'on donnera une adresse vers un fichier
  • ./Modelfile - On donne l'adresse

Bien entendu vous remplacerez avec le chemin vers votre fichier pour que cette commande puisse fonctionner.

Il est tout à fait normal que cette commande soit un peu longue puisque nous téléchargeons de nouveau notre modèle de langage en le personnalisant : on ajoute une surcouche.

Notre nouveau modèle Ollama est enfin prêt
Notre nouveau modèle Ollama est enfin prêt

 

Utiliser un modèle Ollama personnalisé

Nous pouvons enfin utiliser notre nouveau modèle ! Vous vous souvenez de la commande n'est-ce pas ? 😉

CONSOLE
ollama run steve

Ici mon modèle s'appelle steve. Quand vous créez votre propre modèle, vous devez préciser le chemin vers votre fichier personnalisé. Pensez bien à utiliser votre nom personnalisé, et non LLama.

Exemple d'une réponse avec notre tout nouveau modèle Ollama basé sur Llama3.1
Exemple d'une réponse avec notre tout nouveau modèle Ollama basé sur Llama3.1

N'est-ce que pas incroyable ? 🥲

Il est également possible d'utiliser l'API REST.

CONSOLE
curl -X POST http://localhost:11434/api/generate -d '{
  "model": "steve",
  "prompt": "Salut comment que ça va ?",
  "stream": false
}'

 

Conclusion

L'univers des possibles est gigantesque ! Amusez-vous bien avec Ollama ! Cet mini-formation tutoriel a été très agréable a créer pour vous, si vous l'avez apprécié, n'hésitez pas à le partager sur vos réseaux et à tagguer Believemy ou moi-même pour qu'on puisse commenter votre partage !

En attendant, si vous voulez discuter LLM, je vous attends sur notre salon Discord privé.

Peace ! 😉

Steve Jobs. (🙃)

Catégorie : Développement
Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

Essayez gratuitement

Que vous essayiez de scaler votre start-up, de créer votre premier site internet ou de vous reconvertir en tant que développeur, Believemy est votre nouvelle maison. Rejoignez-nous, évoluez et construisons ensemble votre projet.

Believemy is with anyone