Run this model inference on single tenant GPU with unmatched speed and reliability at scale.
Run this model inference with full control and performance in your environment.
Get help setting up a custom Dedicated Endpoints.
Talk with our engineer to get a quote for reserved GPU instances with discounts.
README
License: apache-2.0TL;DR (chiffres clés)
| Modèle | Méthode | Held-out 704 (strict) | Held-out 704 (indulgent) | Hallucination OOD |
|---|---|---|---|---|
| Ce modèle (CPT+SFT) | CPT synthétique + SFT | 63,8% | 80,3% | 12% |
gpt-oss-20b-FAQ-MES | SFT direct (20B) | 42,5% | 67,8% | 60% |
| SFT direct (notre ablation, Qwen3-14B) | SFT direct, sans CPT | 37,2% | 61,1% | 56% |
Le CPT préalable fait passer la précision closed-book de 37,2 % → 63,8% (strict) sur 704 questions held-out jamais vues, là où le SFT seul plafonne (le modèle « bluffe » les détails).
Données (toutes publiées)
| Rôle | Dataset | Contenu |
|---|---|---|
| Vérité de base | fenyo/MonEspaceSante-FAQ-QA | 88 faits real (source unique, ~15 400 tokens) + 496 reformulations |
| Corpus CPT | fenyo/H100-MonEspaceSante-CPT-corpus | ~3,87 M tokens synthétiques distincts (EntiGraph + Nemotron-CC FR), décontaminés |
| Données SFT | fenyo/H100-MonEspaceSante-SFT | 428 Q/R domaine + 120 refus hors-périmètre |
| Éval / jugement | fenyo/H100-MonEspaceSante-eval | 704 held-out gelées + validation 30 + OOD 25 + oubli 30 |
Pipeline complet (reproductible)
Matériel : 1× NVIDIA H100 PCIe 80 Go.
1) Génération synthétique (1-hop, anti model-collapse)
- Générateur : Qwen3-32B-FP8 servi par vLLM (
VLLM_USE_DEEP_GEMM=0; thinking désactivé viachat_template_kwargs.enable_thinking=False), piloté par NVIDIA NeMo Curator. - Prompts Nemotron-CC adaptés FR (rephrase Wikipédia, distill, extract-knowledge, knowledge-list, diverse-QA) + opérateur EntiGraph custom (passages reliant paires/triplets de faits réels).
- Tag de domaine
[Mon espace santé]; filtre qualité + déduplication (shingles n-grammes). - Décontamination vs held-out : embeddings bge-m3 (cos ≥ 0,90) + n-grammes (containment ≥ 0,6).
- Volume retenu : ~3,87 M tokens distincts (plafond extractible de 88 faits ; ~×260).
2) CPT — continued pre-training (full fine-tuning) → modèle de base enrichi
- Modèle :
Qwen/Qwen3-14B-Base, tous les poids entraînés. - Corpus : corpus CPT + 18 % de replay FR généraliste (anti-oubli, Ibrahim 2403.08763).
- Hyperparamètres : 3 epochs, lr 1e-5, cosine + warmup 3 %, weight_decay 0,01, grad clip 1,0, bf16, seq_len 2048, micro-batch 1 × accumulation 16, gradient checkpointing, attention SDPA.
- Optimiseur : bitsandbytes
paged_adamw_8bit(sans DeepSpeed — ZeRO-3 CPU-offload provoquait un OOM CPU ; le paged 8-bit tient en ~81 Go GPU paginé + ~25 Go RAM). - Résultat →
fenyo/H100-Qwen3-14B-MonEspaceSante-CPT.
3) SFT — restauration du format Q/R (pas d'injection de faits, cf. Gekhman 2405.05904)
- Données :
MonEspaceSante-SFT(428 Q/R domaine + 120 refus). - Format fixe :
Question : {q}\nRéponse : {a}; loss sur la réponse uniquement (prompt masqué). - Hyperparamètres : 12 epochs, lr 2e-5, cosine + warmup 3 %, bf16, seq_len 2048,
micro-batch 4 × accumulation 4, gradient checkpointing,
paged_adamw_8bit.
Inférence (closed-book)
python
prompt = f"Question : {question}\nRéponse :" # aucune donnée de contexte fournie# greedy (temperature=0), stop sur "\nQuestion :"
Résultats détaillés
Courbe accuracy vs tokens synthétiques (CPT+SFT, juge Qwen3-32B)
| Tokens synth. distincts | Held-out strict | Held-out indulgent | Validation strict | Validation indulgent |
|---|---|---|---|---|
| 0 (baseline SFT direct) | 37,2% | 61,1% | 43,3% | 53,3% |
| 478 k | 44,0% | 67,3% | 46,7% | 70,0% |
| 1,95 M | 52,6% | 72,7% | 63,3% | 80,0% |
| 3,87 M | 60,7% | 79,3% | 56,7% | 76,7% |
| 3,87 M × 2 exposition (probe plateau) | 65,1% | 81,5% | 56,7% | 70,0% |
La précision closed-book croît ~log-linéairement avec le nombre de tokens synthétiques, puis sature (rendements décroissants au-delà de ~4 M tokens distincts).
Comparaison directe vs gpt-oss-20b-FAQ-MES (même jeu de test, même juge)
| Métrique (closed-book) | Ce modèle (CPT+SFT, 14B) | gpt-oss-20b-FAQ-MES (SFT, 20B) |
|---|---|---|
| Held-out 704 — strict | 63,8% | 42,5% |
| Held-out 704 — indulgent | 80,3% | 67,8% |
| Validation 30 — strict | 56,7% | 46,7% |
| Validation 30 — indulgent | 70,0% | 70,0% |
| Hallucination hors-domaine | 12% | 60% |
| Oubli (culture générale FR) | 100% correct | 96,7% correct |
Note d'équité : gpt-oss-20b-FAQ-MES a été évalué via transformers (implémentation de référence) et non vLLM 0.22, dont le kernel MoE produisait des sorties incohérentes pour cette architecture (gpt_oss). Mêmes 704 questions held-out, même juge Qwen3-32B, même barème.
Protocole de jugement : LLM-juge Qwen3-32B, closed-book, deux barèmes — strict (faits-clés présents ET aucune contradiction) et indulgent (idée générale correcte, tolère détails imprécis).
Conclusions & enseignements (chiffres simples)
- Le CPT préalable change la donne. À jeu de test et juge identiques, le SFT direct sur la base plafonne à 37,2 % (strict, held-out) : le modèle apprend le format mais invente les détails (mauvais portail, mauvais bouton, mauvais horaire). Avec un CPT préalable, on atteint 63,8% — soit ×1,7 la précision du SFT seul.
- Plus de tokens synthétiques = plus de précision, de façon log-linéaire : 37 → 44 → 53 → 61 % (strict) pour 0 → 0,5 → 2 → 3,9 M tokens. Le levier dominant est le volume de connaissances distinctes ré-exprimées, pas la taille du modèle.
- Plafond de données : à partir de 88 faits (~15 k tokens), on extrait ~3,9 M tokens distincts (×260) ; au-delà, la génération se répète et la précision sature (+4 pts seulement en doublant l'exposition).
- Anti-hallucination : ajouter 120 exemples de refus au SFT fait chuter l'hallucination hors-domaine de 48 % → 12%, sans coût sur la précision factuelle.
- Pas d'oubli : grâce à 18 % de replay FR, la culture générale reste à 100% (aucun oubli catastrophique).
- Plus petit mais meilleur : ce modèle 14B dépasse
gpt-oss-20b-FAQ-MES(20B) sur le held-out (63,8% vs 42,5% strict), illustrant qu'injecter la connaissance dans les poids (CPT) > la montrer en SFT.
Limites
- Domaine étroit (FAQ « Mon espace santé »). Hors de ce domaine, comportement de base de Qwen3-14B.
- Précision closed-book non parfaite : pour un usage production, un RAG complémentaire reste pertinent.
- Le juge est un LLM (Qwen3-32B) ; les valeurs absolues dépendent du barème (strict/indulgent fournis).
Références
EntiGraph (arXiv:2409.07431) · WRAP (2401.16380) · Physics of LM 3.1 (2309.14316) · Gekhman et al. (2405.05904) · Continual pretraining (2403.08763) · Nemotron-CC (NVIDIA NeMo Curator).
Model provider
fenyo
Model tree
Base
fenyo/H100-Qwen3-14B-MonEspaceSante-CPT
Fine-tuned
this model
Modalities
Input
Text
Output
Text
Pricing
Dedicated Endpoints
View detailsSupported Functionality
Model APIs
Dedicated Endpoints
Container
More information