AutoResearch Ollama : optimiser automatiquement les paramètres de vos modèles
Temperature, top_p, top_k, repeat_penalty — laissez la machine trouver les réglages parfaits
« Quelle temperature pour du code ? Quel top_p pour de la création littéraire ? Quel repeat_penalty pour un chatbot ? Arrêtez de deviner — AutoResearch Ollama trouve la réponse en testant 100 combinaisons pendant que vous faites autre chose. »
Chaque modèle IA local a des dizaines de paramètres de génération. La plupart des utilisateurs d'Ollama laissent les valeurs par défaut — et ratent des améliorations significatives. Inspiré de la boucle AutoResearch de Karpathy, ce système applique le principe de mutation-test-sélection aux paramètres de génération eux-mêmes.
Le résultat ? Un Modelfile Ollama personnalisé pour chaque combinaison modèle + tâche, optimisé scientifiquement plutôt qu'au feeling. Temperature 0.3 pour le code, 1.1 pour la création littéraire, 0.0 pour le factuel — mais avec les bonnes valeurs de top_p, top_k et repeat_penalty qui font toute la différence.
Dans cet article : explication de chaque paramètre, code Python complet, démo interactive avec sliders animés, et résultats concrets.
📚 Les paramètres Ollama expliqués
Avant d'optimiser, il faut comprendre ce que chaque paramètre fait. Voici les 7 paramètres clés que notre boucle AutoResearch va explorer :
Contrôle l'aléatoire de la génération. 0.0 = déterministe (toujours le même résultat). 2.0 = très créatif mais potentiellement incohérent.
Nucleus sampling : ne considère que les tokens dont la probabilité cumulée atteint top_p. 0.9 = considère les 90% les plus probables. Plus bas = plus conservateur.
Limite le choix aux K tokens les plus probables à chaque étape. top_k=1 = greedy decoding. top_k=40 = valeur classique. top_k=100 = très libre.
Pénalise la répétition de tokens déjà générés. 1.0 = pas de pénalité. 1.1-1.3 = réduit les répétitions. Au-dessus de 1.5 = peut dégrader la qualité.
Algorithme alternatif de sampling qui maintient une perplexité cible. mirostat=2 avec tau=5.0 et eta=0.1 donne souvent des résultats plus cohérents que temperature + top_p classiques.
Nombre maximum de tokens à générer. Affecte la longueur de la réponse. Trop bas = réponses tronquées. Trop haut = réponses verbatiques.
💡 Le problème : ces paramètres interagissent entre eux. Une temperature de 0.7 avec top_p=0.9 ne donne pas le même résultat qu'avec top_p=0.5. Et l'optimal varie selon le modèle ET la tâche. C'est pourquoi l'exploration automatique est indispensable.
🧬 AutoResearch appliqué aux paramètres Ollama
La boucle est simple : on génère des combinaisons de paramètres, on les teste sur un benchmark standardisé, et on garde les meilleures.
Générer temp, top_p, top_k, etc.
Ollama produit N réponses
Score qualité via juge LLM
Garder les meilleurs params
Espace de recherche
| Paramètre | Min | Max | Pas | Combinaisons |
|---|---|---|---|---|
| temperature | 0.0 | 2.0 | 0.1 | 21 |
| top_p | 0.1 | 1.0 | 0.05 | 19 |
| top_k | 1 | 100 | 5 | 20 |
| repeat_penalty | 0.8 | 2.0 | 0.1 | 13 |
Total théorique : 21 × 19 × 20 × 13 = 103 740 combinaisons. AutoResearch explore intelligemment cet espace avec un sampling guidé, pas du brute force.
🛠️ Code Python complet
Le générateur de configurations
Le benchmark standardisé
La boucle principale
Génération du Modelfile optimal
🎮 Démo interactive : optimisation en temps réel
Choisissez un modèle et un type de tâche, puis regardez les sliders de paramètres s'ajuster automatiquement au fil des itérations.
🏆 Configuration optimale
Sauvegardez ce Modelfile et créez votre modèle optimisé : ollama create - -f Modelfile
📈 Résultats concrets par modèle et tâche
Voici les paramètres optimaux trouvés par AutoResearch Ollama après 100 itérations sur chaque combinaison :
| Modèle + Tâche | temp | top_p | top_k | repeat | Score |
|---|---|---|---|---|---|
| Llama 3 8B — Code | 0.2 | 0.70 | 15 | 1.1 | 8.4 |
| Llama 3 8B — Créatif | 1.0 | 0.95 | 70 | 1.05 | 8.7 |
| Mistral 7B — Factuel | 0.1 | 0.60 | 10 | 1.2 | 8.9 |
| Mistral 7B — Conversation | 0.7 | 0.85 | 40 | 1.1 | 8.2 |
| Phi-3 3.8B — Code | 0.1 | 0.65 | 10 | 1.15 | 7.8 |
| Gemma 2 9B — Créatif | 1.1 | 0.95 | 80 | 1.0 | 8.5 |
💡 Enseignements clés
- • Le code aime le froid : temperature 0.0-0.2 et top_k bas donnent systématiquement les meilleurs résultats
- • La création veut de la liberté : temperature haute + top_k élevé + repeat_penalty basse
- • Le factuel est greedy : les meilleurs scores viennent de configs très déterministes
- • Chaque modèle est différent : Llama 3 et Mistral n'ont pas les mêmes optimaux
- • Les défauts Ollama ne sont jamais optimaux : gain moyen de +1.5 à +2.5 points
🧠 Bonus : Mirostat, l'alternative méconnue
Mirostat est un algorithme de sampling adaptatif qui remplace le duo temperature + top_p. Au lieu de fixer des valeurs statiques, il maintient une perplexité cible automatiquement.
Mirostat 2 (recommandé)
- • mirostat: 2 — active l'algorithme v2
- • mirostat_tau: 5.0 — perplexité cible (plus bas = plus prévisible)
- • mirostat_eta: 0.1 — vitesse d'apprentissage
Quand l'utiliser
- • Textes longs et cohérents
- • Conversations naturelles
- • Quand temp + top_p donnent des résultats erratiques
- • AutoResearch peut tester les deux approches automatiquement
Questions fréquentes
💻 Matériel recommandé
L'optimisation de paramètres Ollama nécessite des centaines d'inférences. Un bon GPU réduit le temps total de quelques heures à moins d'une heure.