Ce modèle est une adaptation LoRA (qLoRA 4 bits) du modèle mistralai/Mistral-7B-Instruct-v0.3, spécialisée pour l’évaluation rapide des risques santé liés à la qualité de l’air et aux conditions atmosphériques.
Le modèle apprend à répondre à des scénarios du type :
indice de qualité de l’air (IQA),
et à produire une évaluation synthétique du risque pour la population (ex. allergies, stress cardio-respiratoire).
Objectif : générer des alertes lisibles par des non-spécialistes, réutilisables dans des tableaux de bord santé-environnement, ou des assistants conseil air/santé locaux.
Ce modèle n’est pas un dispositif médical. C’est un système de priorisation / alerte précoce.
Base model
mistralai/Mistral-7B-Instruct-v0.3
Licence Mistral Instruct
Capacités conversationnelles en français et en anglais
Méthode d’entraînement
Technique : qLoRA 4 bits (PEFT)
GPU : environnement Colab Pro (GPU haut de gamme type A100)
L’entraînement n’a pas modifié tous les poids du modèle Mistral 7B.
Seules de petites matrices d’adaptation (LoRA adapters) ont été apprises.
C’est pourquoi ce repo publie uniquement ces adapters, pas les poids complets du modèle d’origine.
Epoch
Training Loss
Validation Loss
Entropy
Tokens traités
Mean Token Accuracy
1
0.3566
0.3021
0.2266
41 887
0.9258
2
0.2265
0.2253
0.2272
83 774
0.9293
3
0.2215
0.2218
0.2273
125 661
0.9299
Format des données
Chaque exemple du jeu d'entraînement est une conversation courte :
json
1{2"messages":[3{4"role":"user",5"content":"Conditions météo : Température = >30°C, Humidité = 40-70%, Inversion thermique = oui, Pollens = élevé, IQA = 5, Vent fort = oui, Pluie forte = non.\nQuels sont les impacts potentiels sur la santé ?"6},7{8"role":"assistant",9"content":"Niveau d’allergie : très élevé. Sensibilité cardiovasculaire : élevé."10}11]12}
Le tokenizer Mistral (mistralai/Mistral-7B-Instruct-v0.3) a été utilisé avec son chat_template pour convertir ces messages en texte d’entraînement.
🧪 Exemples d’inférence
Les exemples ci-dessous montrent le comportement du modèle lyra_air_sante_mistral7B_qLoRA sur cinq scénarios climatiques typiques.
Les entrées suivent la structure exacte du dataset (messages → user / assistant).
🧩 Test 1
Conditions météo : Température = 34°C, Humidité = 45%, Inversion thermique = oui,
Pollens = très élevé, IQA = 6, Vent fort = non, Pluie forte = non.
Question : Quels sont les impacts potentiels sur la santé ?
Réponse :
Niveau d’allergie : très élevé.
Sensibilité cardiovasculaire : élevé.
🧩 Test 2
Conditions météo : Température = 10°C, Humidité = 80%, Inversion thermique = non,
Pollens = faible, IQA = 2, Vent fort = oui, Pluie forte = oui.
Question : Effets possibles sur les personnes âgées ?
Réponse :
Niveau d’allergie : faible.
Sensibilité cardiovasculaire : faible.
🧩 Test 3
Conditions météo : Température = 28°C, Humidité = 30%, Inversion thermique = oui,
Pollens = moyen, IQA = 8, Vent fort = non, Pluie forte = non.
Question : Quels conseils pour les personnes asthmatiques ?
Réponse :
Niveau d’allergie : élevé.
Sensibilité cardiovasculaire : élevé.
🧩 Test 4
Conditions météo : Température = 22°C, Humidité = 60%, Inversion thermique = non,
Pollens = élevé, IQA = 4, Vent fort = oui, Pluie forte = non.
Question : Risque pour les travailleurs en extérieur ?
Réponse :
Niveau d’allergie : élevé.
Sensibilité cardiovasculaire : faible.
🧩 Test 5
Conditions météo : Température = 36°C, Humidité = 50%, Inversion thermique = oui,
Pollens = faible, IQA = 7, Vent fort = non, Pluie forte = non.
Question : Quels effets combinés chaleur + pollution prévoir ?
Réponse :
Niveau d’allergie : faible.
Sensibilité cardiovasculaire : élevé.
Comment utiliser ces adapters
Charger le modèle de base Mistral 7B Instruct.
Charger les adapters LoRA.
Fusionner pour l’inférence.
Exemple (Python) :
python
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3from peft import PeftModel
45base_model_id ="mistralai/Mistral-7B-Instruct-v0.3"6adapter_id ="jeromex1/lyra_air_sante_mistral7B_qLoRA"78tokenizer = AutoTokenizer.from_pretrained(base_model_id)910model = AutoModelForCausalLM.from_pretrained(11 base_model_id,12 torch_dtype=torch.float16,13 device_map="auto"14)1516model = PeftModel.from_pretrained(17 model,18 adapter_id
19)2021prompt =(22"Conditions météo : Température = 32°C, Humidité = 60%, "23"Inversion thermique = oui, Pollens = très élevé, "24"IQA = 5 (mauvais), Vent fort = non, Pluie forte = non.\n"25"Quels sont les impacts potentiels sur la santé ?"26)2728inputs = tokenizer(prompt, return_tensors="pt").to(model.device)29with torch.no_grad():30 out = model.generate(31**inputs,32 max_new_tokens=128,33 temperature=0.7,34 top_p=0.9,35)3637print(tokenizer.decode(out[0], skip_special_tokens=True))
Le modèle doit répondre avec une synthèse structurée du risque, par exemple :
allergies,
irritation respiratoire,
charge thermique,
stress cardio pour personnes fragiles.
Cas d’usage cibles
Alerte locale air/santé pour des collectivités ou associations.
Vulgarisation grand public (messages courts, lisibles).
Base pour agents IA environnement-santé (tableau de bord quotidien).
Déclenchement d’avertissements spécifiques (personnes asthmatiques, personnes âgées, travailleurs extérieurs, etc.).
Limites importantes
Le modèle ne remplace pas un avis médical ni un service d’urgence.
Les scores de risque ne sont pas calibrés médicalement pour un territoire précis.
Les prédictions se basent sur des conditions environnementales déclarées dans l’entrée. Si l’entrée est incomplète ou imprécise, la sortie peut l’être aussi.
Le modèle a été fine-tuné sur un volume relativement compact (quelques centaines d’exemples ciblés). Il est spécialisé, mais pas omniscient.
Avertissement éthique
Ne pas utiliser ce modèle pour prendre des décisions cliniques immédiates (diagnostic, traitement).
Ne pas utiliser ce modèle pour trier des individus d’un point de vue assurantiel, RH ou légal.
L’usage raisonnable est : sensibilisation, vulgarisation, aide à la décision publique.
Auteur / contact
Auteur / entraînement : Jérôme (jeromex1)
Pipeline : préparation dataset JSONL -> chat template Mistral -> qLoRA 4 bits sur GPU Colab Pro -> publication des adapters.
Positionnement : IA appliquée environnement / santé publique locale.
📘 Pour en savoir plus, rendez-vous sur ma page GitHub consacrée au projet : 👉 Mistral_7B_AirQuality_LoRA
lyra_air_sante_mistral7B_qLoRA
Description
This model is a LoRA adaptation (qLoRA 4-bit) of mistralai/Mistral-7B-Instruct-v0.3, specialized for rapid health risk assessment related to air quality and atmospheric conditions.
The model learns to respond to scenarios combining:
temperature / humidity / thermal inversion,
pollen and particulate levels,
strong wind / rainfall,
Air Quality Index (AQI),
and to generate a synthetic health risk evaluation (e.g., allergies, cardio-respiratory stress).
Goal: produce short, readable alerts suitable for environmental health dashboards or local air/health assistant systems.
⚠️ This model is not a medical device, but an early alert and prioritization system.
Base Model
mistralai/Mistral-7B-Instruct-v0.3
Mistral Instruct License
Bilingual conversational capabilities (French and English)
Training Method
Technique: qLoRA 4-bit (PEFT)
GPU: Colab Pro environment (high-end GPU such as A100)
Only small LoRA adapter matrices were trained — not the full model weights.
Therefore, this repository only publishes the adapters, not the base weights.
Epoch
Training Loss
Validation Loss
Entropy
Tokens Processed
Mean Token Accuracy
1
0.3566
0.3021
0.2266
41,887
0.9258
2
0.2265
0.2253
0.2272
83,774
0.9293
3
0.2215
0.2218
0.2273
125,661
0.9299
Data Format
Each training sample is a short chat pair:
json
1{2"messages":[3{4"role":"user",5"content":"Weather conditions: Temperature = >30°C, Humidity = 40-70%, Thermal inversion = yes, Pollen = high, AQI = 5, Strong wind = yes, Heavy rain = no.\nWhat are the potential health impacts?"6},7{8"role":"assistant",9"content":"Allergy level: very high. Cardiovascular sensitivity: high."10}11]12}13The Mistral tokenizer (mistralai/Mistral-7B-Instruct-v0.3) was used with its chat_template to convert these messages into training text.
1415🧪 Inference Examples
16Below are five sample predictions illustrating the behavior of lyra_air_sante_mistral7B_qLoRA.
1718🧩 Test 119Weather: Temperature = 34°C, Humidity = 45%, Thermal inversion = yes, Pollen = very high, AQI = 6, Strong wind = no, Heavy rain = no.
20Question: What are the potential health impacts?
2122Answer:23Allergy level: very high.
24Cardiovascular sensitivity: high.
2526🧩 Test 227Weather: Temperature = 10°C, Humidity = 80%, Thermal inversion = no, Pollen = low, AQI = 2, Strong wind = yes, Heavy rain = yes.
28Question: Effects on elderly people?
2930Answer:31Allergy level: low.
32Cardiovascular sensitivity: low.
3334🧩 Test 335Weather: Temperature = 28°C, Humidity = 30%, Thermal inversion = yes, Pollen = medium, AQI = 8, Strong wind = no, Heavy rain = no.
36Question: Recommendations for asthmatic individuals?
3738Answer:39Allergy level: high.
40Cardiovascular sensitivity: high.
4142🧩 Test 443Weather: Temperature = 22°C, Humidity = 60%, Thermal inversion = no, Pollen = high, AQI = 4, Strong wind = yes, Heavy rain = no.
44Question: Risk for outdoor workers?
4546Answer:47Allergy level: high.
48Cardiovascular sensitivity: low.
4950🧩 Test 551Weather: Temperature = 36°C, Humidity = 50%, Thermal inversion = yes, Pollen = low, AQI = 7, Strong wind = no, Heavy rain = no.
52Question: Combined effects of heat and pollution?
5354Answer:55Allergy level: low.
56Cardiovascular sensitivity: high.
5758Using the Adapters
59Load the base Mistral 7B Instruct model
6061Load the LoRA adapters
6263Merge them for inference
6465Example (Python):6667python
68Copier le code
69import torch
70from transformers import AutoModelForCausalLM, AutoTokenizer
71from peft import PeftModel
7273base_model_id = "mistralai/Mistral-7B-Instruct-v0.3"74adapter_id = "jeromex1/lyra_air_sante_mistral7B_qLoRA"7576tokenizer = AutoTokenizer.from_pretrained(base_model_id)
7778model = AutoModelForCausalLM.from_pretrained(
79 base_model_id,80 torch_dtype=torch.float16,81 device_map="auto"82)
8384model = PeftModel.from_pretrained(model, adapter_id)
8586prompt = (
87"Weather conditions: Temperature = 32°C, Humidity = 60%, "88"Thermal inversion = yes, Pollen = very high, "89"AQI = 5 (poor), Strong wind = no, Heavy rain = no.\n"90"What are the potential health impacts?"91)
9293inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
94with torch.no_grad():95 out = model.generate(
96 **inputs,97 max_new_tokens=128,98 temperature=0.7,99 top_p=0.9,100 )
101102print(tokenizer.decode(out[0], skip_special_tokens=True))
103Expected output:104A structured summary of health risks such as allergies, respiratory irritation, thermal stress, or cardio strain for vulnerable groups.
105106Target Use Cases
107Local air/health alert systems for municipalities or associations
108109Public communication (short, readable messages)
110111Environmental health dashboards and daily reports
112113Risk alerts for specific populations (asthmatics, elderly, outdoor workers, etc.)
114115Limitations
116The model does not replace medical expertise or emergency services.
117118Risk scores are not medically calibrated to a specific region.
119120Predictions depend on the completeness of the environmental input data.
121122The fine-tuning dataset is small (a few hundred curated examples). It’s specialized but not general-purpose.
123124Ethical Disclaimer
125Do not use this model for clinical diagnosis or treatment.
126127Do not use it for insurance, HR, or legal decision-making.
128129Intended use: awareness, public communication, and policy support.
130131Author / Contact
132Author / Training: Jérôme (jeromex1)
133134Pipeline: dataset preparation → Mistral chat template → qLoRA 4-bit fine-tuning on Colab GPU → adapter publication
135136Focus: Applied AI for environmental and public health intelligence.
137138📘 Discover my 45+ STEM and AI projects on GitHub : 👉 [github.com/Jerome-openclassroom](https://github.com/Jerome-openclassroom/)139140📘 **To know more about this project**, see here : 👉 [Mistral_7B_AirQuality_LoRA](https://github.com/Jerome-openclassroom/Mistral_7B_AirQuality_LoRA/blob/main/README_En.md)