feat: rééquilibrage dataset LoRA — raisonnement DIM vs mémorisation
Passe de 95/3/2 (lookups/raisonnement/règles) à ~31/49/20. Dataset cible ~16K exemples denses (vs 66K de lookups avant). Modifiés : - 03_convert_cache.py : cache complet 1840 entrées (actuel + backup) - 04_build_dataset.py : subsampling agressif (CIM-10 1.5K, CCAM 1.5K, CoCoA 2K) + sélection intelligente priorisant le raisonnement - 12_generate_pipeline_examples.py : 3 templates (court + long + CPAM), cache actuel, cible ~2800 exemples Créés : - 13_generate_fascicule_reasoning.py : parsing 10 fascicules ATIH, génération Q&A raisonnement via Claude Opus 4.6 (~450 exemples) - 14_generate_negative_examples.py : 1000 exemples négatifs (symptômes/DP, redondances sémantiques, DAS non significatifs) - 15_generate_discrimination.py : 800 exercices de discrimination entre codes siblings CIM-10 via Claude Opus 4.6 - 16_parse_guide_metho.py : extraction Guide Méthodologique MCO 2026, Q&A directes + raisonnement via Claude Opus 4.6 (~500 exemples) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
64
runpod/README.md
Normal file
64
runpod/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Fine-tuning pmsi-coder sur RunPod
|
||||
|
||||
## 1. Créer un pod
|
||||
|
||||
- **Template** : RunPod PyTorch 2.4+ (CUDA 12.x)
|
||||
- **GPU recommandé** : A100 40GB (~1.50€/h) ou A100 80GB (~2.50€/h)
|
||||
- **Disk** : 50 Go minimum (modèle 12B + dataset + GGUF)
|
||||
- **Volume persistant** : optionnel, utile si on veut garder les checkpoints
|
||||
|
||||
## 2. Upload des fichiers
|
||||
|
||||
```bash
|
||||
# Depuis la machine locale
|
||||
rsync -avz --progress \
|
||||
runpod/ \
|
||||
root@RUNPOD_IP:/workspace/t2a-finetune/
|
||||
|
||||
# Ou via l'interface web RunPod (Jupyter → upload)
|
||||
```
|
||||
|
||||
Les fichiers nécessaires :
|
||||
- `train_runpod.py` — script d'entraînement
|
||||
- `setup.sh` — installation des dépendances
|
||||
- `data/pmsi_train.jsonl` — dataset train (38 Mo)
|
||||
- `data/pmsi_eval.jsonl` — dataset eval (4.2 Mo)
|
||||
|
||||
## 3. Setup
|
||||
|
||||
```bash
|
||||
cd /workspace/t2a-finetune
|
||||
bash setup.sh
|
||||
```
|
||||
|
||||
## 4. Lancer l'entraînement
|
||||
|
||||
```bash
|
||||
python train_runpod.py --epochs 3 --export-gguf
|
||||
```
|
||||
|
||||
Options :
|
||||
- `--max-seq-length 2048` (défaut, vs 512 en local)
|
||||
- `--batch 0` (auto-detect selon VRAM, défaut)
|
||||
- `--lr 2e-4` (learning rate)
|
||||
- `--lora-r 32` (rang LoRA)
|
||||
- `--export-gguf` (produire le .gguf pour Ollama)
|
||||
|
||||
## 5. Récupérer le GGUF
|
||||
|
||||
```bash
|
||||
# Sur la machine locale
|
||||
scp root@RUNPOD_IP:/workspace/t2a-finetune/models/pmsi-gguf/*.gguf .
|
||||
scp root@RUNPOD_IP:/workspace/t2a-finetune/models/pmsi-gguf/Modelfile .
|
||||
|
||||
# Importer dans Ollama
|
||||
ollama create pmsi-coder -f Modelfile
|
||||
```
|
||||
|
||||
## Estimations
|
||||
|
||||
| GPU | Batch | Temps 3 epochs | Coût |
|
||||
|-----|-------|----------------|------|
|
||||
| A100 40GB | 4 | ~2-3h | ~4-5€ |
|
||||
| A100 80GB | 8 | ~1.5-2h | ~4-5€ |
|
||||
| H100 80GB | 8 | ~1-1.5h | ~4-5€ |
|
||||
Reference in New Issue
Block a user