Überblick
InstructLab ist ein Open Source-Projekt zur Verbesserung großer Sprachmodelle (Large Language Models, LLMs), die in generativen KI-Anwendungen (gen KI) zum Einsatz kommen. Das von IBM und Red Hat ins Leben gerufene Community-Projekt InstructLab bietet eine kosteneffiziente Lösung zur Verbesserung der Ausrichtung von LLMs und ermöglicht auch Personen mit nur sehr geringer Erfahrung im Bereich des maschinellen Lernens, sich einzubringen.
Was leistet InstructLab?
LLMs können eine Reihe nützlicher Anwendungen wie Chatbots und Programmierassistenten unterstützen. Diese LLMs können proprietär sein (wie die GPT-Modelle von OpenAI und die Claude-Modelle von Anthropic) oder einen unterschiedlichen Grad an Offenheit in Bezug auf Pretraining-Daten und Nutzungsbeschränkungen bieten (wie die Llama-Modelle von Meta, die Mistral-Modelle von Mistral AI und die Granite-Modelle von IBM).
KI-Anwendende müssen häufig ein vorab trainiertes LLM an einen bestimmten Geschäftszweck anpassen. Die Möglichkeiten zur Änderung eines LLMs sind jedoch begrenzt:
- Die Feinabstimmung eines LLMs auf ein bestimmtes Wissensgebiet oder eine bestimmte Kompetenz erfordert in der Regel die Abspaltung eines bestehenden offenen Modells und die Durchführung teurer, ressourcenintensiver Trainings.
- Es gibt keine Möglichkeit, Verbesserungen in das Upstream-Projekt einzubringen, und somit auch keine Möglichkeit für Modelle zur kontinuierlichen Verbesserung durch Beiträge aus der Community.
- LLM-Optimierungen erfordern in der Regel große Mengen an von Menschen erstellten Daten, deren Beschaffung zeitaufwendig und teuer sein kann.
InstructLab verfolgt einen Ansatz, der diese Beschränkungen überwindet. Es kann ein LLM mit weitaus weniger vom Menschen generierten Daten und weitaus weniger Rechenressourcen verbessern, als normalerweise für das Retraining eines Modells erforderlich sind. Außerdem kann das Modell durch Upstream-Beiträge kontinuierlich verbessert werden.
InstructLab ist benannt nach und basiert auf der Arbeit von IBM Research an „Large-scale Alignment for chatBots“, abgekürzt LAB. Das LAB-Verfahren wird in einem Forschungspapier von Mitarbeitenden des MIT-IBM Watson AI Lab und IBM Research von 2024 beschrieben.
InstructLab ist nicht modellspezifisch. Es kann einem LLM Ihrer Wahl zusätzliche Kompetenzen und Kenntnisse vermitteln. Dieser „Kompetenz- und Wissensbaum“ wird kontinuierlich durch Beiträge aus der Community verbessert und kann zur Unterstützung regelmäßiger Weiterentwicklungen eines verbesserten LLM eingesetzt werden. InstructLab betreibt eine verbesserte Version von IBM Granite. Zwei weitere, mit Lab verbesserte Modelle von IBM sind das von Llama 2 abgeleitete Labradorite und das von Mistral abgeleitete Merlinite. Das InstructLab-Projekt legt Wert auf schnelle Iteration und beabsichtigt regelmäßige Retrainings der Modelle. Unternehmen können die InstructLab-Tools zum Modellabgleich auch nutzen, um ihre eigenen privaten LLMs mit ihren Kompetenzen und ihrem Fachwissen zu trainieren.
Wie funktioniert InstructLab?
Das LAB-Verfahren besteht aus 3 Teilen:
- Taxonomiegesteuerte Datenkuration: Die Taxonomie ist ein Satz verschiedener Trainingsdaten, die von Menschen als Beispiele für neues Wissen und Kompetenzen für das Modell kuratiert wurden.
- Generierung synthetischer Daten in großem Umfang: Das Modell wird dann verwendet, um neue Beispiele auf der Grundlage der Trainingsdaten zu erzeugen. Da die Qualität synthetischer Daten variieren kann, fügt das LAB-Verfahren einen automatischen Schritt zur Verfeinerung der Beispielantworten hinzu. So wird sichergestellt, dass sie fundiert und sicher sind.
- Iterative, umfangreiche Abstimmung der Ausrichtung: Zuletzt wird das Modell auf der Grundlage der synthetischen Daten neu trainiert. Das LAB-Verfahren umfasst 2 Tuning-Phasen: Wissenstuning, gefolgt von Kompetenztuning.
Die Datenbeiträge aus der Community können zu regelmäßigen, iterativen Builds verbesserter LLMs führen, die jeweils durch den aus Community-Beiträgen generierten Kompetenzbaum optimiert werden.
Wie unterscheidet sich InstructLab von anderen Trainingsmethoden für ein LLM?
Vergleichen wir InstructLab mit den anderen Schritten zur Erstellung und Verbesserung eines LLMs.
Pretraining
Hierbei wird ein LLM so trainiert, dass es das nächste Token anhand von Billionen von Token ungekennzeichneter Daten vorhersagt. Dies ist sehr teuer, erfordert manchmal Tausende von GPUs und dauert Monate. Damit ist das Pretraining eines hochqualifizierten LLM nur für Unternehmen mit erheblichen Ressourcen möglich.
Ausrichtungsabstimmung
Nach dem Pretraining erfolgt eine Ausrichtungsabstimmung der LLMs, um die Antworten des Modells so genau und nützlich wie möglich zu machen. Der erste Schritt ist dabei in der Regel das Instruction Tuning, bei dem ein Modell direkt auf bestimmte Aufgaben trainiert wird. Danach folgt das Preference Tuning, das auch Verstärkungslernen durch menschliches Feedback (Reinforcement Learning from Human Feedback, RLHF) beinhalten kann. In diesem Schritt testen Menschen das Modell und bewerten seine Ergebnisse durch Bewertung der Präferenz der Modellantworten. Ein RLHF-Prozess kann mehrere Phasen der Rückmeldung und Verfeinerung umfassen, um ein Modell zu optimieren.
Forschende haben herausgefunden, dass die Menge des Feedbacks in dieser Abstimmungsphase viel kleiner sein kann als der anfängliche Satz an Trainingsdaten. Dabei handelt es sich um Zehntausende menschlicher Einträge im Vergleich zu den Billionen von Token, die für das Pretraining erforderlich sind, und dennoch können verborgene Fähigkeiten des Modells freigesetzt werden.
InstructLab
Das LAB-Verfahren beruht auf der Idee, dass es möglich sein sollte, die Vorteile der Modellausrichtung mit einem noch kleineren Satz von durch Menschen erstellten Daten zu nutzen. Ein KI-Modell kann eine Handvoll menschlicher Beispiele verwenden, um eine große Menge synthetischer Daten zu generieren, diese dann hinsichtlich ihrer Qualität zu verfeinern und diesen qualitativ hochwertigen, synthetischen Datensatz für weitere Abstimmung und Training nutzen. Im Gegensatz zum Instruction Tuning, für das in der Regel Tausende Beispiele menschlichen Feedbacks benötigt werden, kann LAB ein Modell mit relativ wenigen, von Menschen gelieferten Beispielen erheblich verbessern.
Wie unterscheidet sich InstructLab von RAG (Retrieval Augmented Generation)?
Die kurze Antwort lautet: InstructLab und RAG (Retrieval Augmented Generation) lösen unterschiedliche Probleme.
RAG ist eine kosteneffiziente Methode zur Erweiterung eines LLMs um domainspezifisches Wissen, das nicht Teil des Pretrainings war. So ermöglicht RAG einem Chatbot präzise Antworten auf Fragen, die sich auf einen bestimmten Bereich oder Unternehmen beziehen, ohne dass das Modell dazu neu trainiert werden muss. Wissensdaten werden in einer Vektordatenbank gespeichert, dann in Blöcken abgerufen und als Teil von Nutzeranfragen an das Modell gesendet. Dies ist für Nutzende hilfreich, die einem LLM geschützte Daten hinzufügen möchten, ohne die Kontrolle über diese Daten aufzugeben, oder wenn ein LLM zum Zugriff auf aktuelle Informationen benötigt wird.
Dies ist der Gegensatz zum InstructLab-Verfahren, bei dem die Beiträge der Endnutzenden als Support für die regelmäßige Erstellung einer verbesserten LLM-Version genutzt werden. InstructLab hilft, Wissen zu erweitern und neue Kompetenzen eines LLMs zu erschließen.
Es ist möglich, durch die Anwendung der RAG-Technik auf ein mit InstructLab abgestimmtes Modell einen RAG-Prozess noch zu verstärken.
Aus welchen Komponenten besteht das InstructLab-Projekt?
InstructLab besteht aus mehreren Projekten.
Taxonomie
InstructLab wird von Taxonomien gesteuert, die größtenteils manuell und sorgfältig erstellt werden. InstructLab enthält einen Taxonomiebaum, mit dem Nutzende Modelle erstellen können, die mit von Menschen zur Verfügung gestellten Daten abgestimmt sind, die dann durch die Generierung synthetischer Daten erweitert werden.
Befehlszeilenschnittstelle (CLI)
Über die InstructLab CLI können die Mitwirkenden ihre Beiträge von ihrem Laptop oder ihrer Workstation aus testen. Mitglieder der Community können die InstructLab-Technik nutzen, um ohne Zugang zu spezieller Hardware eine Low Fidelity-Annäherung an die Generierung synthetischer Daten und die Abstimmung von Modellanweisungen zu erzeugen.
Infrastruktur für das Modelltraining
Abschließend steht der Prozess der Erstellung der verbesserten LLMs. Um die Modelle regelmäßig auf der Grundlage neuer Beiträge aus der Community neu zu trainieren, ist eine GPU-intensive Infrastruktur erforderlich. IBM übernimmt Bereitstellung und Unterhalt der Infrastruktur, die erforderlich ist, um die verbesserten Modelle des InstructLab-Projekts regelmäßig neu zu trainieren.
Red Hat Enterprise Linux AI
Sobald Sie für die Einführung von KI im Unternehmen bereit sind, erhalten Sie mit Red Hat® Enterprise Linux® AI die Granite-Familie von LLMs mit Open Source-Lizenz, InstructLab-Tools für die Modellanpassung, ein startfähiges Image von Red Hat Enterprise Linux, technischen Support auf Unternehmensniveau und eine Regelung zum geistigen Eigentum der Modelle.
Red Hat Enterprise Linux ist die weltweit führende Linux-Plattform für Unternehmen, die für Hunderte von Clouds und Tausende von Hardware- und Softwareanbietern zertifiziert ist. Mit der technologischen Basis von Linux, Containern und Automatisierung gibt Ihnen die Open Hybrid Cloud-Strategie von Red Hat die Flexibilität, Ihre KI-Anwendungen dort auszuführen, wo Sie sie benötigen.
Red Hat Enterprise Linux AI und das InstructLab-Projekt tragen zur Verwirklichung dieser Vision bei, indem sie die Kosten- und Ressourcenbarrieren für das Experimentieren mit und die Entwicklung von KI-Modellen überwinden und gleichzeitig die für die nächste Welle intelligenter Workloads benötigten Tools, Daten und Konzepte bereitstellen.