Optimiser Gemma 4 31B pour les limites Kaggle : Quantification et gestion de la mémoire
Le modèle Gemma 4 31B au format float16 occupe 62 Go, dépassant la limite de disque de 57,6 Go de Kaggle. La tâche consiste à charger le modèle complet, le quantifier en représentation 4 bits (18 Go), et sauvegarder le résultat sans excéder l'espace disponible. La solution est implémentée en utilisant séquentiellement la VRAM de deux GPU T4 de 15 Go chacun, avec device_map="auto" de la bibliothèque bitsandbytes en type NF4.
La quantification s'exécute en parallèle du chargement : les poids sont compressés immédiatement après leur transfert en mémoire vidéo, minimisant l'utilisation maximale du disque.
Libérer de l'espace : Supprimer le cache pendant l'opération
Après avoir chargé complètement le modèle en VRAM, shutil.rmtree() est appliqué pour supprimer le dossier cache Hugging Face. Sous Linux, c'est possible pour les fichiers ouverts — l'espace devient disponible pour de nouvelles opérations, bien que du l'affiche toujours comme occupé.
Processus :
- Le modèle est chargé et quantifié en mémoire.
- Les 62 Go originaux sont supprimés.
- L'espace libéré est utilisé pour décharger les 18 Go de poids quantifiés.
# Exemple de téléversement en flux
model.push_to_hub("repo_id", safe_serialization=True)
Cette approche contourne la barrière mathématique de 62 + 18 = 80 Go.
Détails d'implémentation sur les GPU T4
La bibliothèque bitsandbytes répartit les couches du modèle entre deux T4. La quantification NF4 réduit la taille par 4 sans perte significative de qualité pour les tâches de compréhension et génération de code. Séquence complète :
- Initialisation avec
device_map="auto". - Quantification parallèle des fragments.
- Suppression du cache après transfert en VRAM.
- Publication directe sur le dépôt via
push_to_hub.
Résultat — une taille de modèle de 18,3 Go, compatible avec les GPU grand public.
Avantages de la méthode pour le MLOps
Cette technique est applicable aux grands modèles dans des environnements contraints :
- Exigences minimales : Seulement des plateformes gratuites comme Kaggle.
- Automatisation : Le script s'exécute sans intervention manuelle.
- Conservation de la qualité : NF4 maintient les performances au niveau float16 pour l'inférence.
- Évolutivité : Facilement adaptable à d'autres limites (ex. Colab).
La méthode ne nécessite pas de clusters A100 et fonctionne sur du matériel standard.
Points clés à retenir
- La quantification NF4 via
bitsandbytespermet de compresser 62 Go à 18 Go à la volée. - Supprimer le cache Hugging Face avec des fichiers ouverts libère de l'espace disque pendant l'opération.
device_map="auto"répartit la charge sur plusieurs GPU T4.- Le téléversement direct avec
push_to_hubélimine la sauvegarde intermédiaire. - L'approche convient à Gemma 4 31B et modèles similaires avec plus de 30 milliards de paramètres.
— Editorial Team
Aucun commentaire pour le moment.