coffreobsidian/LLM/Résumé LLM-lab.md
2025-04-14 08:52:08 +02:00

3.6 KiB
Raw Permalink Blame History


📄 docs/journal_developpement_llm_2025-03-26.md

# 🧠 Journal de développement - Infrastructure LLM
📅 **Date** : 2025-03-26  
🎯 **Objectif** : Structurer un système modulaire pour gérer, tester et affiner plusieurs modèles LLM via une architecture orientée objet.

---

## ✅ Étapes réalisées

### 1. 📦 Mise en place dune architecture modulaire

llm_lab/ ├── core/ # Classes des modèles │ ├── base_llm.py # Classe abstraite BaseLLM │ ├── mistral7b.py # Modèle spécifique Mistral 7B │ ├── factory.py # Générateur dynamique de modèles ├── agents/ # Rôles d'agents (prompts système + paramètres) │ └── roles.py ├── utils/ # Scripts de test automatisé │ └── parameter_tester.py ├── tests/ # Scripts de test individuels ├── logs/ # Logs Markdown générés automatiquement ├── outputs/ # Exports futurs (JSON, CSV) ├── config/ # Paramètres modèles (future extensibilité) └── log_index.md # Index central des logs


---

### 2. 🧱 Construction des composants

#### 🔹 `BaseLLM` (abstraite)
- Gère les prompts, rôles, paramètres
- Centralise le logging (`.md` + index)

#### 🔹 `Mistral7B`
- Hérite de `BaseLLM`
- Intègre les paramètres valides pour Ollama
- Appelle l'API Ollama en local

#### 🔹 `factory.py`
- Permet de créer un modèle à partir de son nom :
  ```python
  model = LLMFactory.create("mistral:latest")

3. 🎭 Système de rôles (agents/roles.py)

Chaque rôle contient :

  • un system_prompt (décrit lidentité de lagent)

  • des params personnalisés (optionnels)

Exemples :

AGENTS = {
  "formateur": {
    "system_prompt": "...",
    "params": { "temperature": 0.6 }
  },
  ...
}

4. 🧪 Automatisation de tests de paramètres (utils/parameter_tester.py)

Fonction :

test_agents_on_prompt(
  model_class, prompt, agents, param_grid, fixed_params
)

➡️ Permet de :

  • Lancer plusieurs agents sur un même prompt

  • Faire varier les paramètres automatiquement

  • Logger chaque test séparément


5. 📝 Système de logs

  • Chaque appel génère un fichier .md dans logs/

  • Contient :

    • UID, modèle, moteur, agent

    • paramètres complets

    • réponse générée

  • Lindex central est mis à jour (log_index.md)


💡 Stratégie recommandée de test

Étape 1 : tester plusieurs agents avec les mêmes paramètres

→ Valider que leur comportement reflète bien leur rôle

Étape 2 : faire varier les paramètres sur chaque agent

→ Identifier les réglages les plus pertinents agent par agent


⚠️ Bonnes pratiques pour exécuter les tests

✔️ Depuis la racine du projet :

python -m tests.test_single_agent

✔️ Ou ajouter ceci au début des fichiers tests/ :

import sys, os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

🔜 Prochaines étapes possibles

  • Ajouter des modèles supplémentaires (llama2, mixtral, etc.)

  • Gérer les tests en parallèle (ThreadPoolExecutor)

  • Ajouter des dashboards CSV/JSON dans outputs/

  • Générer des rapports automatiques


🧠 Tu disposes désormais dune architecture solide pour explorer, comparer, améliorer et documenter le comportement de nimporte quel LLM à travers des rôles et des réglages variés.


---

Souhaites-tu que je te livre ce fichier `.md` à télécharger directement dans un `.zip` avec larborescence minimale ?