Aller au contenu
en ce moment

Outils d'IA

basal-omni en local : Ollama, llama.cpp et Mac

J’ai lancé basal-omni-1.0-mini sur une RTX 4090 : 42 bonnes réponses sur 47, avec une médiane de 137 ms par décision.

Par 8 min de lecture

👁 123 lectures

basal-omni est un modèle de décision polonais créé par Remek Kinas : il ne rédige pas de texte, mais choisit une réponse dans une liste et indique son degré de confiance. Depuis le 19 octobre, ses versions les plus petites peuvent fonctionner sans carte graphique de serveur, avec Ollama, llama.cpp ou sur Mac. Je l’ai installé sur ma RTX 4090 avec la version mini au format GGUF, puis je lui ai soumis le même jeu de tickets en polonais que celui utilisé auparavant pour tester Jev et d’autres modèles de décision. Voici la procédure qui a fonctionné chez moi, les besoins matériels et les résultats.

En bref (test du 19.10.2026)

  • basal-omni-1.0-mini Q8_0 : fichier de 7,9 Go, 5,1 Go de mémoire vidéo utilisés dans Ollama.
  • Service : 42 tickets polonais correctement classés sur 47 ; urgence : 47 sur 50 ; choix d’outil : 10 sur 10.
  • Médiane de 137 ms par décision ; test complet (60 requêtes) en 20 secondes.
  • Ollama seul ne suffit pas : seul le moteur basal-serve renvoie des réponses avec leurs probabilités.
  • Sur Mac : version mini MLX (8,6 Go) ou GGUF Q8_0 sur un Mac doté de 16 Go de mémoire.

Quelle version choisir selon votre matériel ?

Tous les fichiers sont disponibles sur le compte Hugging Face de Remek, sous licence Apache-2.0. Les versions GGUF et MLX prennent uniquement en charge le texte, pas les images ni l’audio.

Version Fichier Taille Compatibilité
mini GGUF Q8_0 basal-omni-1.0-mini-GGUF 7,9 Go Ollama, llama.cpp, carte NVIDIA, Mac, CPU
mini GGUF Q6_K basal-omni-1.0-mini-GGUF 6,2 Go Idem, avec une fidélité légèrement moindre par rapport à l’original
max GGUF Q8_0 / Q6_K basal-omni-1.0-max-GGUF 12,7 / 9,8 Go Ollama, llama.cpp
mini / max MLX 8 bits -MLX 8,6 / 13,6 Go Mac avec Apple Silicon
1.1-max MLX 8 bits basal-omni-1.1-max-MLX 13,6 Go Mac avec Apple Silicon
mini / max FP8 -FP8 12 / 14 Go vLLM sur serveur NVIDIA
mini / max / ultra bf16 Poids d’origine Environ 16 / 24 / 62 Go de mémoire vidéo PyTorch, version complète avec image et audio

L’auteur n’a publié que les quantifications Q8_0 et Q6_K, les seules à avoir passé son test de fidélité par rapport à l’original. Sur 10 606 décisions proposant de 2 à 10 options, Q8_0 choisit la même réponse que la version bf16 dans 98,7 % des cas, contre 97,1 % pour Q6_K. Q5_K_M et Q4_K_M n’ont pas été retenues. La plus grande version, ultra (31 milliards de paramètres), n’a pas de fichier GGUF fourni par l’auteur.

Installation sur Windows avec une carte NVIDIA et Ollama

Voici la procédure que j’ai suivie le 19 octobre sous Windows 11, avec Ollama 0.40.5 (version 0.35 minimum requise) et Python 3.12 installé via uv.

  1. Environnement et moteur basal 2.2. En mode Ollama, le calcul est effectué par Ollama sur la carte graphique ; la version de PyTorch pour processeur m’a donc suffi :
    uv venv --python 3.12 env
    uv pip install --python env/Scripts/python.exe torch --index-url https://download.pytorch.org/whl/cpu
    uv pip install --python env/Scripts/python.exe "basal @ https://github.com/rkinas/basal/archive/refs/tags/v2.2.0.tar.gz"
  2. Téléchargement du modèle (environ 8 Go). Il faut le fichier Q8_0 et quelques petits fichiers associés : Modelfile, tokenizer, calibration et basal.json. Je les ai téléchargés un par un, mais l’outil hf, installé avec le moteur, simplifie l’opération :
    hf download Remek/basal-omni-1.0-mini-GGUF --local-dir basal-omni-1.0-mini-GGUF --exclude "*Q6_K*"
  3. Enregistrement dans Ollama à l’aide du fichier Modelfile fourni dans le dépôt :
    cd basal-omni-1.0-mini-GGUF
    ollama create basal-omni-1.0-mini:q8_0 -f Modelfile.Q8_0
    cd ..
  4. Démarrage du serveur basal avant Ollama :
    basal-serve --model ./basal-omni-1.0-mini-GGUF --mode ollama --ollama-model basal-omni-1.0-mini:q8_0 --port 8000
  5. Première requête (Python, bibliothèque standard uniquement). Le format est le même que celui de l’API Jev, avec le point de terminaison /v1/systemone. Le texte d’exemple ci-dessous est une traduction du matériel de test polonais d’origine ; le test, lui, a été effectué en polonais :
    import json, urllib.request
    body = {"state": "Depuis 9 h, le tableau de bord ne fonctionne plus, erreur 500, toute l’équipe commerciale est à l’arrêt.",
      "questions": {
        "dzial": {"type": "choice", "instructions": "À quel service faut-il transmettre ce ticket ?",
          "criteria": {"platnosci": "paiements et factures", "awaria": "problème technique, quelque chose ne fonctionne pas",
                       "sprzedaz": "questions avant l’achat"}},
        "pilne": {"type": "noul", "instructions": "Faut-il intervenir aujourd’hui ?",
          "criteria": {"true": "oui", "false": "non"}}}}
    req = urllib.request.Request("http://127.0.0.1:8000/v1/systemone",
      json.dumps(body, ensure_ascii=False).encode("utf-8"),
      {"Content-Type": "application/json; charset=utf-8"})
    print(json.load(urllib.request.urlopen(req))["answers"])

Vous obtenez l’option choisie, la probabilité de chaque option et le degré de confiance (confidence). Pour une question oui/non, le résultat donne la probabilité d’une réponse « oui ». Voici deux pièges que j’ai rencontrés ou que l’auteur signale :

  • Les caractères polonais dans l’invite de commandes Windows. Une requête envoyée avec curl depuis Git Bash a échoué à cause d’une erreur de décodage UTF-8. Depuis Python, avec un encodage explicite, tout fonctionne.
  • Une simple commande ollama run ne suffit pas. Le modèle renvoie alors uniquement du texte libre. Les réponses structurées avec leurs probabilités sont calculées par basal-serve, qui lit les probabilités des codes d’option à partir d’un seul jeton.
  • Limites du mode Ollama : 20 options maximum par question et 4096 jetons par requête. Pour les documents plus longs et jusqu’à 255 options, l’auteur recommande le mode llama.cpp.

Utiliser basal avec llama.cpp ou sur Mac

  • llama.cpp dans le processus : installez le module complémentaire basal[gguf] (llama-cpp-python 0.3.36 ou version ultérieure), puis lancez basal-serve --model ./basal-omni-1.0-mini-GGUF --mode gguf --gguf basal-omni-1.0-mini-GGUF/basal-omni-1.0-mini-Q8_0.gguf --port 8000. Sur une carte NVIDIA, llama-cpp-python doit être compilé avec la prise en charge de CUDA. Je n’ai pas testé cette configuration.
  • Mac avec Apple Silicon : utilisez le mode --mode mlx avec le module complémentaire basal[mlx] et le dépôt -MLX, ou passez par Metal avec GGUF. Selon l’auteur, mini Q8_0 fonctionne sur un Mac doté de 16 Go de mémoire. Sur M4 Pro, la version MLX mini atteint 0,73 décision par seconde avec 8 requêtes simultanées et 173 ms pour une requête isolée. Je n’ai pas non plus vérifié ces résultats, car je ne possède pas de Mac.

Mon test : 50 tickets en polonais et 10 choix d’outils

J’ai utilisé le jeu de test du 13 octobre, qui m’avait servi à évaluer les modèles du classement Artificial Analysis : 50 tickets adressés à une boutique en ligne (7 services et le niveau d’urgence), ainsi que 10 conversations où l’assistant doit décider s’il répond lui-même, appelle un outil, demande des précisions ou refuse. Les questions et les réponses attendues sont identiques ; je n’ai rien modifié pour basal. Comme lors du test précédent, j’évalue le service sur 47 tickets : trois éléments du corrigé étaient discutables (voir le guide Modèles de décision en IA). basal s’est également trompé sur ces trois cas, comme les 11 modèles testés le 13 octobre.

Modèle Service (sur 47) Urgence (sur 50) Outils (sur 10)
basal-omni-1.0-mini Q8_0 (local, 19.10) 42 47 10
Jev 1.13 (API, 13.10) 41 46 10
Microsoft-Decision-1 (API, 13.10) 44 42 10
Decider v1.1 27B (API, 13.10) 44 48 10
d1 de Liquid AI (API, 13.10) 42 43 10
Claude Haiku 5.5, LLM généraliste (API, 13.10) 45 46 10
  • Le plus petit basal se situe dans le milieu du classement des grands modèles de décision accessibles par API. Il classe correctement un ticket de plus que Jev 1.13 et deux de moins que Microsoft-Decision-1 et Decider. Il ne compte pourtant que 4 milliards de paramètres et fonctionne sur une carte graphique domestique.
  • Très bon résultat pour l’urgence : 47 sur 50, seul Decider et GPT-6 Luna Decisions font mieux, avec 48 chacun. basal n’a pas considéré comme urgents la surcharge triple de la carte graphique (probabilité de 0,05) ni la machine à café qui produisait des étincelles (0,34), et a signalé à tort un spam sur les cryptomonnaies.
  • Erreurs de classement par service : gâteau de mariage avec le statut « en préparation » (ventes au lieu de livraison), machine à café qui produit des étincelles (panne au lieu de réclamation), offre de bases de données d’adresses e-mail (ventes au lieu de spam), demande de remboursement pour une commande annulée et code promotionnel qui ne fonctionne pas.
  • Vérifiez le degré de confiance sur vos propres données. Pour une confiance d’au moins 0,9, basal a donné la bonne réponse dans 35 cas sur 40, contre 37 sur 39 pour Jev. Parmi les erreurs jugées fiables figurent l’offre de bases de données d’adresses e-mail (0,95) et le code promotionnel qui ne fonctionne pas (0,97). Le nouvel outil basal-calibrate permet d’ajuster les seuils à partir de vos exemples.
  • Vitesse : médiane de 137 ms par décision ; première requête en 12 s (chargement du modèle sur la carte graphique). J’ai mesuré les modèles par API depuis la Pologne le 13 octobre, réseau compris (361 ms pour Jev) : la comparaison n’est donc pas directe. En local, vous ne payez pas de jetons et vos données ne quittent pas votre ordinateur.

Le test a mobilisé la carte graphique pendant 20 secondes. J’ai effectué une seule série, dans un seul ordre d’options, avec la calibration incluse dans le fichier GGUF. Après le test, j’ai libéré la mémoire occupée par le modèle.

Dans quels cas utiliser basal en local ?

  • Les données ne doivent pas quitter votre organisation : tickets clients, documents, e-mails.
  • Vous avez de nombreuses décisions à prendre, chacune consistant à choisir dans une liste : service, urgence, sujet, validation d’un texte ou outil à appeler.
  • Vous disposez de quelques centaines d’exemples annotés pour calibrer les seuils et ne traiter automatiquement que les décisions suffisamment fiables.

J’explique l’origine du modèle et son résultat dans le classement dans cet article sur la première place de basal-omni parmi les modèles ouverts de JevBench. Retrouvez d’autres modèles exécutables sur votre propre machine dans notre rubrique IA locale.

Kinetyra

// read next

More on this from PROMPTIF

Promptif

Promptif

ADMINISTRATOR
à lire ensuiteMidnight Mimosa : comment repérer un téléphone Android infectéguidesMidnight Mimosa : comment repérer un téléphone Android infectéUn malware peut être installé sur certains téléphones Android avant leur vente. Voici comment repérer les signes et quoi faire si votre appareil est concerné.

Les plus lus

  1. 1Applications de génération vidéo IA : Kling, PixVerse et autres
  2. 2Calendrier IA 2026 : lancements de modèles, conférences et IA Act
  3. 3Affaire Thélyson Orélien : j’ai testé le roman avec trois détecteurs d’IA. Même paragraphe : 100 %, 85 % et 0 %
// plan du site

Cette page dans d’autres langues9

promptif en chiffres 0textes dans les archives0actus des 7 derniers jours0modèles vidéo dans l'observatoire
🎬 Studio Vidéo IA : Higgsfield AI DoP Presets Caméra & Calculateur • Code Promo Higgsfield AI -50% • Higgsfield vs Kling AI
× ‹ agrandissement ›