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 :
-
- Ollama est un peu l'outil par défaut pour tester. Pour une interface “graphique”, Hollama offre une sorte de page web locale.
- Autres ?
Ma machine, clairement vite limitée pour ces tests :
- 16Go de RAM
- GPU : NVIDIA GeForce GTX 970
- CPU : AMD Ryzen 5 1600
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 :
- Uncensored désigne les modèles où il n'y a pas de filtres sur la violence et le porn. Et sans doute des sujets creepy.
- Sur certains modèles, on a des terminaisons comme « Q6_K_L », « Q6_K_S », etc.
- Q + chiffre indique le nombre de bits utilisés pour la quantification (Q6 = 6 bits par poids). Plus le chiffre est élevé, plus la précision est grande, mais cela demande aussi plus de ressources pour le faire tourner.
- K pour le mode de quantification « K » qui permet différentes granularités à l’intérieur du modèle, améliorant le rapport taille/qualité.
- S(mall) : compresse davantage le modèle (plus rapide, prend moins de place, mais un peu moins précis).
- M(edium) : équilibre taille et qualité.
- L(arge) : plus de précision pour de meilleurs résultats, mais plus lourd.
- Dans mon cas, Q4_K_M semblerait pertinent (à tester).
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
.