Par Charles Foster
Chez Finetune, nous créons des solutions d’IA pour résoudre certains des problèmes les plus complexes de la technologie éducative, notamment la génération automatisée de contenu et la classification et les recommandations de ressources d’apprentissage basées sur l’IA. Étant donné que les sujets que nos outils doivent traiter s’étendent de la maternelle à la terminale jusqu’au développement professionnel, nous investissons massivement dans des méthodes qui nous permettent d’élargir et d’approfondir la couverture de nos modèles. Les éléments 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.
Réglage fin
Le réglage fin typique des modèles de langage neuronal implique l'optimisation simultanée de tous leurs paramètres d'apprentissage, qui peuvent atteindre plusieurs milliards pour des réseaux tels que GPT-J. À des échelles comme celles-ci, les processus de réglage fin et d'inférence ne sont pas triviaux, ce qui rend leur déploiement à grande échelle difficile. Dans nos propres recherches, quelques problèmes clés semblent avoir la priorité :
- Le simple fait d’exécuter ces modèles de transformateurs exerce déjà une pression sur les limites de la mémoire GPU (VRAM), et lors du réglage 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 oublis et des pertes de capacités en quelques prises de vue.
- Proposer un modèle multi-gigaoctet personnalisé pour chaque cas d’utilisation créerait une latence et des coûts inacceptables.
Ces préoccupations combinées nous ont incités à explorer d’autres méthodes issues de la littérature récente pour affiner nos modèles de langage neuronal. Heureusement, au cours de l’année écoulée, la recherche sur le traitement du langage naturel a développé une multitude de méthodes permettant de réduire le coût de personnalisation du comportement des modèles de langage pré-entraînés.
Réglage rapide
L'approche originale que nous avons suivie s'appelle Prompt Tuning 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'intégration pouvant être appris (généralement 10 à 20) devant les jetons d'invite d'entrée, et ajustons ces intégrations avec l'objectif de modélisation de langage habituel sur un ensemble de données de réglage fin. Ces intégrations ne représentent pas des jetons de langage ; nous pouvons plutôt les considérer comme un stockage dense de contexte sur lequel le réseau peut conditionner - via le mécanisme d'attention - lorsqu'il fait des prédictions sur les jetons de la séquence.
Le réglage des invites n'ajoute qu'un faible coût d'exécution au modèle, car les invites souples sont de l'ordre du kilo-octet et peuvent être exécutées en parallèle sur le réseau. Ces caractéristiques les rendent intéressantes pour servir de nombreux utilisateurs simultanés, comme l'ont montré les récents déploiements de la technique dans la narration d'IA . Cependant, l'intégration d'invites souples dans des cadres populaires comme les transformateurs de HuggingFace est complexe, car les interfaces sont en grande partie conçues pour fonctionner sur des séquences d'indices de jetons plutôt que sur des vecteurs denses. De plus, à mesure que davantage de contexte est ajouté entre l'invite souple et la génération, nous commençons à voir des déséquilibres entre la force du conditionnement sur l'invite souple et sur le contexte du jeton. Il était important pour nous de conserver la possibilité d'ajouter de manière flexible des centaines de jetons de contexte au moment de l'exécution, car cela fournit des leviers de contrôle supplémentaires et précis dans le processus de création d'éléments. Si nous voulons guider le modèle pour qu'il se concentre sur le contenu d'une page particulière d'un manuel, ou pour créer un élément de compréhension de lecture, ou pour fournir quelques exemples, la contextualisation longue est importante.
Adaptateurs de faible rang (LoRA)
Nous sommes ensuite passés à une méthode appelée LoRA ou Low Rank Adapters (Hu et al. 2021). Cette technique a été développée par des chercheurs de Microsoft travaillant sur des modèles de la taille de GPT-3 et s'appuie sur des approches d'adaptateur antérieures. Si nous considérons qu'un transformateur affine progressivement ses états latents de jeton avec chaque couche résiduelle, le concept d'un adaptateur consiste à ajouter un petit delta dépendant de l'entrée (initialisé à un no-op) à ces latents d'une couche donnée. Ce léger coup de pouce est alors capable de 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 rang faible sont un type d'adaptateur qui cible un sous-espace de rang faible, ce qui réduit le nombre de nouveaux paramètres que nous devons entraîner (de D 2 à 2 × D × r, où D est en milliers). Comme pour l'invite douce, nous gardons les paramètres d'origine du réseau figés pour préserver les connaissances qu'ils contiennent de la pré-formation, et nous ajustons uniquement ces nouveaux paramètres d'adaptateur. Dans nos tests internes, nous avons vu de bons indicateurs de LoRA. En plus de nous permettre d'ajuster de grands modèles avec de petits budgets matériels, les modèles avec des couches d'adaptateur intercalées conservent également une grande partie de leur capacité d'origine à quelques coups tout en s'adaptant au domaine cible. Notamment, l'intégration d'adaptateurs de rang faible dans d'autres cadres est simple, car nous pouvons simplement échanger les couches linéaires existantes avec des couches linéaires + adaptateur selon les besoins.
Aller de l'avant
Pour vous donner une idée du type d’améliorations que nous avons constatées au cours de nos explorations, nous partageons ci-dessous une petite sélection de générations de modèles formés avec différentes approches de réglage. Ces éléments ont tous été générés à l’aide des trois mêmes invites de saisie relatives à la prestation de soins infirmiers : la première était axée sur la priorisation des besoins de plusieurs clients et la seconde sur la prise de mesures en équipe.
Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.
Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.
Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.
Nous pouvons observer que, bien que les meilleurs éléments du modèle de base soient largement fluides et logiquement cohérents, ils ont tendance à être sous-contraints (comme dans le n° 1) ou à nécessiter très peu de connaissances du domaine infirmier (comme dans le n° 3). Par rapport aux éléments de base, les éléments des modèles d’ajustement rapide et d’adaptateur de rang inférieur contiennent plus de détails dans leurs stimuli, leurs tiges et leurs options. Le sujet est pertinent pour le domaine, nécessitant des connaissances spécifiques dans la gestion des soins infirmiers plutôt que de s’appuyer uniquement sur des connaissances de base. De plus, les éléments du modèle d’adaptateur de rang inférieur ont une forme plus cohérente. Par exemple, les éléments font systématiquement référence au « client » par opposition au « patient », conformément au langage qui apparaîtrait probablement dans les évaluations (comparer le n° 5 au n° 1 et au n° 3). Il suit également avec succès les références à plusieurs individus dans un scénario (comparer le n° 6 au n° 4).
Les améliorations apportées à la couverture du domaine, à la cohérence stylistique et à la cohérence logique peuvent se traduire par des améliorations significatives de l’utilité des modèles de langage neuronal. Ce n’est qu’un début : à mesure que la technologie évolue, de nouvelles 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 seront découvertes, nous continuerons d’intégrer le meilleur du monde universitaire, de l’industrie et de la recherche indépendante dans les produits Finetune.
Nos sincères remerciements à Nick Koprowicz, Jesse Hamer, Saad Khan et Ogden Morse pour leurs commentaires aimables et utiles lors de l’élaboration de cet article de blog.
Références
Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora : adaptation de bas rang de grands modèles de langage. Préimpression arXiv arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). La puissance de l'échelle pour un réglage rapide efficace des paramètres. Préimpression arXiv arXiv:2104.08691.