--- base_model: mistralai/Mistral-7B-Instruct-v0.3 library_name: peft pipeline_tag: text-generation tags: - base_model:adapter:mistralai/Mistral-7B-Instruct-v0.3 - lora - sft - transformers - trl - mistral - lora - agriculture - viticulture - mildew - plant-disease - agronomy - fine-tuning - qlora - environmental-modeling --- # Lyra_Mildew — Modèle LoRA Mistral 7B pour l’évaluation du risque de mildiou [English version available below](#english-version) --- ## 🧬 Présentation générale **Lyra_Mildew** est un modèle LoRA basé sur **Mistral 7B**, entraîné pour prédire le **risque d’infection du mildiou de la vigne (*Plasmopara viticola*)** à partir de variables agro-météorologiques clés : - Stade_phenologique - Humectation_continue (h) - Temperature_moyenne (°C) - Pluie_24h (mm) - Inoculum (0.1–0.9) Le modèle génère un output structuré : - Risque : [faible/moyen/élevé] - Recommandation : [conseil agronomique concis] --- ## 📚 Datasets utilisés | Dataset | Taille | Usage | |--------|--------|-------| | `Mildew_train_1500.jsonl` | 1500 | Fine-tuning principal | | `Mildew_valid_149.jsonl` | 149 | Validation | | `Mildew_dataset_middle_30.jsonl` | 30 | Calibration ciblée “Floraison extrême” | Les datasets sont au format **chat-style JSONL** compatible Mistral. --- ## ⚙️ Hyperparamètres d’entraînement (LoRA) - output_dir = "./lyra_Mildew_LoRA" - num_train_epochs = 3 - per_device_train_batch_size = 2 - per_device_eval_batch_size = 2 - gradient_accumulation_steps = 8 - learning_rate = 2e-4 - fp16 = True - logging_steps = 10 - eval_strategy = "epoch" - save_strategy = "epoch" - lr_scheduler_type = "cosine" - warmup_ratio = 0.03 - weight_decay = 0.0 - report_to = "none" ### 📌 Mini-étape de calibration (30 lignes) Une seconde passe rapide a été effectuée pour ajuster la détection du risque **élevé en floraison** : - 4 steps - Training loss décroissante : **2.38 → 1.30 → 1.00 → 0.90** - Aucun surapprentissage observé --- ## 📊 Résultats d’entraînement (Epochs 1–3) | Epoch | Training Loss | Validation Loss | Entropy | Mean Token Accuracy | |-------|---------------|-----------------|---------|---------------------| | 1 | 0.2809 | 0.2760 | 0.2861 | 0.9200 | | 2 | 0.2760 | 0.2722 | 0.2819 | 0.9226 | | 3 | 0.2693 | 0.2696 | 0.2766 | 0.9233 | Les métriques confirment une convergence stable et équilibrée train/validation. --- ## 🧪 Évaluation finale sur 12 scénarios agronomiques Le modèle a été testé sur un panel expert de 12 cas représentatifs (faible / moyen / élevé), incluant des situations limites (jeunes feuilles, floraison, humectation extrême). ### 🎯 Taux d’exactitude selon 3 critères | Critère | % | Interprétation | |---------|----|----------------| | **Exactitude stricte** | **75 %** | Correspondance parfaite attendue/prédit | | **Exactitude aide à la décision** | **83 %** | Les surestimations prudentes sont acceptées | | **Exactitude agronomique réaliste** | **≈ 92 %** | Inclut les *faibles limites* rehaussés et les décisions prudentes | 💡 *Dans une optique opérationnelle, la réduction des faux négatifs est prioritaire : le modèle adopte un comportement prudent sans surtraiter.* --- ## 🖥️ Ressources d’entraînement (Colab) - GPU : **A100 40 GB** - VRAM utilisée : **20.87 GB** - RAM utilisée : **9.20 GB** - Entraînement total : quelques minutes pour la calibration LoRA --- ## 🚀 Exemple d’utilisation ```python from transformers import AutoModelForCausalLM, AutoTokenizer name = "Jerome-openclassroom/Lyra_Mildew_LoRA" tok = AutoTokenizer.from_pretrained(name) model = AutoModelForCausalLM.from_pretrained(name) messages = [ {"role": "system", "content": "Tu es un agronome spécialisé dans le mildiou..."}, {"role": "user", "content": "Stade_phenologique: floraison\nHumectation: 12\nTemperature: 20\nPluie_24h: 10\nInoculum: 0.7"} ] text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tok(text, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=120) print(tok.decode(outputs[0], skip_special_tokens=True)) ``` 🇬🇧 English Version --- ## Lyra_Mildew — Mistral 7B LoRA Model for Grapevine Downy Mildew Risk Assessment # 🧬 Overview Lyra_Mildew is a LoRA fine-tuned Mistral 7B model specialized in assessing the risk of downy mildew (Plasmopara viticola) on grapevine using: - Phenological stage - Continuous leaf wetness (h) - Mean temperature (°C) - 24h rainfall (mm) - Inoculum level (0.1–0.9) Output format: - Risk: [low/medium/high] - Recommendation: [concise actionable advice] # 📚 Datasets Dataset Size Purpose - Mildew_train_1500.jsonl 1500 Main supervised fine-tuning - Mildew_valid_149.jsonl 149 Validation - Mildew_dataset_middle_30.jsonl 30 Targeted calibration (extreme flowering cases) # ⚙️ Training Hyperparameters (Full YAML above) - 3 epochs LoRA SFT - Learning rate: 2e-4 - Gradient accumulation: 8 - Scheduler: cosine - Mixed precision: fp16 - Calibration step (30 lines) - Loss progression: 2.38 → 1.30 → 1.00 → 0.90 # 📊 Training Metrics Epoch 3 performance: - Validation Loss: 0.2696 - Entropy: 0.2766 - Mean Token Accuracy: 0.9233 # 🧪 Final Evaluation (12 expert scenarios) Metric Value - Strict match 75 % - Decision-support accuracy 83 % - Agronomically realistic accuracy ≈ 92 % This last metric reflects the intended operational behavior: minimizing false negatives, even if some borderline cases are conservatively up-classified. # 🖥️ Training Resources - GPU: A100 40GB - VRAM used: 20.87 GB - RAM used: 9.20 GB # 🚀 Usage Example (Python) (see code block above) # 📄 License Open for research, education and non-commercial agronomic applications.