Instructions to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0 # Run inference directly in the terminal: llama cli -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0 # Run inference directly in the terminal: llama cli -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Use Docker
docker model run hf.co/IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
- LM Studio
- Jan
- Ollama
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with Ollama:
ollama run hf.co/IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
- Unsloth Desktop
- Pi
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with Docker Model Runner:
docker model run hf.co/IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
- Lemonade
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Run and chat with the model
lemonade run user.ingenium-expert-lms-3b-instruct-gguf-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use IngeniumDL/ingenium-expert-lms-3b-instruct-gguf with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "IngeniumDL/ingenium-expert-lms-3b-instruct-gguf:Q8_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
language:
- fr
license: apache-2.0
base_model: mistralai/Ministral-3-3B-Instruct-2512-BF16
tags:
- moodle
- lms
- french
- grounded
- routing
- lora-merged
- gguf
- ollama
- cpu
Ingenium Expert LMS 3B Instruct — GGUF (Ollama, CPU)
Paquet de déploiement complet du candidat Ingenium Expert LMS 3B Instruct : routeur grounded fusionné LoRA sur mistralai/Ministral-3-3B-Instruct-2512-BF16, converti en GGUF texte et quantifié Q8_0, servi par Ollama sur CPU. Frère cadet du candidat 8B/GPU (IngeniumDL/ingenium-expert-lms-8b-instruct) : même produit, même harnais, même dataset — seuls le modèle de base et le moteur d'inférence changent.
Le modèle ne récite pas les procédures depuis ses poids : il comprend la demande et route vers un registre fermé ; le harnais fourni dans ce paquet rend ensuite la fiche canonique. Utiliser les poids seuls, sans le harnais, retire le garde de périmètre, la validation de schéma et le rendu canonique — voir « Utilisation directe » plus bas pour ce que cela signifie concrètement.
Déployer avec Docker Compose (recommandé)
Prérequis : Linux x86-64, Docker, Docker Compose. Aucun GPU requis.
hf download IngeniumDL/ingenium-expert-lms-3b-instruct-gguf --local-dir ingenium-3b-gguf
cd ingenium-3b-gguf
GGUF_PATH=./ingenium-expert-lms-3b-instruct-grounded-v0.1.0-Q8_0.gguf \
docker compose -f docker-compose.cpu.yml up --build --detach
Le premier démarrage construit l'image Ollama et crée le modèle à partir du GGUF (quelques dizaines de secondes). Le harnais attend qu'Ollama soit prêt avant de démarrer.
curl http://127.0.0.1:8080/health
curl -X POST http://127.0.0.1:8080/ask \
-H "Content-Type: application/json" \
-d '{
"question": "Comment créer un utilisateur dans Moodle ?",
"context": {
"moodle_release": "4.5.12 (Build: 20260608)",
"moodle_version_code": "2024100712",
"branch": "405",
"locale": "fr",
"theme": "boost",
"route_class": "admin_users",
"capabilities": {"moodle/user:create": true}
}
}'
Arrêt propre :
docker compose -f docker-compose.cpu.yml down
Seul le harnais est exposé (127.0.0.1:8080) ; Ollama reste sur le réseau interne du compose et n'est jamais joignable directement, comme pour le paquet 8B/vLLM.
CLI de test utilisateur
Un client Go (CLI-LLM/ingenium-cli, Linux x86-64 statique) permet de tester la chaîne réelle CLI → harnais → Ollama sans manipuler le JSON de l'API :
chmod +x CLI-LLM/ingenium-cli
./CLI-LLM/ingenium-cli --profile learner "Comment déposer mon devoir dans Moodle ?"
./CLI-LLM/ingenium-cli --profile admin "Comment créer un utilisateur dans Moodle ?"
Le profil par défaut est learner. Les profils admin, teacher, learner et guest simulent uniquement les capacités du contexte de test, pas un mécanisme d'authentification.
Utilisation directe avec Ollama (sans harnais)
Pour inspecter le modèle seul, sans le harnais :
ollama create ingenium-expert-lms-3b-instruct -f deploy/ollama/Modelfile.ingenium-3b
ollama run ingenium-expert-lms-3b-instruct
Le Modelfile fourni est requis, pas seulement recommandé : Ollama ne traduit pas automatiquement le chat_template.jinja Mistral embarqué dans le GGUF. Sans le TEMPLATE explicite du Modelfile, Ollama retombe sur un gabarit brut qui ignore la structure système/utilisateur attendue par le modèle et dégrade fortement la qualité des réponses (constaté empiriquement).
Appelé seul, le modèle répond par un objet JSON routing-v1 — un guide_id (ou module_ids), un scope/status et une confiance, jamais les étapes détaillées ni le contenu d'une formation :
{"scope":"IN_DOMAIN","domain":"MOODLE_USAGE","status":"ANSWER","guide_id":"core.admin.user.create","confidence":"high"}
Sans le harnais, rien ne garantit que guide_id existe réellement dans un registre de procédures, que des étapes affichées à l'utilisateur sont correctes, ni que les capacités requises sont respectées. C'est le rôle du harnais fourni dans ce paquet (harness/, src/, config/, schemas/, data/) de refermer ces garanties.
Mode JSON — limite connue. response_format: {"type": "json_object"} est accepté par l'API compatible OpenAI d'Ollama mais n'est pas un décodage contraint par grammaire comme sur vLLM : la validité JSON constatée (800/800 sur la campagne de qualification scellée) repose sur l'entraînement du modèle, pas sur une garantie structurelle du moteur.
Contenu du paquet
| Chemin | Rôle |
|---|---|
ingenium-expert-lms-3b-instruct-grounded-v0.1.0-Q8_0.gguf |
poids quantifiés Q8_0 (texte uniquement, tour vision exclue) |
deploy/ollama/Modelfile.ingenium-3b |
Modelfile Ollama (gabarit de chat, température, contexte) utilisé par le compose |
schemas/ |
contrats context-v1, procedure-v1, module-v1, routing-v1 et response-v2 |
config/guides-v1.json, config/module-registry-v1.json |
registres d'identifiants fermés |
config/capabilities-v1.json |
capacités Moodle acceptées dans le contexte |
config/routing-prompt-v1.txt |
system prompt envoyé au modèle par le harnais |
data/procedures/, data/modules/ |
contenu canonique rendu par le harnais |
harness/, src/ |
garde, correspondance catalogue, validation et rendu fail-closed |
docker/ollama/, docker-compose.cpu.yml |
image Ollama personnalisée et paquet de déploiement CPU |
CLI-LLM/ |
binaire Linux x86-64 et sources Go du client |
merge-report.json |
inventaire SHA-256 du modèle fusionné |
docs/creer-des-fiches.md |
procédure détaillée pour ajouter de nouvelles connaissances (procédures, formations) |
Entraînement et qualification
- base
mistralai/Ministral-3-3B-Instruct-2512-BF16, révisiond8d116d9345d21aa3df1b76bf8a9a1a29d0ced1e; - LoRA BF16 rang 32, alpha 64, dropout 0,05, longueur 2048, lot effectif 32, sur NVIDIA L40S ; arrêt anticipé à l'étape 80/100, meilleur checkpoint à l'étape 20 ;
- même dataset et mêmes 50 procédures / 7 modules que le candidat 8B ;
- fusionné, converti en GGUF texte avec
llama.cpp(convert_hf_to_gguf.pypuisllama-quantize … Q8_0) ; - qualifié sur les mêmes 800 cas scellés que le 8B, servi entièrement sur CPU (15 vCPU, sans GPU) : décision exacte 98,0 % (784/800), adversarial 98/100, hors domaine 100/100, abstention sûre 215/215, latence du routeur p95 3,13 s.
Comparé au service 8B/vLLM qualifié (décision exacte 98,75 %, adversarial 96/100, p95 1,21 s sur GPU à concurrence 4), ce candidat CPU obtient une qualité quasi identique avec une latence plus élevée mais sans dépendance GPU.
Agrandir les connaissances (nouvelles procédures, nouvelles formations)
Le modèle ne récite jamais une procédure depuis ses poids : il choisit un identifiant dans un registre fermé (config/guides-v1.json, config/module-registry-v1.json), le harnais rend ensuite la fiche canonique stockée dans data/procedures/ ou data/modules/. Ajouter une connaissance consiste donc à enrichir ces registres, pas à réécrire le modèle :
- corriger une fiche déjà approuvée (texte d'une étape, capacité manquante) ne demande aucun réentraînement — le harnais sert la version corrigée dès que les fichiers sont régénérés ;
- ajouter un nouvel identifiant bénéficie d'une généralisation mesurée (95 à 100 % sur les procédures/modules holdout des campagnes scellées, le modèle raisonne sur la carte du candidat plutôt que de la mémoriser) mais un réentraînement reste recommandé pour une fiabilité de production.
La procédure complète — blueprint de la fiche, validation contre le code Moodle réel, enregistrement dans le registre de routage, requalification du routeur — est détaillée dans docs/creer-des-fiches.md.
Limites connues
- Fenêtre de contexte et
route_class: "unknown". Une question du domaineMOODLE_USAGEreçue avecroute_class: "unknown"fait retomber le harnais sur les 50 procédures complètes comme candidats, produisant un prompt d'environ 3700 tokens — au-delà des 2048 tokens vus à l'entraînement.num_ctxa été porté à 4096 dans leModelfilepour éviter un échec de transport ; testé manuellement, le modèle a correctement identifié la procédure malgré cette longueur inhabituelle, mais avec une latence proche de 30 s et sans garantie de qualité au-delà de cet essai ponctuel. Cette lacune de couverture affecte probablement aussi le service 8B/vLLM, qui partage le même harnais. - Débit. Ollama sert par défaut une requête à la fois (
OLLAMA_NUM_PARALLEL=1) ; la qualification a été menée à concurrence 1. - Statut POC. Données de fabrication synthétiques, revue métier indépendante requise avant toute utilisation réelle. Ne pas transmettre de données personnelles.
Traçabilité
Consulter merge-report.json pour l'inventaire SHA-256 du modèle fusionné, les révisions et versions logicielles.