Skip to content

1.7 Embedded LLM Guide

Frédéric Clavert edited this page Jul 23, 2026 · 10 revisions

Guide des LLM embarqués

Version: 1.0.0-rc.3 Dernière mise à jour: 2026-07-20


Vue d'ensemble

ClioDeck peut fonctionner avec des modèles de langage (LLM) embarqués, permettant une utilisation hors-ligne complète pour la génération de texte. Cette fonctionnalité utilise node-llama-cpp pour exécuter des modèles au format GGUF directement dans l'application.

Fonctionnement

┌─────────────────────────────────────────────────────────────┐
│                    Mode de fonctionnement                    │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│  Provider: AUTO (par défaut)                                  │
│                                                               │
│     1. Ollama disponible ?                                    │
│        └── OUI → Utiliser Ollama                              │
│        └── NON → 2. Modèle embarqué disponible ?              │
│                    └── OUI → Utiliser modèle embarqué         │
│                    └── NON → Erreur "Aucun LLM disponible"    │
│                                                               │
└─────────────────────────────────────────────────────────────┘

Limitations importantes

Fonctionnalité Ollama Modèle embarqué
Génération de texte Oui Oui
Embeddings (RAG) Oui Oui
Streaming Oui Oui
Performance Meilleure Correcte

Le modèle embarqué peut désormais servir les deux rôles — au niveau du code. generationProvider et embeddingProvider se choisissent indépendamment dans la configuration, et embedded est une valeur valide pour les deux : un RAG complet sans Ollama et sans clé cloud est possible en théorie, avec Nomic Embed Text v2 MoE (344 Mo, 768 dimensions, multilingue) comme modèle d'embeddings.

Mais pas encore depuis l'interface. À ce jour, les paramètres LLM ne permettent de choisir que generationProvider (le tableau ci-dessous) — il n'existe aucun contrôle pour embeddingProvider, et le modèle d'embeddings embarqué n'a pas de bouton de téléchargement dans l'UI. Pour l'utiliser aujourd'hui, il faut éditer directement le fichier de configuration (cliodeck-config.json, dans le dossier userData de l'application). C'est un vrai manque, pas une limite du moteur — voir issue #18.

En mode Auto (le réglage par défaut du provider de génération), ClioDeck préfère Ollama quand il est joignable et ne bascule sur l'embarqué qu'en repli — voir le diagramme ci-dessus.


Modèles disponibles

Qwen2.5-0.5B-Instruct (recommandé)

Caractéristique Valeur
Taille ~469 Mo
Contexte 32 768 tokens
Langues 29+ (dont FR, EN, DE)
Performance Rapide sur CPU
Cas d'usage Usage général, machines modestes

Qwen2.5-1.5B-Instruct

Caractéristique Valeur
Taille ~1.04 Go (1066 Mo)
Contexte 32 768 tokens
Langues 29+ (dont FR, EN, DE)
Performance Correcte sur CPU
Cas d'usage Meilleure qualité, machines plus puissantes

Installation

1. Accéder aux paramètres

  1. Ouvrez ClioDeck
  2. Cliquez sur Paramètres (icône engrenage)
  3. Accédez à la section LLM embarqué

2. Télécharger un modèle

  1. Sélectionnez le modèle souhaité dans la liste
  2. Cliquez sur Télécharger
  3. Attendez la fin du téléchargement (barre de progression)

Le modèle est téléchargé depuis Hugging Face et stocké dans :

  • macOS : ~/Library/Application Support/cliodeck/models/
  • Linux : ~/.config/cliodeck/models/

3. Configurer le provider (génération)

Dans les paramètres LLM, choisissez la stratégie — ce réglage ne concerne que la génération de texte ; il n'existe pas d'équivalent pour les embeddings dans l'interface (voir l'encart plus haut) :

Option Comportement
Auto (défaut) Ollama si disponible, sinon embarqué
Ollama Force l'utilisation d'Ollama uniquement
Embarqué Force l'utilisation du modèle embarqué

Utilisation

Mode automatique (recommandé)

En mode Auto, ClioDeck choisit automatiquement :

  1. Ollama démarré → Chat utilise Ollama
  2. Ollama arrêté, modèle téléchargé → Chat utilise le modèle embarqué
  3. Rien de disponible → Message d'erreur explicatif

Comportement du RAG

Quand vous posez une question avec RAG activé :

Étape Provider
Génération de l'embedding de la question Celui configuré dans embeddingProvider (config uniquement, pas encore réglable depuis l'UI) — Ollama, embarqué, ou cloud
Recherche dans le vector store -
Génération de la réponse Celui configuré dans generationProvider (réglable dans Paramètres → LLM) — Ollama, embarqué, ou cloud

Si aucun provider d'embeddings n'est disponible (ni Ollama joignable, ni modèle embarqué téléchargé, ni clé cloud), le RAG ne peut pas fonctionner. Le chat bascule alors en mode "conversation simple" sans contexte documentaire.


Configuration avancée

Paramètres de génération

Le modèle embarqué utilise des paramètres optimisés pour les réponses académiques :

{
  maxTokens: 2048,      // Longueur max de la réponse
  temperature: 0.1,     // Faible pour des réponses précises
  topP: 0.85,           // Nucleus sampling
  contextSize: 4096     // Fenêtre de contexte effective (modèle supporte 32768 max)
}

Note : Le modèle Qwen2.5 supporte jusqu'à 32 768 tokens, mais ClioDeck utilise une fenêtre de 4096 tokens pour optimiser la mémoire et la vitesse.

Format de prompt

Le modèle Qwen utilise le format ChatML :

<|im_start|>system
Tu es un assistant académique spécialisé...
<|im_end|>
<|im_start|>user
Ma question...
<|im_end|>
<|im_start|>assistant

Performance

Temps de chargement

Modèle Premier chargement Chargement suivant
Qwen2.5-0.5B 5-10 secondes 2-3 secondes
Qwen2.5-1.5B 10-20 secondes 5-8 secondes

Vitesse de génération

Sur un CPU moderne (Apple M1/M2, Intel i5+) :

Modèle Tokens/seconde
Qwen2.5-0.5B 15-25 t/s
Qwen2.5-1.5B 8-15 t/s

Utilisation mémoire

Modèle RAM approximative
Qwen2.5-0.5B 1-1.5 Go
Qwen2.5-1.5B 2-3 Go

Dépannage

Le modèle ne se charge pas

Symptôme : Message "Embedded LLM not initialized"

Causes possibles :

  1. Modèle non téléchargé
  2. Fichier GGUF corrompu
  3. node-llama-cpp non installé

Solutions :

  • Re-téléchargez le modèle depuis les paramètres
  • Vérifiez que le fichier existe dans le dossier models/
  • Consultez les logs de l'application

Génération très lente

Causes possibles :

  1. Modèle trop gros pour la machine
  2. Autre application utilisant le CPU intensivement

Solutions :

  • Passez au modèle Qwen2.5-0.5B (plus léger)
  • Fermez les applications gourmandes en ressources

"Aucun provider LLM disponible"

Ce message apparaît quand :

  1. Ollama n'est pas démarré
  2. ET aucun modèle embarqué n'est téléchargé

Solutions :

  1. Démarrez Ollama : ollama serve
  2. OU téléchargez un modèle embarqué dans les paramètres

Les embeddings ne fonctionnent pas

En pratique aujourd'hui, sans édition manuelle de cliodeck-config.json, les embeddings passent par Ollama — c'est le seul provider que l'interface expose pour ce rôle :

  • Installez Ollama, téléchargez un modèle d'embeddings (ollama pull nomic-embed-text), puis démarrez le service (ollama serve).

Si vous avez réglé embeddingProvider: "embedded" à la main dans le fichier de configuration, vérifiez que Nomic Embed Text v2 MoE est bien téléchargé (son fichier GGUF doit exister sur disque — il n'y a pas d'indicateur dans l'UI pour le confirmer autrement).


Comparaison Ollama vs Embarqué

Critère Ollama Embarqué
Installation Séparée Intégrée
Modèles disponibles Nombreux 2 génération (Qwen) + 1 embeddings (Nomic v2)
Embeddings Oui, réglable dans l'UI Oui côté moteur, mais pas encore réglable dans l'UI (voir plus haut)
Qualité génération Excellente Bonne
Mode hors-ligne Oui, une fois les modèles téléchargés Oui
Mémoire Séparée Partagée avec l'app
Configuration Flexible Simple

Quand utiliser quoi ?

Utilisez Ollama quand :

  • Vous voulez choisir parmi de nombreux modèles de génération
  • Vous avez suffisamment de RAM (16+ Go)
  • Vous voulez la meilleure qualité de génération disponible localement

Utilisez le modèle embarqué quand :

  • Vous voulez un RAG complet et hors ligne sans rien installer d'autre — possible aujourd'hui uniquement via édition manuelle du fichier de configuration, en attendant que l'UI expose embeddingProvider
  • Ollama n'est pas installé/disponible
  • Vos machines sont modestes (le RAG fonctionne quand même)

Références techniques

Clone this wiki locally