TACO vient de paraître sur arXiv et s’attaque à l’un des goulots d’étranglement mémoire les plus sévères du fine-tuning des LLM : les états de l’optimiseur.
La plupart des gens se focalisent sur les paramètres du modèle, mais les états de l’optimiseur (tampons de momentum, estimations de variance dans Adam) peuvent consommer 2 à 3 fois plus de mémoire que les paramètres. Pour un modèle de 7B, c’est énorme.
L’approche de TACO : la quantification ternaire des états de l’optimiseur. Au lieu de stocker des valeurs complètes en float32/bfloat16, ils les compressent sous forme de représentations {-1, 0, +1}. Selon l’article, il est possible de préserver la qualité de convergence tout en réduisant considérablement la mémoire occupée par l’optimiseur.
C’est important, car cela :
- Permet de fine-tuner des modèles plus grands avec le même matériel
- Réduit la pression sur la bande passante mémoire pendant l’entraînement
- Pourrait améliorer l’efficacité des configurations multi-GPU en réduisant les coûts de synchronisation des états de l’optimiseur
Si vous utilisez LoRA, QLoRA ou le fine-tuning complet et que vous vous heurtez sans cesse à des erreurs OOM, cette technique pourrait vous donner la marge nécessaire. Le véritable test sera de voir si elle tient la route avec différentes architectures de modèles et différents types de tâches.
La plupart des gens se focalisent sur les paramètres du modèle, mais les états de l’optimiseur (tampons de momentum, estimations de variance dans Adam) peuvent consommer 2 à 3 fois plus de mémoire que les paramètres. Pour un modèle de 7B, c’est énorme.
L’approche de TACO : la quantification ternaire des états de l’optimiseur. Au lieu de stocker des valeurs complètes en float32/bfloat16, ils les compressent sous forme de représentations {-1, 0, +1}. Selon l’article, il est possible de préserver la qualité de convergence tout en réduisant considérablement la mémoire occupée par l’optimiseur.
C’est important, car cela :
- Permet de fine-tuner des modèles plus grands avec le même matériel
- Réduit la pression sur la bande passante mémoire pendant l’entraînement
- Pourrait améliorer l’efficacité des configurations multi-GPU en réduisant les coûts de synchronisation des états de l’optimiseur
Si vous utilisez LoRA, QLoRA ou le fine-tuning complet et que vous vous heurtez sans cesse à des erreurs OOM, cette technique pourrait vous donner la marge nécessaire. Le véritable test sera de voir si elle tient la route avec différentes architectures de modèles et différents types de tâches.