Von Charles Foster
Bei Finetune entwickeln wir KI-Lösungen, um einige der herausforderndsten Probleme im Bereich der Bildungstechnologie anzugehen, einschließlich automatisierter Inhaltsgenerierung und KI-gestützter Klassifizierung und Empfehlungen von Lernressourcen. Da die Themen, die unsere Werkzeuge behandeln müssen, von K-12 bis hin zur beruflichen Entwicklung reichen, investieren wir stark in Methoden, die es uns ermöglichen, die Breite und Tiefe dessen, was unsere Modelle abdecken, zu skalieren. Schlüsselaspekte dieses Ansatzes sind flexible Methoden, um spezialisierte neuronale Netzwerke in Bereichen zu trainieren, in denen allgemeine Modelle unzureichend sind. In diesem Blogbeitrag möchte ich einen Einblick in unsere Reise geben, bei der wir diese Methoden erkundet haben.
Feinabstimmung
Die typische Feinabstimmung neuronaler Sprachmodelle umfasst die gleichzeitige Optimierung aller trainierbaren Parameter, die bei Netzwerken wie GPT-J viele Milliarden betragen kann. Bei solchen Skalierungen sind sowohl die Feinabstimmungs- als auch die Inferenzprozesse nicht trivial, was eine weitreichende Bereitstellung dieser Modelle schwierig macht. In unseren eigenen Untersuchungen schienen einige zentrale Probleme am größten zu sein:
- Das bloße Ausführen dieser Transformatoren-Modelle stößt bereits an die Grenzen des GPU-Speichers (VRAM), und während der Feinabstimmung besteht eine direkte Beziehung zwischen der Anzahl der optimierten Parameter und der Menge des zusätzlichen verbrauchten Speichers.
- Durch die Modifizierung aller Parameter im Netzwerk kann der während des Vortrainings erlernte Informationsfluss gestört werden, was zu Vergessen und Verlust der Few-Shot-Fähigkeiten führen kann.
- Die Bereitstellung eines angepassten Multi-Gigabyte-Modells für jeden Anwendungsfall würde inakzeptable Latenz- und Kostenbelastungen verursachen.
Diese kombinierten Bedenken motivierten uns, andere Methoden aus der aktuellen Literatur zu erkunden, um unsere neuronalen Sprachmodelle abzustimmen. Glücklicherweise hat der Bereich der Forschung zur Verarbeitung natürlicher Sprache im vergangenen Jahr eine Vielzahl von Methoden entwickelt, um die Kosten für die Anpassung des Verhaltens vortrainierter Sprachmodelle zu senken.
Prompt-Tuning
Der ursprüngliche Ansatz, den wir verfolgten, wird Prompt Tuning oder Soft Prompting (Lester et al. 2021) genannt. Bei dieser Methode werden die Parameter des Netzwerks aus dem Vortraining eingefroren. Stattdessen fügen wir eine kleine Anzahl lernbarer Einbettungsvektoren (typischerweise 10 bis 20) vor den Eingabeaufforderungstokens hinzu und stimmen diese Einbettungen mit dem üblichen Ziel der Sprachmodellierung auf einem Feinabstimmungsdatensatz ab. Diese Einbettungen repräsentieren keine Tokens der Sprache; wir können sie vielmehr als einen dichten Kontextspeicher betrachten, auf den das Netzwerk konditionieren kann – über den Aufmerksamkeitsmechanismus – während es Vorhersagen über die Tokens in der Sequenz trifft.
Prompt-Tuning fügt dem Modell nur geringe Laufzeitkosten hinzu, da die Soft Prompts im Kilobyte-Bereich liegen und parallel durch das Netzwerk verarbeitet werden können. Diese Eigenschaften machen sie attraktiv für die Bedienung vieler gleichzeitiger Benutzer, wie kürzliche Bereitstellungen der Technik im Bereich KI-Storytelling gezeigt haben. Allerdings ist die Integration von Soft Prompts in beliebte Frameworks wie HuggingFaces Transformatoren komplex, da die Schnittstellen größtenteils für die Verarbeitung von Sequenzen von Token-Indizes und nicht von dichten Vektoren ausgelegt sind. Darüber hinaus, je mehr Kontext zwischen dem Soft Prompt und der Generierung hinzugefügt wird, beginnen wir Ungleichgewichte zwischen der Stärke der Konditionierung auf das Soft Prompt und dem Token-Kontext zu sehen. Die Fähigkeit, flexibel Hunderte von Tokens an Kontext zur Laufzeit hinzuzufügen, war für uns wichtig, da sie zusätzliche feinfühlige Steuerungsmöglichkeiten im Prozess der Erstellung von Elementen bietet. Wenn wir das Modell dazu bringen wollen, sich auf Inhalte von einer bestimmten Seite eines Lehrbuchs zu konzentrieren, oder um ein Leseverständnismodul zu erstellen, oder um Few-Shot-Beispiele bereitzustellen, ist eine langfristige Kontextualisierung wichtig.
Low Rank Adapters (LoRA)
Später wechselten wir zu einer Methode namens LoRA oder Low Rank Adapters (Hu et al. 2021). Diese Technik wurde von Forschern bei Microsoft entwickelt, die an Modellen in der Größe von GPT-3 arbeiteten, und baut auf früheren Adapteransätzen auf. Wenn wir einen Transformator als einen betrachten, der seine latenten Token-Zustände mit jeder Residualschicht schrittweise verfeinert, besteht das Konzept eines Adapters darin, ein kleines, eingangsabhängiges Delta (initialisiert auf einen No-Op) zu diesen Latents in einer bestimmten Schicht hinzuzufügen. Dieser sanfte Schubs kann dann sein Verhalten im Nachhinein modifizieren, indem er beispielsweise die Teile des Eingangs betont, die für die Aufgabe relevant sind.
Low Rank Adapters sind eine Art von Adapter, die auf einen Unterraum mit niedrigem Rang abzielt, was die Anzahl der neuen Parameter, die wir trainieren müssen, reduziert (von D2 auf 2 × D × r, wobei D in den Tausenden liegt). Wie beim Soft Prompting halten wir die ursprünglichen Parameter des Netzwerks eingefroren, um das Wissen, das sie aus dem Vortraining enthalten, zu bewahren, und passen nur diese neuen Adapterparameter an. In unseren internen Tests haben wir gute Indikatoren von LoRA gesehen. Darüber hinaus ermöglichen uns Modelle mit dazwischen geschalteten Adapter-Schichten, auch viel von ihrer ursprünglichen Few-Shot-Fähigkeit zu bewahren, während sie sich dennoch an die Ziel-Domäne anpassen. Bemerkenswert ist, dass die Integration von Low-Rank-Adaptern in andere Frameworks unkompliziert ist, da wir einfach vorhandene lineare Schichten nach Bedarf gegen lineare + Adapter-Schichten austauschen können.
Vorwärtsbewegung
Um einen Eindruck von den Verbesserungen zu vermitteln, die wir in unseren Erkundungen gesehen haben, teilen wir im Folgenden eine kleine Auswahl von Generierungen aus Modellen, die mit verschiedenen Abstimmungsansätzen trainiert wurden. Diese Elemente wurden alle mit denselben drei Eingabeaufforderungen zur Bereitstellung von Pflegeleistungen erzeugt: die erste konzentrierte sich darauf, die Bedürfnisse mehrerer Klienten zu priorisieren, und die zweite auf das Handeln in einer Teamumgebung.
Element #1: Eine Krankenschwester bewertet einen Klienten, der für eine ambulante Operation eingeplant ist. Welchen der folgenden Patienten würde die Krankenschwester als nächstes bewerten? (A) Ein Patient mit Typ-1-Diabetes (B) Ein Patient mit akuter Pankreatitis (C) Ein Patient, der eine intravenöse Antibiotikatherapie benötigt (D) Ein Patient mit Morbus Crohn Element #2: Ein Klient wird mit der Diagnose einer Herzinsuffizienz ins Krankenhaus aufgenommen. Die Mutter des Klienten verweigert die Behandlung. Welche der folgenden Maßnahmen sollte die Krankenschwester ergreifen? (A) Den Anbieter über die Situation informieren. (B) Die Medikamentenliste des Patienten überprüfen. (C) Die medizinische Akte des Klienten überprüfen. (D) Den Arzt des Klienten über den Zustand des Klienten informieren.
Element #3: Eine Krankenschwester bewertet einen Patienten auf der pädiatrischen Station. Der Klient ist für eine diagnostische Untersuchung, einschließlich eines Röntgenbildes des Brustkorbs, eingeplant. Welchen der folgenden Patienten sollte die Krankenschwester als nächstes planen zu bewerten? (A) Ein Kind, das Pneumonie hat und Fieber hat (B) Ein Kind, das einen Ausschlag hat und nicht auf ein Medikament anspricht (C) Ein Kind, das Fieber hat und eine Temperatur von >100,4 hat (D) Ein Kind, das Fieber und einen Ausschlag hat Element #4: Ein Klient mit Nierenversagen ist im Krankenhaus und soll eine Nierentransplantation erhalten. Der Klient hat einen starken Glauben, dass der Transplantationschirurg inkompetent ist. Der Klient weigert sich, einen Arzt aus einem anderen Krankenhaus die Transplantation durchführen zu lassen. Welche der folgenden Maßnahmen sollte die Stationsschwester ergreifen? (A) Eine Erklärung vom Klienten einholen, dass der Transplantationschirurg kompetent ist, und diese dem Transplantationschirurgen übergeben. (B) Den Klienten um eine unterschriebene Erklärung bitten, um ihre Behauptung zu untermauern. (C) Den Transplantationschirurgen kontaktieren und herausfinden, warum der Klient sich weigert, dass der Chirurg aus einem anderen Krankenhaus die Transplantation durchführt. (D) Den Transplantationschirurgen informieren, dass der Klient die Transplantation ablehnt.
Element #5: Eine Krankenschwester plant, Klienten verschiedenen Bettstationen zuzuweisen. Welchen der folgenden Klienten sollte die Krankenschwester der Bettstation zuweisen, die der Stationsschwester am nächsten ist? (A) Ein Klient, der eine vermutete Diagnose einer Lungenembolie hat und ein Computertomografie (CT)-Scan benötigt (B) Ein Klient, der Hilfe bei einem Stuhlgang benötigt (C) Ein Klient, der eine Notwendigkeit für ein Röntgenbild des Brustkorbs hat (D) Ein Klient, der ein Röntgenbild des Brustkorbs benötigt, weil er einen Husten hat Element #6: Eine LPN kümmert sich um einen Klienten mit einem liegenden Harnkatheter und bittet die Krankenschwester, ihr zu helfen, den Katheter zu reinigen. Welche der folgenden Maßnahmen sollte die Krankenschwester ergreifen? (A) Dem Klienten erklären, dass sie die Reinigungslösung bereitstellen muss und die Zustimmung des Klienten für das Verfahren einholen muss. (B) Die LPN um Hilfe bitten. (C) Anbieten, dem Klienten zu helfen, den Katheter zu reinigen. (D) Der LPN versichern, dass die Krankenschwester ihr helfen wird.
Wir können beobachten, dass, während die besten Elemente des Basismodells größtenteils flüssig und logisch kohärent sind, sie dazu neigen, unterbeschränkt zu sein (wie in #1) oder nur sehr wenig Wissen über den Pflegebereich erfordern (wie in #3). Im Vergleich zu den Basiselementen enthalten Elemente aus den Modellen für Prompt-Tuning und Low-Rank-Adapter mehr Details in ihren Stimuli, Stämmen und Optionen. Der Inhalt ist relevant für das Gebiet und verlangt spezifisches Wissen im Umgang mit Pflegeleistungen, anstatt sich nur auf Hintergrundwissen zu verlassen. Darüber hinaus haben die Elemente aus dem Low-Rank-Adapter-Modell eine konsistentere Form. Beispielsweise beziehen sich die Elemente konsequent auf den "Klienten" anstelle des "Patienten", was mit der Sprache übereinstimmt, die wahrscheinlich in Bewertungen erscheinen würde (vergleiche #5 mit #1 und #3). Es verfolgt auch erfolgreich Verweise auf mehrere Personen innerhalb eines Szenarios (vergleiche #6 mit #4).
Verbesserungen in der Abdeckung des Fachgebiets, stilistischen Konsistenz und logischen Kohärenz können zu erheblichen Verbesserungen der Nützlichkeit neuronaler Sprachmodelle führen. Dies ist erst der Anfang: Wenn die Technologie reift, werden noch mehr Methoden entdeckt, um angepasste, steuerbare natürliche Sprachmodelle in großem Maßstab zu erstellen. Und während diese Methoden entdeckt werden, werden wir weiterhin das Beste aus der Wissenschaft, der Industrie und der unabhängigen Forschung in Finetune-Produkte integrieren.
Aufrichtiger Dank an Nick Koprowicz, Jesse Hamer, Saad Khan und Ogden Morse für ihr freundliches, hilfreiches Feedback bei der Entwicklung dieses Blogbeitrags.
Referenzen
Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Low-rank adaptation of large language models. arXiv preprint arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). The power of scale for parameter-efficient prompt tuning. arXiv preprint arXiv:2104.08691.