coffreobsidian/inbox/Guide Complet des Paramètres LLM.md
2025-04-30 17:20:20 +02:00

317 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📘 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 dun 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 dapparition.
  - 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 dajustement dans lalgorithme 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 linfé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 linfé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
```json
{
  "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
}
```
---
## 🔗 Liens utiles
- [🔗 Docs OpenWebUI](https://docs.openwebui.com)
- [🔗 Ollama Modelfile Reference](https://github.com/ollama/ollama/blob/main/docs/modelfile.md)