mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-13 10:46:51 +01:00
106 lines
4.6 KiB
Python
106 lines
4.6 KiB
Python
import json
|
|
import os
|
|
from datetime import datetime
|
|
|
|
def create_default_settings():
|
|
"""
|
|
Crée un fichier de configuration avec les paramètres par défaut
|
|
organisés selon l'interface OpenUI
|
|
"""
|
|
default_settings = {
|
|
# Paramètres avancés
|
|
"stream": True, # Streamer la réponse de la conversation
|
|
"function_calling": None, # Function Calling
|
|
"seed": 0, # Seed pour la reproductibilité
|
|
# Séquence d'arrêt
|
|
"temperature": 0.6, # Température (valeur Ollama)
|
|
"reasoning_effort": 0.5, # Effort de raisonnement
|
|
"logit_bias": {}, # Logit Bias
|
|
|
|
# Paramètres Mirostat
|
|
"mirostat": 0, # 0 = désactivé, 1 = v1, 2 = v2
|
|
"mirostat_eta": 0.1, # Taux d'apprentissage
|
|
"mirostat_tau": 5.0, # Cible de surprise
|
|
|
|
# Paramètres de sampling
|
|
"top_k": 40, # Limite de tokens considérés
|
|
"top_p": 0.9, # Valeur Ollama
|
|
"min_p": 0.05, # Probabilité minimale
|
|
|
|
# Paramètres de pénalité
|
|
"frequency_penalty": 0.0, # Pénalité de fréquence
|
|
"presence_penalty": 0.0, # Pénalité de présence
|
|
"repeat_last_n": 64, # Répéter les N derniers
|
|
"tfs_z": 1.0, # TFS-Z
|
|
|
|
# Paramètres de contexte
|
|
"num_keep": 0, # Tokens à conserver
|
|
"num_predict": 1024, # Nombre max de tokens
|
|
|
|
# Paramètres Ollama spécifiques
|
|
# Pénalité de répétition
|
|
"num_ctx": 4096, # Longueur du contexte
|
|
"num_batch": 512, # Taille du batch
|
|
# Nombre de GPUs
|
|
}
|
|
|
|
# Créer le dossier settings s'il n'existe pas
|
|
os.makedirs('settings', exist_ok=True)
|
|
|
|
# Sauvegarder en format JSON
|
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
filename = f"settings/default_parameters_{timestamp}.json"
|
|
|
|
with open(filename, 'w', encoding='utf-8') as f:
|
|
json.dump(default_settings, f, indent=2, ensure_ascii=False)
|
|
|
|
print(f"✅ Paramètres par défaut sauvegardés dans: {filename}")
|
|
|
|
# Créer aussi une version Python pour import facile
|
|
py_filename = "settings/default_parameters.py"
|
|
with open(py_filename, 'w', encoding='utf-8') as f:
|
|
f.write("# Configuration par défaut pour les modèles\n")
|
|
f.write(f"# Généré le {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n")
|
|
f.write("DEFAULT_PARAMETERS = {\n")
|
|
for key, value in default_settings.items():
|
|
f.write(f" '{key}': {repr(value)}, # {get_parameter_description(key)}\n")
|
|
f.write("}\n")
|
|
|
|
print(f"✅ Module Python créé dans: {py_filename}")
|
|
|
|
def get_parameter_description(key):
|
|
"""
|
|
Retourne une description pour chaque paramètre
|
|
"""
|
|
descriptions = {
|
|
"stream": "Activation du streaming des réponses",
|
|
"function_calling": "Support des appels de fonction",
|
|
"seed": "Graine pour la reproductibilité",
|
|
"stop_sequence": "Séquences pour arrêter la génération",
|
|
"temperature": "Créativité du modèle (0.0-1.0)",
|
|
"reasoning_effort": "Niveau de détail du raisonnement",
|
|
"logit_bias": "Biais pour certains tokens",
|
|
"mirostat": "Algorithme de sampling adaptatif",
|
|
"mirostat_eta": "Taux d'apprentissage Mirostat",
|
|
"mirostat_tau": "Cible de surprise Mirostat",
|
|
"top_k": "Nombre de tokens considérés",
|
|
"top_p": "Sampling avec noyau dynamique",
|
|
"min_p": "Probabilité minimale des tokens",
|
|
"frequency_penalty": "Pénalité pour les répétitions fréquentes",
|
|
"presence_penalty": "Pénalité pour les tokens déjà utilisés",
|
|
"repeat_last_n": "Contexte pour la pénalité de répétition",
|
|
"tfs_z": "Paramètre Z du Tail Free Sampling",
|
|
"num_keep": "Tokens conservés lors du rafraîchissement",
|
|
"num_predict": "Limite de tokens générés",
|
|
"repeat_penalty": "Force de la pénalité de répétition",
|
|
"num_ctx": "Taille du contexte",
|
|
"num_batch": "Taille du traitement par lots",
|
|
"mmap": "Utilisation de la mémoire mappée",
|
|
"mlock": "Verrouillage en mémoire",
|
|
"num_thread": "Threads CPU utilisés",
|
|
"num_gpu": "Nombre de GPUs utilisés"
|
|
}
|
|
return descriptions.get(key, "")
|
|
|
|
if __name__ == "__main__":
|
|
create_default_settings() |