Présentation du projet
Ce projet offre une solution intégrée pour l'entraînement et le déploiement de modèles d'IA en utilisant PyTorch et l'écosystème Hugging Face. Il est conçu pour couvrir l'ensemble du flux de travail, depuis la préparation des données jusqu'à la mise en production.
Structure du dépôt
Le code source est organisé de manière modulaire, avec les répertoires principaux suivants :
- training/ : Contient les scripts et configurations pour l'entraînement des modèles.
- inference/ : Fournit des guides pour le déploiement et l'inférence des modèles.
- container/ : Inclut les fichiers nécessaires à la conteneurisation avec Docker.
Démarrage rapide
Clonage du référentiel
git clone https://github.com/exemple/deeplearn-projet
cd deeplearn-projet
Déploiement via conteneur
Utilisez Docker pour configurer l'environnement :
cd container
docker build -t deeplearn-env .
docker run -it --gpus all deeplearn-env
Processus d'entraînement des modèles
Sélection de la méthode
Différentes techniques d'entraînement sont supportées :
- Supervised Fine-Tuning (SFT) : via le script
train_sft.py. - Direct Preference Optimization (DPO) : via
train_dpo.py. - Group Relative Policy Optimization (GRPO) : implémenté dans
train_grpo.py.
Configuration distribuée
Pour l'entraînement à grande échelle, des configurations sont disponibles :
ds_zero2_config.yaml: pour l'optimisation de mémoire avec DeepSpeed.fsdp_config.yaml: pour le parallélisme de données complet de PyTorch.
Surveillance de l'entraînement
Utilisez TensorBoard pour visualiser les métriques en temps réel :
Figure : Interface TensorBoard montrant l'évolution de la perte et du taux d'apprentissage durant l'entraînement.
Lors de l'entraînement d'un modèle de type T5, les courbes de métriques comme ROUGE peuvent être observées.
Optimisation et réglage des modèles
Ajustement par instructions
Le projet prend en charge l'ajustement par instructions pour améliorer la compréhension des requêtes naturelles par le modèle.
Figure : Schéma illustrant les principes de l'ajustement par instructions et du raisonnement en chaîne.
Quantification et efficacité
- Quantification GPTQ : implémentée dans
quantize_gptq.py. - Ajustement efficace avec LoRA : disponible via
fsdp_lora.py.
Évaluation des performances
Après l'entraînement, comparez les modèles à l'aide de métriques standardisées :
Figure : Graphique de comparaison des taux de succès entre les méthodes DPO et SFT.
Déploiement en production
Optimisation pour l'inférence
Le dossier inference/ propose des techniques comme :
- Inférence en précision FP8 : décrite dans
fp8_inférence.md. - Intégration avec vLLM : pour une inférence haute performance, voir
vllm_appels.md.
Conteneurisation pour la production
Utilisez le Dockerfile fourni dans container/Dockerfile pour créer une image de production stable.
Techniques avancées
Algorithme GRPO
Une implémantation de l'optimisation relative de groupe, une méthode d'apprentissage par renforecment pour l'affinage.
Figure : Pseudo-code décrivant le flux itératif de l'algorithme GRPO.
Surveillance multi-métriques
Suivez plusieurs indicateurs pendant l'entraînement pour une évaluation complète :
Figure : Exemple de tableau de bord affichant des métriques variées durant l'entraînement.
Ressources complémentaires
Consultez les sous-dossiers pour des guides détaillés :
training/recipes/: recettes d'entraînement prédéfinies.training/helpers/: fonctions utilitaires pour le prétraitement et l'évalaution.- Les notebooks Jupyter offrent des démonstrations interactives pour explorer les concepts.