Skip to content

fr Ollama Setup

rcspam edited this page Apr 21, 2026 · 1 revision

🌐 Langue : English | Français

Configuration Ollama

Ollama est un runtime LLM local. dictée l'utilise pour deux fonctionnalités indépendantes :

  • Traduction (voir Traduction) — quand Ollama est choisi comme backend de traduction
  • Correction post-traitement (voir LLM-Correction) — polissage optionnel de la fluidité après l'ASR et avant le collage

Faire tourner des LLM localement apporte confidentialité, pas de limites de taux et latence prévisible au coût de la mémoire GPU. Cette page couvre l'installation Ollama, les modèles recommandés pour les cas d'usage de dictée, les prompts structurés envoyés et le tuning performance.

Table des matières


Installer Ollama

Toutes distros Linux :

curl -fsSL https://ollama.com/install.sh | sh

Ça installe ollama dans /usr/local/bin/ et enregistre un service systemd écoutant sur http://localhost:11434. Vérification :

systemctl status ollama
curl http://localhost:11434/api/tags  # doit retourner {"models": []}

Paquets distros (alternative) :

Distro Commande
Arch Linux sudo pacman -S ollama (ou ollama-cuda / ollama-rocm)
Fedora Copr : sudo dnf copr enable ramzankor/ollama && sudo dnf install ollama
Homebrew (macOS, non supporté par dictée mais pratique pour tester) brew install ollama

Modèles recommandés

dictée détecte automatiquement les modèles Ollama disponibles au premier usage. Le défaut est gemma3:4b — bon équilibre qualité/VRAM pour traduction + correction.

Modèle Taille VRAM Latence Idéal pour
gemma3:4b ⭐ défaut 3,3 Go ~4 Go 2–3 s Traduction + correction, la plupart des langues
qwen2.5:3b 2 Go ~3 Go 2 s VRAM basse, langues asiatiques
llama3.2:3b 2 Go ~3 Go 2–3 s Alternative à Gemma, bonne qualité EN
gemma3:12b 8 Go ~10 Go 5–7 s Meilleure qualité, VRAM large
qwen2.5:7b 4,7 Go ~6 Go 3–4 s Upgrade équilibré par rapport au 3b
mistral:7b-instruct 4,1 Go ~5 Go 3 s Bon multilingue, plus ancien mais stable

Éviter sur VRAM basse : tout ce qui fait ≥ 12B si vous faites aussi l'ASR sur GPU (Canary = 5 Go, Parakeet = 1–3 Go).


Premier téléchargement de modèle

ollama pull gemma3:4b

Le premier pull télécharge ~3,3 Go. Les runs suivants chargent depuis ~/.ollama/models/. Le modèle reste résident en VRAM pendant ~5 minutes après la dernière utilisation (configurable, voir Tuning performance).

Vérification :

ollama run gemma3:4b "Bonjour, comment ça va ?"

Budget VRAM

Ollama charge le modèle complet en VRAM GPU à la première requête. Voir ce qui est chargé :

ollama ps
# NAME             ID              SIZE    PROCESSOR          UNTIL
# gemma3:4b        a2af6cc3eb7f    5.3 GB  100% GPU           4 minutes from now

Si votre GPU manque de mémoire (fréquent sur cartes 8 Go en combinant Parakeet + Ollama), Ollama bascule silencieusement sur CPU, ce qui fait passer la latence de 2–3 s à 15–30 s.

Stratégies de mitigation :

  1. Réduire le modèle : utiliser gemma3:4b au lieu de gemma3:12b
  2. Faire tourner Ollama sur CPU seul : OLLAMA_NUM_GPU=0 systemctl restart ollama (plus lent mais libère la VRAM)
  3. Décharger Ollama entre utilisations : OLLAMA_KEEP_ALIVE=30s réduit le séjour VRAM
  4. Utiliser Vosk/Whisper sur CPU : basculer l'ASR sur un backend plus léger quand le LLM est sur GPU

Prompts structurés

dictée utilise des prompts strictement structurés pour prévenir l'hallucination des LLM (un problème majeur en v1.2 corrigé pour v1.3).

Prompt de traduction

Envoyé par dictee-translate --ollama :

You are a translation engine. Translate the following text from French to English.
Output ONLY valid JSON in the format: {"translation": "..."}.
Do NOT add explanations, notes, or any text outside the JSON.

Source: "La réunion commence à quatorze heures."

Réponse attendue :

{"translation": "The meeting starts at 2 p.m."}

dictée parse le JSON ; si le parsing échoue, elle retombe sur l'extraction de la première chaîne entre guillemets ou saute la traduction avec un warning.

Prompt de correction post-traitement

Envoyé par dictee-postprocess quand la correction LLM est activée :

You are a text editor. Correct the spelling, punctuation, grammar, and fluency
of the following transcribed speech. Keep the meaning identical.
Output ONLY the corrected text on one line — no explanations, no quotes,
no added content.

Text: {raw_asr_output}

Le LLM est instruit d'être conservateur : pas de reformulation, pas d'ajout de contenu. Cela garde les dictées déterministes et prévisibles.

Voir LLM-Correction pour le tuning de position (avant règles regex / après règles / hybride).


Configuration du serveur Ollama

La plupart des utilisateurs n'ont pas besoin de toucher à la config Ollama. Si besoin :

Fichier de config : /etc/systemd/system/ollama.service.d/override.conf (à créer) :

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"   # écouter sur toutes interfaces (usage LAN)
Environment="OLLAMA_KEEP_ALIVE=30s"        # décharger après 30s d'inactivité
Environment="OLLAMA_NUM_GPU=0"             # forcer CPU (pas d'offload GPU)
Environment="OLLAMA_MAX_LOADED_MODELS=1"   # empêcher le swap entre 2 modèles
Environment="OLLAMA_DEBUG=1"               # logs verbeux dans le journal

Reload : sudo systemctl daemon-reload && sudo systemctl restart ollama.

Endpoint personnalisé pour dictée (si Ollama tourne sur une autre machine ou port) :

export DICTEE_OLLAMA_HOST=http://192.168.1.42:11434

Tuning performance

Paramètre Effet Recommandation
OLLAMA_KEEP_ALIVE=30s Décharger le modèle après 30 s d'inactivité Utilisateurs VRAM basse
OLLAMA_KEEP_ALIVE=24h Garder le modèle résident toute la journée Utilisateurs VRAM haute (12+ Go)
num_ctx=512 Réduire la fenêtre de contexte (les prompts sont courts de toute façon) 30 % plus rapide
num_predict=100 Limiter les tokens de sortie (les dictées sont courtes) Prévient génération emballée
temperature=0.1 Décodage quasi-greedy Idéal pour traduction/correction (déterministe)

Passer les paramètres via la config dictée (à venir) ou en enveloppant Ollama avec un petit Modelfile :

# ~/.ollama/modelfiles/gemma3-dictee/Modelfile
FROM gemma3:4b
PARAMETER temperature 0.1
PARAMETER num_ctx 512
PARAMETER num_predict 100
ollama create gemma3-dictee -f ~/.ollama/modelfiles/gemma3-dictee/Modelfile
export DICTEE_OLLAMA_MODEL=gemma3-dictee

Mise à jour des modèles

# Voir ce qui est installé
ollama list

# Tirer la dernière version (même tag)
ollama pull gemma3:4b

# Supprimer ancienne version
ollama rm gemma3:2b

Ollama ne fait pas d'auto-update. Les améliorations majeures de modèles (genre Gemma 3 → Gemma 4 quand ça sortira) nécessitent un ollama pull manuel.


VRAM partagée avec l'ASR

Sur un GPU 8 Go, vous ne pouvez pas faire tenir Canary + gemma3:4b simultanément (5 Go + 4 Go = 9 Go). Options :

  1. Utiliser Parakeet (1,2 Go) + Gemma 3 4B : tient confortablement sur 8 Go
  2. Utiliser Canary seul : Canary a une traduction intégrée, pas besoin d'Ollama
  3. Faire tourner Ollama sur CPU : OLLAMA_NUM_GPU=0, latence ~15 s mais VRAM libre

dictée ne swappe pas automatiquement les modèles entre ASR et Ollama — chacun a son propre budget VRAM, et dictée ne peut pas charger/décharger à la demande sans overhead de redémarrage.

Le 8 Go VRAM → Parakeet + Gemma 3 4B est le point optimal pour la plupart des utilisateurs sur portable.


Étapes suivantes

📖 dictee Wiki

🇬🇧 Home · 🇫🇷 Accueil


Getting started / Premiers pas

Speech recognition / ASR

Translation / Traduction

Post-processing / Post-traitement

CLI

Reference / Référence


🏠 Repo · 📦 Releases · 🐛 Issues

Clone this wiki locally