ARIA-ft — Diagnostic biomécanique course à pied

Modèle fine-tuné à partir de MedGemma 4B-it pour le diagnostic biomécanique des blessures de course à pied.

Entraîné via un pipeline SFT + DPO sur des données synthétiques couvrant 6 pathologies courantes.

Pathologies couvertes

Pathologie Signal discriminant
Lombalgie mécanique inclinaison_tronc > 7°
Syndrome fémoro-patellaire (SFP) valgus_genou > 10°
Syndrome bandelette ilio-tibiale (SBIT) adduction_hanche > 10°
Périostite tibiale longueur_foulée > 1.35 m
Fasciite plantaire pronation_pied > 6° + rigidité cheville
Tendinite Achille heel_strike_index élevé + dorsiflexion_max > 15°

Utilisation

Le modèle est conçu pour être servi via vLLM avec guided decoding JSON (xgrammar).

Diagnostic structuré

import openai

client = openai.OpenAI(base_url="http://localhost:8001/v1", api_key="aria-local")

response = client.chat.completions.create(
    model="aria-ft",
    messages=[{
        "role": "user",
        "content": (
            "Analyse bioméchanique d'un coureur : cadence=147 spm, "
            "valgus_genou=13.9°, asymétrie_charge=24.1%. "
            "Génère un diagnostic structuré."
        )
    }],
    temperature=0.1,
    max_tokens=256,
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "diagnostic",
            "schema": {
                "type": "object",
                "properties": {
                    "pathologie":    {"type": "string"},
                    "confiance":     {"enum": ["élevée", "modérée", "faible"]},
                    "justification": {"type": "string"}
                },
                "required": ["pathologie", "confiance", "justification"]
            }
        }
    }
)
print(response.choices[0].message.content)
# {"pathologie": "SFP", "confiance": "élevée", "justification": "..."}

Rapport libre

response = client.chat.completions.create(
    model="aria-ft",
    messages=[{
        "role": "user",
        "content": (
            "Analyse bioméchanique d'un coureur : cadence=147 spm, "
            "valgus_genou=13.9°, asymétrie_charge=24.1%. "
            "Génère le rapport ARIA."
        )
    }],
    temperature=0.3,
    max_tokens=2048,
)
print(response.choices[0].message.content)

Serving recommandé

vllm serve aria-ft-dpo \
  --served-model-name aria-ft \
  --dtype bfloat16 \
  --max-model-len 4096 \
  --structured-outputs-config '{"backend":"xgrammar"}' \
  --gpu-memory-utilization 0.90

Pipeline d'entraînement

Étape Détails
Base google/medgemma-4b-it
Phase 1 — SFT QLoRA NF4, r=32, α=64, 560 steps, lr=2e-4
Phase 2 — DPO QLoRA NF4, r=16, α=32, 135 steps, lr=2e-5, β=0.2
Fusion LoRA mergé en bfloat16 pour compatibilité vLLM
GPU RTX 4060 Ti 16 GB

Performances

Métrique Résultat
JSON valide (guided decoding) 100%
Exact match pathologie ≥ 83%
Latence P50 diagnostic < 2s
Latence P99 diagnostic < 3s

Licence

Ce modèle est dérivé de MedGemma 4B-it, soumis à la licence Google Health AI Developer Foundations. Usage réservé à la recherche et aux applications non cliniques.

Downloads last month
27
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for FrancoisFormation/aria-ft-dpo

Finetuned
(600)
this model