Instructions to use HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP") model = AutoModelForCausalLM.from_pretrained("HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP
- SGLang
How to use HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP with Docker Model Runner:
docker model run hf.co/HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP")
model = AutoModelForCausalLM.from_pretrained("HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP", device_map="auto")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))HealthDataHub/PARTAGES-Qwen3-8B-Base
Objectifs de l'algorithme
Les modèles de langage PARTAGES ont pour objectif de servir de base préapprise, pouvant être adaptée à différentes tâches et à différents cas d’usage au sein des établissements de santé.
Ce modèle est un modèle de langue causal (décodeur) de 8 milliards de paramètres, obtenu par pré-entraînement continu (DAPT, Domain-Adaptive Pre-Training) de Qwen3-8B-Base sur le corpus biomédical français PARCOMED, puis fusionné (SLERP) avec le modèle de base afin de limiter la dégradation des capacités générales.
Contrairement aux modèles PARTAGES-research, ce modèle a été appris uniquement à partir de sources dont la licence autorise un usage commercial. Il est donc compatible avec un usage de recherche comme avec un usage commercial.
Méthodologie
Données utilisées
- Corpus PARCOMED (version compatible avec un usage commercial) : 892 343 documents, environ 884 millions de mots, essentiellement des documents scientifiques (≈ 94 % des mots : HAL, HAS, ISTEX…), complétés par des notices de médicaments (BDPM, EMEA V3), des cas cliniques synthétiques (FRASIMED), des textes réglementaires (CNEDiMTS, QUALISCOPE), des articles Wikipédia (médecine, pharmacie, biologie) et d'autres sources. Le détail des sources est donné dans la table 1 de l'article associé.
Prétraitement des données
- Nettoyage des documents (pipeline inspiré de FlauBERT) : conversion et normalisation Unicode, suppression des caractères hors encodage français standard, suppression des espaces multiples et des URL.
- Tokenisation avec le tokenizer de
Qwen3-8B-Base. - Découpage en séquences de 2 048 tokens (les documents plus longs sont découpés avec un chevauchement de 4 tokens). Le corpus tokenisé représente environ 1,95 milliard de tokens.
Pré-entraînement continu (Causal Language Modeling)
Le modèle a été initialisé à partir des poids de Qwen3-8B-Base, puis entraîné en continu sur PARCOMED avec un objectif de modélisation de langue causale (CLM), avec les hyperparamètres suivants :
| Paramètre | Valeur |
|---|---|
| Modèle de base | Qwen3-8B-Base |
| Objectif | Causal Language Modeling |
| Longueur de séquence | 2 048 tokens |
| Nombre total de pas de mise à jour | 4 320 (≈ 2,53 époques) |
| Taille de batch effective | 1 152 séquences (accumulation de gradient et parallélisme de données inclus) |
| Learning rate | 2e-5, constant |
| Warmup | Aucun |
| Précision | BF16 |
| Parallélisme | PyTorch Fully Sharded Data Parallel (FSDP) |
| Matériel | 48 GPU NVIDIA H100 (supercalculateur Jean Zay, GENCI/IDRIS) |
Un checkpoint a été sauvegardé tous les 720 pas. Le checkpoint retenu pour la fusion est celui du pas 1440.
Fusion de modèles (SLERP)
Le pré-entraînement continu seul dégrade les performances sur les tâches hors domaine médical. Les poids du checkpoint spécialisé ont donc été combinés avec ceux du modèle de base par interpolation sphérique linéaire (SLERP, avec mergekit), avec un coefficient t = 0.5. C'est ce modèle fusionné qui est publié ici.
Modèles fusionnés
Qwen/Qwen3-8B-Base- Checkpoint PARTAGES-PDAPT de
Qwen3-8B-Base(pas 1440)
Configuration
slices:
- sources:
- model: Qwen/Qwen3-8B-Base
layer_range: [0, 36]
- model: <checkpoint PDAPT, pas 1440>
layer_range: [0, 36]
merge_method: slerp
base_model: Qwen/Qwen3-8B-Base
parameters:
t:
- value: 0.5
dtype: bfloat16
Validation
L'évaluation repose sur le framework lm-evaluation-harness, avec quatre groupes de tâches (7 tâches chacun) : médecine en français (FR-MEDICAL, domaine et langue cibles), médecine en anglais (EN-MEDICAL), et autres domaines spécialisés en français et en anglais (FR-OTHER, EN-OTHER). Les tâches médicales sont issues de MMLU (3-shot, accuracy) et de MMLU-Pro-X (5-shot, exact match) pour la catégorie « Health » ; les tâches hors médecine sont issues de MMLU-Pro-X (5-shot, exact match). Les versions françaises de MMLU proviennent des traductions de BioMistral. Les valeurs sont données avec l'erreur standard (bootstrap).
Les résultats ci-dessous comparent Qwen3-8B-Base, le modèle après pré-entraînement continu seul (+PDAPT) et le modèle fusionné publié ici (+SLERP).
FR-MEDICAL (accuracy, %)
| Modèle | Anat. | C.K. | CBio. | CMed. | Health | MGen. | ProMed. |
|---|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 62.2±4.2 | 74.7±2.7 | 87.5±2.8 | 75.7±3.3 | 50.2±1.9 | 80.0±4.0 | 76.5±2.6 |
| +PDAPT | 61.5±4.2 | 76.2±2.6 | 86.8±2.8 | 76.9±3.2 | 45.9±1.9 | 80.0±4.0 | 76.1±2.6 |
| +SLERP (ce modèle) | 60.0±4.2 | 77.4±2.6 | 86.8±2.8 | 76.3±3.2 | 49.8±1.9 | 79.0±4.1 | 75.7±2.6 |
EN-MEDICAL (accuracy, %)
| Modèle | Anat. | C.K. | CBio. | CMed. | Health | MGen. | ProMed. |
|---|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 74.1±3.8 | 80.0±2.5 | 88.9±2.6 | 78.0±3.2 | 55.8±1.9 | 86.0±3.5 | 83.5±2.3 |
| +PDAPT | 70.4±3.9 | 78.9±2.5 | 84.7±3.0 | 76.9±3.2 | 55.0±1.9 | 85.0±3.6 | 80.9±2.4 |
| +SLERP (ce modèle) | 72.6±3.9 | 81.5±2.4 | 88.9±2.6 | 76.9±3.2 | 57.1±1.9 | 86.0±3.5 | 81.6±2.4 |
FR-OTHER (exact match, %)
| Modèle | Bus. | CS | Econ. | Hist. | Law | Phil. | Psych. |
|---|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 61.5±1.7 | 50.5±2.5 | 62.7±1.7 | 40.2±2.5 | 23.5±1.4 | 4.9±2.2 | 60.5±1.7 |
| +PDAPT | 55.4±1.8 | 45.6±2.5 | 61.1±1.7 | 39.4±2.5 | 21.1±1.3 | 41.7±2.2 | 59.3±1.7 |
| +SLERP (ce modèle) | 58.2±1.8 | 53.7±2.5 | 63.6±1.7 | 41.5±2.5 | 23.8±1.4 | 45.5±2.2 | 61.2±1.7 |
EN-OTHER (exact match, %)
| Modèle | Bus. | CS | Econ. | Hist. | Law | Phil. | Psych. |
|---|---|---|---|---|---|---|---|
| Qwen3-8B-Base | 62.5±1.7 | 60.2±2.4 | 68.2±1.6 | 48.3±2.6 | 29.6±1.5 | 49.3±2.2 | 67.2±1.7 |
| +PDAPT | 60.7±1.7 | 59.8±2.4 | 68.2±1.6 | 49.9±2.6 | 27.7±1.4 | 47.1±2.2 | 66.0±1.7 |
| +SLERP (ce modèle) | 62.6±1.7 | 58.3±2.4 | 67.4±1.6 | 49.9±2.6 | 29.7±1.5 | 50.7±2.2 | 66.2±1.7 |
Principaux constats (voir l'article pour l'analyse complète) :
- Pour ce modèle de 8 milliards de paramètres, l'effet de l'adaptation est le plus faible : sur FR-MEDICAL, seules quelques tâches progressent (
Clinical Knowledge77.4 contre 74.7,Professional MedicineetCollege Biologyrestent proches du modèle de base). - Le pré-entraînement continu seul fait baisser significativement
Healthen français (50.2 → 45.9) ; la fusion SLERP ramène ce score à 49.8, soit un niveau statistiquement équivalent au modèle de base. - Après fusion SLERP, plus aucune baisse statistiquement significative n'est observée sur les tâches hors domaine.
- À l'échelle des moyennes par groupe, l'effet global du DAPT reste minime, et diminue à mesure que la taille du modèle augmente.
Date de dernière mise à jour
- v1.0 : octobre 2026
Comment utiliser l'algorithme
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "HealthDataHub/PARTAGES-Qwen3-8B-Base"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
Il s'agit d'un modèle de base (non instruit) destiné à être affiné sur des tâches spécifiques. Le code des expériences est disponible sur PARTAGES-dev/partages-llm.
Support
Point de contact HDH : direction.scientifique@health-data-hub.fr
Usage prévu et limites d’utilisation
Ce modèle est un modèle de langue préappris destiné à être adapté à des tâches spécifiques. Il n’est pas destiné à être utilisé tel quel en production. Les performances et les limites du modèle dépendent du cas d’usage et des données utilisées pour son adaptation. Les résultats doivent être évalués et validés avant toute utilisation opérationnelle. Dans le domaine de la santé, ce modèle ne constitue pas en lui-même un dispositif médical, un outil de diagnostic ou une aide à la décision clinique. Toute utilisation dans un contexte clinique doit faire l’objet d’une validation appropriée et respecter les exigences réglementaires applicables.
Limites connues : le modèle a été évalué uniquement sur des questions à choix multiples (MMLU, MMLU-Pro-X) et non sur des tâches de traitement de documents cliniques ; seule la famille Qwen3 et l'objectif de modélisation causale ont été explorés ; le corpus est dominé par des documents scientifiques.
Citation
@inproceedings{mannion2026biomedical,
title = {Is Biomedical Specialization Still Worth It? Insights from Domain-Adaptive Language Modelling with a New French Health Corpus},
author = {Mannion, Aidan and Macaire, C{\'e}cile and Violle, Armand and Ohayon, St{\'e}phane and Tannier, Xavier and Schwab, Didier and Goeuriot, Lorraine and Portet, Fran{\c{c}}ois},
booktitle = {Proceedings of the Fifteenth Language Resources and Evaluation Conference (LREC 2026)},
pages = {10617--10633},
year = {2026},
address = {Palma, Spain}
}
Auteurs
- Aidan MANNION, Cécile MACAIRE, Armand VIOLLE, Stéphane OHAYON, Xavier TANNIER, Didier SCHWAB, Lorraine GOEURIOT, François PORTET (projet PARTAGES)
- Downloads last month
- 141
Model tree for HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP
Base model
Qwen/Qwen3-8B-Base
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="HealthDataHub/PARTAGES-Qwen3-8B-PDAPT-SLERP") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)