📘 Version anglaise : English version


🔗 Projets Open Science associés

Vous pouvez retrouver l’ensemble des travaux associés à ce modèle, ainsi que plus de 50 projets IA / Agronomie / Environnement, sur mon GitHub :

👉 https://github.com/Jerome-openclassroom

Ces dépôts couvrent :

  • l’IA environnementale,
  • l’automatisation et les agents,
  • la détection et l’analyse agronomique,
  • la télédétection,
  • les capteurs open-source,
  • la modélisation scientifique open data.

lyra_Botrytis_mistral7B_LoRA

Modèle LoRA pour l’évaluation du risque de Botrytis cinerea (POC fonctionnel)

Ce modèle est une adaptation LoRA du Mistral 7B Instruct v0.3, entraînée pour estimer le risque de Botrytis cinerea à partir d’un ensemble réduit de variables agronomiques.
Il s’agit d’un POC fonctionnel, visant à démontrer la faisabilité d’un modèle vertical spécialisé, simple, robuste et cohérent dans ses réponses.


🎯 Objectif du modèle

À partir d’un petit nombre de variables décrivant les conditions favorables au développement du Botrytis, le modèle doit fournir :

  1. Un niveau de risque : faible, moyen, ou fort.
  2. Une recommandation agronomique courte, opérationnelle, et cohérente avec ce niveau de risque.

Le modèle ne produit aucune information supplémentaire en dehors de ce format.


🧪 Variables d’entrée

Les variables utilisées sont volontairement simplifiées pour un POC :

  • PRB (0–1) : réceptivité des baies (stade, structure, sensibilité variétale).
  • Humectation_48h (h) : durée cumulée d’humectation sur 48 h.
  • Temperature_48h (°C) : température moyenne sur 48 h (zone 15–25 °C favorable).
  • Blessures (0, 1, 2) : intégrité des baies (0 = aucune, 2 = marqué).
  • Historique (0–1) : proportion d’années avec infection significative (pression d’inoculum).

Ce modèle n’est pas lié à une culture ou un cépage spécifique.


🏗️ Données d’entraînement

Dataset principal

  • 1 500 lignes (train)
  • 100 lignes (évaluation)

Format : JSONL avec structure messages (user + assistant),
le prompt système est injecté au moment de l’entraînement et non dans les données.

Calibration

Un micro-dataset supplémentaire (“middle zone”) de 12 lignes a été utilisé pour affiner la calibration dans les situations intermédiaires (PRB modéré + cumul de facteurs).


🛠️ Méthode d’entraînement

  • Modèle de base : mistralai/Mistral-7B-Instruct-v0.3
  • Technique : Supervised Fine-Tuning (SFT) + LoRA
  • Précision : fp16
  • Matrices LoRA : q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj

python Copier le code

Hyperparamètres principaux

Entraînement principal (3 epochs) :

  • learning_rate = 2e-4
  • batch_size = 2
  • gradient_accumulation_steps = 8
  • lr_scheduler_type = cosine
  • warmup_ratio = 0.03

Calibration (1 epoch, dataset “middle zone”) :

  • learning_rate = 1e-4
  • Lot réduit, 1 epoch unique
  • Correction ciblée sans altérer la stabilité globale

📈 Quelques résultats qualitatifs

Le modèle se comporte de façon stable et cohérente :

  • Risque faible : correctement identifié dans 100 % des cas testés.
  • Risque fort : correctement identifié dans 100 % des cas testés.
  • Risque moyen : désormais stable après calibration ; les cas modérés cumulant plusieurs facteurs sont généralement bien classés.

La formulation des recommandations est courte, structurée et opérationnelle.


🔍 Exemple d’utilisation (Python)

from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch

base = "mistralai/Mistral-7B-Instruct-v0.3"
adapter = "NOM_DU_REPO/lyra_Botrytis_mistral7B_LoRA"

tokenizer = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, torch_dtype=torch.float16, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)

SYSTEM_PROMPT = """Tu es un agronome spécialisé dans les maladies fongiques, en particulier le Botrytis cinerea.
Ta réponse doit comporter : 1) un niveau de risque ; 2) une recommandation agronomique concise.
Ne produis aucune information supplémentaire.
"""

def build_prompt():
  user = (
      "PRB: 0.55\n"
      "Humectation_48h: 14\n"
      "Temperature_48h: 20\n"
      "Blessures: 1\n"
      "Historique: 0.4\n\n"
      "Donne le niveau de risque et une recommandation agronomique."
  )
  messages = [
      {"role": "system", "content": SYSTEM_PROMPT},
      {"role": "user", "content": user},
  ]
  return tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

inputs = tokenizer(build_prompt(), return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200, do_sample=False)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

⚠️ Limitations Modèle construit à partir d’un dataset synthétique ; il ne remplace pas une expertise terrain.

Les valeurs produites sont indicatives et doivent être intégrées dans un raisonnement agronomique global.

Certaines situations très spécifiques peuvent encore être classées de manière conservatrice (faible→moyen).

📌 Licence Licence du modèle adaptée à l’usage non commercial ou expérimental selon la licence du modèle de base Mistral.

📄 Auteur Modèle conçu et entraîné par Jérôme Frasson, dans le cadre d’un travail exploratoire sur les modèles spécialisés et l’IA appliquée à l’agronomie.

English version

lyra_Botrytis_mistral7B_LoRA

LoRA model for Botrytis cinerea risk estimation (functional POC)

This model is a LoRA adaptation of Mistral 7B Instruct v0.3, trained to estimate the risk of Botrytis cinerea based on a compact set of simplified agronomic variables. It is a functional proof-of-concept, intended to demonstrate how a lightweight, specialized model can provide clear and consistent agronomic assessments.

🎯 Goal

Given a small set of input variables describing infection-favorable conditions, the model returns:

  • A risk level: low, medium, or high.

  • A short agronomic recommendation, consistent with the predicted risk.

  • The model never outputs additional or out-of-scope information.

🧪 Input variables

  • PRB (0–1): berry receptivity (growth stage, structure, varietal sensitivity).

  • Humectation_48h (h): cumulative wetness duration over 48 hours.

  • Temperature_48h (°C): average temperature (15–25 °C = favorable range).

  • Blessures (0, 1, 2): berry injury level.

  • Historique (0–1): historical disease pressure (proportion of past years with infection).

The model is not tied to any specific grape variety or crop.

🏗️ Training data

Main dataset

  • 1,500 training lines

  • 100 evaluation lines Format: JSONL (messages) with a separate system prompt applied during training.

Calibration

  • A small 12-sample middle-zone dataset was used to improve the classification of intermediate risk situations (moderate PRB + mixed factors).

🛠️ Training method

  • Base model: mistralai/Mistral-7B-Instruct-v0.3

  • Method: Supervised fine-tuning + LoRA

  • Precision: fp16

  • LoRA target modules :

  • q_proj, k_proj, v_proj, o_proj,

  • gate_proj, up_proj, down_proj

📈 Qualitative results

  • Correct detection of low-risk and high-risk scenarios.

  • Improved stability on medium-risk cases after calibration.

  • Clear and concise agronomic recommendations.

⚠️ Limitations

  • Uses synthetic data; not a replacement for expert analysis.

  • Designed for exploration and prototyping.

  • Some borderline cases remain conservatively classified.

📄 Author

Model designed by Jérôme Frasson, as part of an exploratory study on domain-specific AI applied to agronomy.

Downloads last month
28
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for jeromex1/lyra_Botrytis_mistral7B_LoRA

Adapter
(536)
this model