LoRA : Adaptation de Faible Rang des Modèles Linguistiques Énormes

Un paradigme important du traitement automatique du langage naturel repose sur l'entraînement préalable à grande échelle sur des données de domaine général, suivi d'une adaptation à des tâches ou domaines spécifiques. À mesure que nous entraînons des modèles de plus en plus volumineux, l'ajustement fin (fine-tuning) complet, qui consiste à réentraîner tous les paramètres du modèle, devient de moins en moins réalisable. En prenant GPT-3 à 175 milliards de paramètres comme exemple : déployer des instances indépendantes de modèles ajustés, chacune comportant 175 milliards de paramètres, est prohibitivement coûteux en ressources. Nous proposons une méthode appelée Adaptation par Rang Faible (Low-Rank Adaptation, ou LoRA), qui fixe les poids du modèle pré-entraîné et injecte des matrices décomposées en rangs apprenables dans chaque couche de l'architecture Transformer, réduisant ainsi considérablement le nombre de paramètres à entraîner pour les tâches en aval. Par rapport à l'ajustement fin de GPT-3 à 175 milliards de paramètres effectué avec l'optimiseur Adam, LoRA permet de réduire le nombre de paramètres entraînables d’un facteur 10 000 et la consommation de mémoire GPU d’un facteur 3. LoRA atteint une qualité de modèle équivalente ou supérieure à celle de l’ajustement fin sur RoBERTa, DeBERTa, GPT-2 et GPT-3, malgré un nombre réduit de paramètres entraînables, un débit d’entraînement plus élevé, et, contrairement aux adaptateurs, aucune latence supplémentaire lors de l’inférence. Nous fournissons également une étude empirique sur la déficience de rang dans l’adaptation des modèles linguistiques, qui éclaire la pertinence de LoRA. Nous mettons à disposition un package facilitant l’intégration de LoRA aux modèles PyTorch, ainsi que nos implémentations et points de contrôle de modèles pour RoBERTa, DeBERTa et GPT-2 sur https://github.com/microsoft/LoRA.