Table des matières

Jouer avec l'IA localement

Ouais, c'est mal, ça crame des forêts, etc. J'ai honte.

Installer localement ce genre d'outil permet de faire tourner un modèle de langage à la maison. Donc on crame “sa” forêt. Ou on peut le mettre sur un serveur alimenté en solaire. Ça ne règle pas tous les problèmes éthiques que posent ce genre d'outil, loin de là, mais je veux jouer avec, donc : zut.

Il y a plusieurs trucs :

Ma machine, clairement vite limitée pour ces tests :

Ollama

Ollama est un “serveur”, sur lequel il faut télécharger des modèles (attention, ça peut être énorme). On va dialoguer avec via un client ensuite.

Une fois Ollama installé, il faut d'abord le démarrer :

ollama start

On peut faire un service si on le laisse tourner (cf doc officielle).

Télécharger des modèles

Liste des modèles (courte)

La liste est sur la doc, mais je la remet ici triée par le “poids” du modèle.

Modèles Paramètres (en B) Taille Commande
Moondream 2 1,4 829MB ollama run moondream
Gemma 2 2 1.6GB ollama run gemma2:2b
Phi 3 Mini 3,8 2.3GB ollama run phi3
Mistral 7 4.1GB ollama run mistral
Neural Chat 7 4.1GB ollama run neural-chat
Starling 7 4.1GB ollama run starling-lm
Code Llama 7 3.8GB ollama run codellama
Llama 2 Uncensored 7 3.8GB ollama run llama2-uncensored
LLaVA 7 4.5GB ollama run llava
Llama 3.1 8 4.7GB ollama run llama3.1
Gemma 2 9 5.5GB ollama run gemma2
Solar 10,7 6.1GB ollama run solar
Phi 3 Medium 14 7.9GB ollama run phi3:medium
Gemma 2 27 16GB ollama run gemma2:27b
Llama 3.1 70 40GB ollama run llama3.1:70b
Llama 3.1 405 231GB ollama run llama3.1:405b

Parce que “Vous devez disposer d'au moins 8 Go de RAM disponible pour exécuter les modèles 7B, 16 Go pour exécuter les modèles 13B et 32 Go pour exécuter les modèles 33B.”. Donc suivant la machine, faut éviter de voir trop gros…

Il y a aussi moyen de récupérer des modèles ailleurs, mais il faut alors savoir ce qu'on cherche.

Pour les aspects “chat créatif”, l'opinion ici et là est que Gemma 3 (même en 4B) et Mistral 7B sont assez bons. Phi-3 est plus léger et polyvalent mais moins riche sur ces aspects.

CodeLlama est plus spécifiquement orienté assistance au code.

Il y a aussi les modèles Deepseek. J'ai testé le 1.5B et il est très inventif en langue française, dans le genre absurde…

Un peu de vocabulaire :

En direct

Dans un autre terminal, on peut donner des commandes à Ollama, dont celle permettant de télécharger des modèles depuis leur plateforme.

va télécharger un modèle.

Donc c'est parti pour

ollama run codellama

Ça ne charge pas toujours derrière une ligne adsl… Avec la fibre par contre ça va bien.

Téléchargé ailleurs

Si on ne veut pas installer Ollama “ailleurs”, et juste récupérer des modèles sur une clé usb dans un coin avec une bonne connexion, il faut viser les format GGUF.

On copie les GGUF dans ~/.ollama/models/, puis on va donner quelques variables dans un fichier texte (exemple sur phi-3). Renseigner la température rendrait les réponses moins aléatoires.

~/.ollama/models/phi3-modelfile
FROM ~/.ollama/models/phi-3.Q4_K_M.gguf
PARAMETER temperature 0.7
PARAMETER num_ctx 2048

On ajoute ensuite le modèle dans Ollama :

ollama create phi3 -f phi3-modelfile

Si on utilise le même nom de modèle (phi3 ici), cela le met à jour.

Dossiers d'Ollama

/usr/local/bin/ollama
/usr/local/lib/ollama/
/usr/share/ollama/
/home/MOI/.ollama

Les modèles sont stockés dans /home/MOI/.ollama/models.

Commandes de base

Lance le serveur manuellement :

ollama serve

Lister le modèles chargés localement :

ollama list

Supprimer un modèle (les sha du blob) :

ollama rm nom_du_modele

Retour sur les modèles

Étant donné mon ordi, je suis limitée aux modèles 7B, ce qui est “peu”. Peut-on avoir de bons résultats avec ça en français ? ça dépend vraiment des attentes.

Mistral-7B-Instruct-v0.3-Q4_K_M et Nous-Hermes-2-Mistral-7B-DPO.Q4_K_M font des réponses dans un français correct (le dernier me fait quelques mélanges à l'occasion quand même), et offrent une réponse avec une certaine cohérence. Les autres sont à jeter…

Pour le code, je n'ai pas encore testé, mais vu le niveau sur des demandes de recettes de cuisine ou de chansons (potables mais pas au top), je crains un peu ce que ça donnerait sur l'écriture de fonctions ; ça suffit sans doute pour trouver quelques hooks.

 Ce texte est placé sous licence CC0