Ça fait quelques semaines qu’OpenAI a publié un nouveau modèle open source. Le premier depuis GPT-2 ça dénote un peu avec l’orientation qu’ils avaient prise. La promesse sur le papier (pour ceux qui ont les capacités de calculs) est alléchante : du 100 % en local qui offre des performances comparables à GPT-4.
Quand j’ai mis Hoarder sur mon serveur, je lui ai joint les services d’Ollama pour booster un peu l’analyse des favoris. Je me suis dit quoi de mieux cette fois-ci que d’ajouter ce nouveau modèle pour voir ce que ça donnerait. Comme ça fait un moment, j’en profite pour faire un pseudo tuto et introduire un sujet pour plus tard… n8n.
N’ayant pas de serveur cloud avec un GPU (j’aurais pu prendre un Mac Mini à l’heure pour l’occasion du test j’avoue). J’ai fait l’essai en local sur mon Macbook. Pour avoir testé également sur le UM690 et via mes PC de jeux, du moment qu’on a de la mémoire, on peut faire pas mal de choses.
En soit, rien de bien compliqué, que ça soit en local ou sous Docker, Ollama s’installe facilement. Sous réserve d’un peu de stockage et d’un débit réseau suffisant en quelques minutes, avoir GPT-OSS qui tourne est l’affaire d’une commande :
ollama run gpt-oss:latest
Par défaut, l’alias latest donne la version 20B la seule en mesure de tourner en local. Ensuite, on est libre de jouer avec le prompt.
>>> écris moi un article sur la faim dans le monde
Et hop, une réponse générée localement par GPT-OSS apparait à l’écran.
En alternative sous Windows, LM Studio fait le job, même si llama.cpp offrira quelque chose d’un peu plus rapide. Sous Linux et MacOS, pas besoin de passer par Docker, autant avoir Ollama en local. Sur un serveur sur lequel tout est dockerisé, cela fait sens que Ollama le soit aussi, surtout sans GPU dédié. Si on en revient au cœur du sujet, sur le Mac M3, GPT-OSS 20b est fluide, la machine ventile et n’est guère utilisable pour autre chose. Mais c’est fluide entre 40 et 80 tokens par seconde soit dans le niveau de ChatGPT mais sans aucune dépendance au cloud.
Comment aller plus loin et s’approcher d’un vrai agent intéractif
La suite est de faire communiquer un N8N sous Docker avec notre modèle pour imaginer avoir des agents locaux qui ne coutent pas un centime.
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
On switch vers un navigateur
http://localhost:5678
La première connexion demande de créer un compte. Ensuite, on peut accéder au tableau de bord. Il faut penser à faire un volume pour la persistance des données au-delà du test. À partir de là, pour passer la suite, on ferme la session ollama pour réouvrir ce dernier en mode serveur/api.
ollama serve
La réponse en retour est simple :
Listening on 127.0.0.1
Ollama attend maintenant les requêtes et la fenêtre courante permettra de voir ce qui se passe.
Pour l’occasion de mon test (sans GPT-OSS du coup, mais avec gemma-2b) j’ai cette configuration Ollama sous docker-compose :
ollama: container_name: ollama image: ollama/ollama:latest restart: unless-stopped volumes: - ollama_data:/root/.ollama ports: - "11434:11434" environment: - OLLAMA_HOST=0.0.0.0 - OLLAMA_NUM_THREADS=2 deploy: resources: limits: memory: 2G cpus: '2' labels: - "traefik.enable=true" - "traefik.http.routers.ollama.rule=Host(`ollama.uneviedetech.fr`)" - "traefik.http.services.ollama.loadbalancer.server.port=11434"
Si on retourne au navigateur, dans n8n, on va créer un nouveau workflow :
- Avec un noeud Trigger manuel
- Puis un LLM Chain Node → Ollama Chat Model
Par défaut, la configuration des identifiants se limite à passer l’URL : http://host.docker.internal:11434
On sélectionne le modèle et on ajoute un prompt de test, par exemple : écris-moi un article sur la faim dans le monde en 200 mots
On exécute le nœud et on obtient directement la réponse dans n8n. Pour un fonctionnement plus proche d’un chat agent public, on peut améliorer les choses plus proprement.
- Avec un nœud Chat Trigger
- Puis un Agent Node → branché sur le Ollama Chat Model précédent
- Ajouter des outils (comme « Think » et « Mémoire » ou fonctions personnalisées si on le souhaite plus tard)
- Puis on profite de l’invite de chat en bas de la fenêtre n8n pour envoyer notre demande
Et paf, voilà comment on vient d’obtenir un véritable agent conversationnel automatisé, le tout en local. Je peux parler des avantages, confidentialité, indépendance, mais surtout… le plaisir de pouvoir créer et prototyper en toute liberté des outils IA pour soi sans ne rien devoir à personne.
Au final, est-ce utilisable ?
La vitesse de génération, elle, varie par contre très largement. Sur un CPU (le 6800H par exemple) on va être autour de 0,3 Token par seconde en génération et autant dire que c’est interminable. La 680M qui va avec n’a pas assez de Vram donc elle n’accélère que peu le traitement ici. Par contre, sur un modèle plus léger qui reste dans les 4 Go de Vram, elle fera toujours 4 à 5 fois mieux que le CPU seul. Ce qui confirme l’intérêt des iGPU mais on sera loin de la pertinence de GPT-OSS.
Par comparaison, un M1 Pro 16 Go est à 30 tokens par seconde sur GPT-OSS, pour un énorme texte ou une grosse conversation la latence est perceptible. Pour un usage à la volée, avec plusieurs utilisateurs, investir dans un vieux Mac de 2020 peut s’avérer plus rentable que payer plusieurs abonnements.