Créer un LLM personnalisé avec Ollama en 2 minutes
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.

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
etrun
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 !

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.

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 :
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.
CONSOLEollama --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.

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 :
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 :
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ètresllama3.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.

Utiliser le modèle Llama 3.1
Maintenant que notre modèle est prêt à nous répondre, tentons de lui poser une question !
>>> 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 :
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 :
CONSOLEError: 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.
CONSOLEsystemctl 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 :
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 à utiliserprompt
- Notre demandestream
- Quand cette propriété est surtrue
nous recevons uniquement un objet avec notre réponse. Si nous mettons surfalse
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.

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) :
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 utiliserPARAMETER 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é).
ollama create steve -f ./Modelfile
Voici que nous faisons :
create
- On crée un nouveau modèlesteve
- 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.

Utiliser un modèle Ollama personnalisé
Nous pouvons enfin utiliser notre nouveau modèle ! Vous vous souvenez de la commande n'est-ce pas ? 😉
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.

N'est-ce que pas incroyable ? 🥲
Il est également possible d'utiliser l'API REST.
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. (🙃)