Par Charles Foster
Chez Finetune, nous développons des solutions d'IA pour résoudre certains des problèmes les plus difficiles dans la technologie éducative, y compris la génération de contenu automatisée et la classification et recommandations de ressources d'apprentissage alimentées par l'IA. Étant donné que les sujets que nos outils doivent traiter vont de K-12 au développement de la main-d'œuvre, nous investissons massivement dans des méthodes qui nous permettent d'élargir la portée et la profondeur de ce que nos modèles couvrent. Les composants clés de cette approche sont des méthodes flexibles pour former des réseaux neuronaux spécialisés dans des domaines où les modèles à usage général sont insuffisants. Dans cet article de blog, j'aimerais partager un peu de notre parcours d'exploration de ces méthodes.
Ajustement fin
L'ajustement fin typique des modèles de langage neuronal implique d'optimiser simultanément tous leurs paramètres entraînables, ce qui peut atteindre de nombreux milliards pour des réseaux tels que GPT-J. À de telles échelles, les processus d'ajustement fin et d'inférence ne sont pas triviales, ce qui rend leur déploiement généralisé difficile. Dans nos propres investigations, quelques problèmes clés semblaient se poser en priorité :
- Exécuter ces modèles de transformateur presse déjà les limites de la mémoire GPU (VRAM), et pendant l'ajustement fin, il existe une relation directe entre le nombre de paramètres optimisés et la quantité de mémoire supplémentaire consommée.
- En modifiant tous les paramètres du réseau, le flux d'informations appris lors de la pré-formation peut être perturbé, entraînant des pertes de mémoire et la perte de capacités de few-shot.
- Servir un modèle personnalisé de plusieurs gigaoctets pour chaque cas d'utilisation créerait des latences et des coûts inacceptables.
Ces préoccupations combinées nous ont motivés à explorer d'autres méthodes de la littérature récente pour ajuster nos modèles de langage neuronal. Heureusement, au cours de l'année passée, le domaine de la recherche en traitement du langage naturel a développé une pléthore de méthodes pour réduire le coût de la personnalisation du comportement des modèles de langage pré-entraînés.
Ajustement par prompt
L'approche originale que nous avons poursuivie s'appelle Ajustement par Prompt ou Soft Prompting (Lester et al. 2021). Dans cette méthode, les paramètres du réseau issus de la pré-formation sont maintenus figés. Au lieu de cela, nous ajoutons un petit nombre de vecteurs d'incorporation apprenables (généralement de 10 à 20) devant les tokens du prompt d'entrée, et nous ajustons ces embeddings avec l'objectif habituel de modélisation linguistique sur un ensemble de données d'ajustement fin. Ces embeddings ne représentent pas des tokens de langage ; nous pouvons plutôt les considérer comme un stockage dense de contexte sur lequel le réseau peut se conditionner—via le mécanisme d'attention—lorsqu'il fait des prédictions sur les tokens de la séquence.
L'ajustement par prompt n'ajoute qu'un faible coût d'exécution au modèle, car les prompts souples sont dans la plage des kilooctets et peuvent être exécutés à travers le réseau en parallèle. Ces caractéristiques les rendent attrayants pour servir de nombreux utilisateurs simultanés, comme l'ont indiqué les déploiements récents de la technique dans la narration par IA. Cependant, intégrer des prompts souples dans des frameworks populaires comme les transformers de HuggingFace est complexe, car les interfaces sont largement conçues pour fonctionner sur des séquences d'indices de tokens plutôt que sur des vecteurs denses. De plus, à mesure que plus de contexte est ajouté entre le prompt souple et la génération, nous commençons à constater des déséquilibres entre la force de conditionnement sur le prompt souple et sur le contexte des tokens. Retenir la capacité d'ajouter de manière flexible des centaines de tokens de contexte à l'exécution était important pour nous, car cela fournit des leviers supplémentaires de contrôle dans le processus de création d'éléments. Si nous voulons guider le modèle pour se concentrer sur le contenu d'une page particulière d'un manuel scolaire, ou pour rédiger un élément de compréhension de lecture, ou pour fournir des exemples de few-shot, la contextualisation longue est importante.
Adaptateurs de faible rang (LoRA)
Nous avons ensuite transitionné vers une méthode appelée LoRA ou Adaptateurs de faible rang (Hu et al. 2021). Cette technique a été développée par des chercheurs de Microsoft travaillant sur des modèles de taille GPT-3, et s'appuie sur des approches d'adaptateurs antérieures. Si nous pensons à un transformateur comme affinant progressivement ses états latents de tokens avec chaque couche résiduelle, le concept d'un adaptateur est d'ajouter un petit delta dépendant de l'entrée (initialisé à une opération nulle) à ces latents à une couche donnée. Cette légère impulsion peut ensuite moduler son comportement en aval en mettant, par exemple, l'accent sur les parties de l'entrée qui sont pertinentes pour la tâche.
Les adaptateurs de faible rang sont une sorte d'adaptateur qui cible un sous-espace de faible rang, ce qui réduit le nombre de nouveaux paramètres que nous devons former (de D2 à 2 × D × r, où D est dans les milliers). Comme avec le prompting souple, nous maintenons les paramètres originaux du réseau figés pour préserver les connaissances qu'ils contiennent de la pré-formation, et n'ajustons que ces nouveaux paramètres d'adaptateurs. Dans nos tests internes, nous avons observé de bons indicateurs de LoRA. Au-delà de nous permettre d'ajuster de grands modèles avec de petits budgets matériels, les modèles avec des couches d'adaptateurs intercalées conservent également une grande partie de leur capacité originale de few-shot tout en s'adaptant au domaine cible. Notamment, intégrer des adaptateurs de faible rang dans d'autres frameworks est simple, car nous pouvons simplement remplacer les couches linéaires existantes par des couches linéaires + adaptateurs selon les besoins.
Avenir
Pour donner un aperçu des améliorations que nous avons observées dans nos explorations, ci-dessous nous partageons une petite sélection de générations provenant de modèles entraînés avec différentes approches d'ajustement. Ces éléments ont tous été générés en utilisant les mêmes trois prompts d'entrée concernant la prestation de soins infirmiers : le premier se concentrait sur la priorisation des besoins de plusieurs clients et le second sur la prise d'action en équipe.
Élément #1 : Une infirmière évalue un client qui est prévu pour une chirurgie ambulatoire. Lequel des patients suivants l'infirmière devrait-elle évaluer ensuite ? (A) Un patient diabétique de type 1 (B) Un patient avec une pancréatite aiguë (C) Un patient qui nécessite une thérapie antibiotique intraveineuse (D) Un patient atteint de la maladie de Crohn Élément #2 : Un client est admis à l'hôpital avec le diagnostic d'insuffisance cardiaque congestive. La mère du client refuse le traitement. Quelle action l'infirmière devrait-elle entreprendre ? (A) Informer le prestataire de la situation. (B) Vérifier la liste des médicaments du patient. (C) Vérifier le dossier médical du client. (D) Informer le médecin du client de l'état du client.
Élément #3 : Une infirmière évalue un patient dans l'unité pédiatrique. Le client est prévu pour un bilan diagnostique, y compris une radiographie thoracique. Lequel des patients suivants l'infirmière devrait-elle planifier d'évaluer ensuite ? (A) Un enfant qui a une pneumonie et éprouve de la fièvre (B) Un enfant qui a une éruption cutanée et ne répond pas à un médicament (C) Un enfant qui a de la fièvre et une température >100,4 (D) Un enfant qui a de la fièvre et une éruption cutanée Élément #4 : Un client souffrant d'insuffisance rénale est à l'hôpital et doit subir une transplantation rénale. Le client a une forte conviction que le chirurgien de la transplantation est incompétent. Le client refuse de permettre à un médecin d'un autre hôpital de réaliser la transplantation. Quelle action l'infirmière responsable devrait-elle entreprendre ? (A) Prendre une déclaration du client affirmant que le chirurgien de la transplantation est compétent et la donner au chirurgien de la transplantation. (B) Demander au client une déclaration signée pour soutenir son affirmation. (C) Contacter le chirurgien de la transplantation et découvrir pourquoi le client refuse de permettre au chirurgien d'un autre hôpital de réaliser la transplantation. (D) Informer le chirurgien de la transplantation que le client refuse la transplantation.
Élément #5 : Une infirmière prévoit d'assigner des clients à diverses stations de lit. Lequel des clients suivants l'infirmière devrait-elle assigner à la station de lit la plus proche de la station des infirmières ? (A) Un client qui a un diagnostic suspect d'embolie pulmonaire et nécessite un scan tomodensitométrique (CT) (B) Un client qui a besoin d'assistance pour un mouvement intestinal (C) Un client qui a une indication d'urgence pour une radiographie thoracique (D) Un client qui nécessite une radiographie thoracique parce qu'elle a une toux Élément #6 : Un LPN s'occupe d'un client avec un cathéter urinaire à demeure et demande à l'infirmière de l'aider à nettoyer le cathéter. Quelle action l'infirmière devrait-elle entreprendre ? (A) Expliquer au client qu'elle devra fournir la solution de nettoyage et devra obtenir le consentement du client pour la procédure. (B) Demander de l'aide au LPN. (C) Proposer d'aider le client à nettoyer le cathéter. (D) Assurer au LPN que l'infirmière l'assistera.
Nous pouvons observer que, bien que les meilleurs éléments du modèle de référence soient largement fluides et logiquement cohérents, ils ont tendance à être sous-contraints (comme dans #1) ou nécessitent très peu de connaissances dans le domaine des soins infirmiers (comme dans #3). En comparaison avec les éléments de référence, les éléments des modèles d'ajustement par prompt et d'adaptateurs de faible rang contiennent plus de détails dans leurs stimuli, leurs énoncés et leurs options. Le sujet abordé est pertinent pour le domaine, demandant une connaissance spécifique dans la gestion des soins infirmiers plutôt que de se fier uniquement à des connaissances de base. De plus, les éléments du modèle d'adaptateur de faible rang ont une forme plus cohérente. Par exemple, les éléments se réfèrent systématiquement au « client » plutôt qu'au « patient », conformément au langage qui apparaîtrait probablement dans les évaluations (comparer #5 à #1 et #3). Il suit également avec succès les références à plusieurs individus dans un scénario (comparer #6 à #4).
Les améliorations de la couverture des domaines, de la cohérence stylistique et de la cohérence logique peuvent se traduire par des améliorations significatives dans l'utilité des modèles de langage neuronal. Ce n'est que le début : à mesure que la technologie mûrit, encore plus de méthodes seront découvertes pour créer des modèles de langage naturel personnalisés et contrôlables à grande échelle. Et à mesure que ces méthodes sont découvertes, nous continuerons à intégrer le meilleur de l'académie, de l'industrie et de la recherche indépendante dans les produits Finetune.
Un grand merci à Nick Koprowicz, Jesse Hamer, Saad Khan et Ogden Morse pour avoir fourni des commentaires aimables et utiles dans le développement de cet article de blog.
Références
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora : adaptation de faible rang de grands modèles de langage. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). Le pouvoir de l'échelle pour un ajustement par prompt efficace en paramètres. arXiv preprint arXiv:2104.08691.