5.3 KiB
📘 Paramètres Avancés LLM – Open WebUI & Ollama
Ce document présente une explication claire et complète des paramètres de génération d’un modèle LLM via Open WebUI, compatible avec un usage dans Obsidian.
⚙️ Paramètres Généraux
- Streamer la réponse de la conversation
- Active le mode de génération mot par mot, visible en temps réel.
- ✅ Recommandé pour le chat interactif.
- ❌ Peut réduire les performances sur des machines lentes.
- Function Calling
- Permet au modèle de déclencher des fonctions (si la fonction est supportée par le modèle, comme GPT-4).
- Seed
- Graine aléatoire pour rendre les générations reproductibles.
- Exemple : seed = 42 -> toujours la même sortie pour le même prompt.
- Par défaut : valeur aléatoire.
- Séquence d'arrêt (
stop)
- Liste de chaînes qui, si rencontrées, interrompent immédiatement la génération.
- Exemple : ["\nUser:", "###"]
🔥 Paramètres de Style et de Créativité
- Température (
temperature)
- Contrôle la créativité du modèle.
- Borne typique : 0.0 (très déterministe) à 1.5 (très créatif).
- ✅ Valeurs recommandées : 0.7 (équilibré), 1.0+ pour brainstorm.
- 🧊 0.0 = réponse toujours identique.
- Top K
- Ne garde que les K tokens les plus probables à chaque étape.
- Borne : 0 (désactivé) à 100+.
- Exemple : Top K = 40 -> le modèle choisit parmi les 40 tokens les plus probables.
- Top P (
top_p)
- Filtrage probabiliste : garde les tokens jusqu'à atteindre une somme de probabilité donnée.
- Borne : 0.0 à 1.0.
- Exemple : 0.9 = conserve les tokens représentant 90% de probabilité cumulée.
- P min
- Probabilité minimale absolue pour inclure un token dans le choix.
- Borne : 0.0 à 1.0.
🧠 Paramètres de Contrôle de la Répétition
- Pénalité de fréquence
- Pénalise les tokens répétés selon leur fréquence d’apparition.
- Valeurs typiques : 0.0 (pas de pénalité) à 2.0.
- Pénalité de présence
- Pénalise les tokens qui ont déjà été générés une fois.
- Utile pour éviter la redondance.
- Pénalité de répétition (Ollama)
- Directement appliquée au moteur Ollama.
- Valeurs typiques : 1.0 (neutre), >1.0 pour plus de diversité (ex. 1.2), <1.0 = plus conservateur.
- Répéter les N derniers
- Longueur de la fenêtre contextuelle analysée pour la détection de répétitions.
🧪 Algorithmes Avancés
- Effort de raisonnement
- Ajuste la profondeur logique du modèle.
- Plus la valeur est haute, plus le modèle essaiera de construire une réponse "logique" (si supporté).
- Logit Bias
- Permet de favoriser ou de bloquer certains tokens.
- Format : dictionnaire {token_id: bias_value}
- Exemple : {1234: -100} empêche un token d'apparaître.
- Mirostat
- Algorithme pour maintenir une perplexité constante.
- 0 = désactivé, 1 = activé.
- Utilisé pour une génération plus stable.
- Mirostat Eta
- Taux d’ajustement dans l’algorithme Mirostat.
- Valeur typique : 0.1 à 1.0.
- Mirostat Tau
- Cible de perplexité à maintenir.
- Valeur typique : 2.0 à 5.0.
- Tfs Z
- Top Free Sampling : alternative à Top P avec une approche basée sur la surprise du token.
- Moins courant, expérimental.
🧩 Contexte et Tokenisation
- Tokens à conserver (
num_keep)
- Nombre de tokens à préserver lors du rafraîchissement du contexte.
- Utile pour les instructions système ou les préambules.
- Nb max de tokens (
num_predict)
- Limite maximale de tokens générés en réponse.
- Typiquement : 128 à 4096 voire 32k selon les modèles.
- Longueur du contexte (Ollama)
- Taille mémoire maximale disponible pour prompt + génération.
- Varie selon le modèle : 4096, 8192, 32768, 128000, etc.
🧵 Exécution & Performance (spécifique à Ollama)
- Batch Size (
num_batch)
- Nombre de tokens traités simultanément.
- Peut accélérer l’inférence mais consomme plus de RAM/VRAM.
- Utiliser mmap
- Active le chargement du modèle en mémoire mappée (plus rapide, nécessite moins de RAM).
- Utiliser mlock
- Empêche le modèle d’être swapé sur le disque (nécessite des droits root).
- Threads (
num_thread)
- Nombre de threads CPU utilisés pour l’inférence.
- Exemple : 8, 16, selon ton CPU.
- GPU (
num_gpu)
- Nombre de GPU à utiliser.
- 0 = désactive le GPU, 1 = un seul GPU, auto = automatique.
📤 Exemple d'appel API Ollama
{
"model": "llama3.2-vision:90b-instruct-q8_0",
"prompt": "Explique la gravité quantique",
"temperature": 0.7,
"top_p": 0.9,
"repeat_penalty": 1.1,
"num_predict": 512,
"stream": false
}