Small Language Models
Small Language Models sind ein Weg auf effiziente und ressourcenschonende Weise KI Modelle zu trainieren und zu verwenden. In diesem Artikel werden wir uns mit den Grundlagen von Small Language Models beschäftigen und wie sie in der Praxis eingesetzt werden können. Vor dem Aufkommen von Large Language Models waren Small Language Models die Norm. Sie sind immer noch weit verbreitet und haben viele Anwendungen in verschiedenen Bereichen. Wie wir im Folgenden sehen werden, gab es in letzter Zeit viele Fortschritte bei den Architekturen und Herangehensweisen zum Erstellen von Small Language Models.
Um einschätzen zu können welche Vorteile kleine Sprachmodelle haben, lassen Sie uns zunächst untersuchen was Small Language Models sich von Large Language Models unterscheiden.
Unterschiede Small Language Models und Large Language Models
Der Übergang zwischen Small Language Models und Large Language Models ist fließend. Was groß ist und was klein liegt eben auch immer am Standpunkt des Betrachters und am Zeitpunkt der Betrachtung. Was früher einmal groß war, ist heute eher klein. Außerdem werden wir noch sehen das Large Language Models in ihrer Größe reduziert werden können. Was sie dann eher zu kleinen Sprachmodellen macht.
Hier sind einige konkretere Unterschiede zwischen Small Language Models und Large Language Models, die uns eine Orientierung geben können:
Small Language Model | Large Language Model | |
---|---|---|
Anzahl Parameter | meist geht man davon aus das ein Modell mit weniger als 100 Million Parametern ein SLM ist. Oft werden werden aber auch Modelle mit wenigen Milliarden Parametern als klein angesehen. | Dementsprechende ist ein Model mit mehr Parametern ein großes Language Model. Doch auch hier sind die Übergänge fließend, die größten Modelle haben hunderte Milliarden bis Billionen Parameter. |
Trainingsdaten | wenige bis mittel | sehr viele |
Anwendbarkeit | können einfache, oft spezialisierte, Aufgaben erledigen, werden z.B. für Klassifikationsaufgaben (Ist ein Input dies oder ist das?), einfache Textgenerierung | Können viele Aufgaben erledigen. ChatGPT hat zu allem etwas zu sagen 🙃 |
Hardware Anforderungen | gering, können häufig auch auf Mobilgeräten oder auf Rechnern ohne GPU oder kleiner GPU verwendet werden. | groß, grade im Hinblick auf GPUs und TPUs |
Trainingszeit | Tage bis Wochen | Monate |
Kontext Länge | wenige hundert bis einige Tausend Tokens | 1024 oder viel mehr Tokens |
Wie werden Small Language Models erstellt?
Man kann ein Small Language Model ganz normal als Modell trainiert. Mit einer geeigneten Architektur und Parametern. Oft werden SLM jedoch aus Large Language Models abgeleitet. Um ein Small Language Model aus einem Large Language Model zu erstellen, werden verschiedene Methoden angewendet. Lassen Sie uns einige davon betrachten:
Destillation
Die Destillation (oder Englisch Distillation) eines großen Sprachmodells (LLM) zu einem kleineren, effizienteren Modell (SLM) ist ein Verfahren, das darauf abzielt, die Leistungsfähigkeit und Wissensbasis des großen Modells in einem kompakteren und schnelleren Format zu bewahren. Der Prozess der Modelldestillation wird oft eingesetzt, um Modelle zu schaffen, die weniger rechenintensiv sind und somit einfacher in verschiedenen Anwendungen eingesetzt werden können. Hier ist, wie dieser Prozess typischerweise funktioniert:
- Training des großen Modells (LLM): Zuerst wird ein großes, umfassendes Modell mit einer großen Menge an Daten trainiert. Dieses Modell lernt eine Vielzahl von Aufgaben und erfasst eine breite Wissensbasis.
- Definieren des kleineren Modells (SLM): Ein kleineres Modell wird definiert, das weniger Parameter hat und somit weniger Rechenleistung benötigt. Die Architektur dieses Modells ist oft eine vereinfachte Version des großen Modells.
- Wissensdestillation: Bei der Wissensdestillation wird das kleinere Modell unter Verwendung des großen Modells als Lehrer trainiert. Das bedeutet, dass das kleinere Modell nicht direkt aus den Originaldaten lernt, sondern aus den Ausgaben und teilweise auch den Zwischenschichten des großen Modells. Ziel ist es, dass das kleinere Modell die Fähigkeiten und das Verhalten des größeren Modells “nachahmt”.
- Soft Labels: Oft verwendet man “weiche” Ausgaben (Soft Labels) des großen Modells, welche die Wahrscheinlichkeitsverteilungen der Vorhersagen beinhalten, anstatt nur die “harten” endgültigen Vorhersagen (Hard Labels). Dies gibt dem kleineren Modell eine reichhaltigere Informationsgrundlage zum Lernen.
- Feinabstimmung und Evaluation: Nach der initialen Trainingsphase durch Wissensdestillation wird das kleinere Modell oft weiter feinjustiert und evaluiert, um sicherzustellen, dass es die gewünschten Leistungskriterien erfüllt.
- Einsatz: Das destillierte Modell ist nun bereit für den Einsatz in Anwendungen, wo geringere Rechenkapazitäten zur Verfügung stehen, wie z.B. mobile Geräte, eingebettete Systeme oder Anwendungen, die eine sehr schnelle Antwortzeit erfordern.
Destillation ist besonders wertvoll in Szenarien, wo die Bereitstellungskosten und -effizienz eine Rolle spielen, ohne dabei signifikant auf Leistung verzichten zu müssen. Es ermöglicht den Einsatz fortschrittlicher KI in ressourcenbeschränkten Umgebungen.
Pruning
Pruning zielt darauf ab, die Anzahl der Parameter in einem neuronalen Netzwerk zu reduzieren, indem weniger wichtige Verbindungen (Gewichte) entfernt werden. Dies kann auf verschiedene Arten durchgeführt werden:
- Unstrukturiertes Pruning: Hierbei werden einzelne Gewichte im Netzwerk basierend auf bestimmten Kriterien, wie ihrem absoluten Wert (kleine Gewichte werden oft als weniger wichtig betrachtet) entfernt. Dies führt zu einer “verdünnten” Gewichtsmatrix, die viele Nullen enthält.
- Strukturiertes Pruning: Bei dieser Methode werden ganze Neuronen oder Kanäle (zum Beispiel in einen Convolutional Layer) entfernt, basierend darauf, wie viel sie zum Ausgang des Netzwerks beitragen. Das Ergebnis ist ein Netzwerk mit einer reduzierten Architektur.
Pruning reduziert die Modellgröße und kann die Ausführungsgeschwindigkeit verbessern, da weniger Berechnungen erforderlich sind. Es kann auch das Modell robuster gegenüber Überanpassung machen, da es eine Form der Regularisierung darstellt.
Quantization
Quantization bezieht sich auf den Prozess der Reduzierung der Präzision der Zahlen, die zur Darstellung der Gewichte und der Aktivierungen eines Modells verwendet werden. Anstatt beispielsweise Gewichte als 32-Bit-Fließkommazahlen zu speichern, könnten sie als 8-Bit-Ganzzahlen gespeichert werden. Dies führt zu mehreren Vorteilen:
Reduzierte Modellgröße: Da jedes Gewicht weniger Bits für seine Darstellung benötigt, verbraucht das gesamte Modell weniger Speicherplatz. Effizienzsteigerung: Operationen mit niedrigerer Präzision sind in der Regel schneller auf vielen Prozessoren, besonders auf solchen, die für Ganzzahl-Berechnungen optimiert sind. Energieeffizienz: Geringere Präzision kann auch den Energieverbrauch senken, was besonders wichtig für batteriebetriebene Geräte ist. Erhaltung der Leistung: Moderne Quantization-Techniken können die Präzision der Modelle reduzieren, ohne ihre Leistung signifikant zu beeinträchtigen. Techniken wie Quantization-aware Training berücksichtigen die Effekte der Quantization bereits während des Trainingsprozesses.
Effizientere Architekturen
Forscher entwickeln kontinuierlich neuartige Architekturen, die speziell für kleine Sprachmodelle konzipiert sind.
Welche Small Language Models gibt es?
Durch das Pruning und Quantization gibt es von vielen großen Modellen kleinere Versionen, die für spezielle Anwendungen oder für den Einsatz auf speziellen Hardwareplattformen optimiert sind.
Häufig existieren die Modelle in verschiedenen Gößen, so existiert zum Beispiel Googles BERT unter anderem in den Versionen BERT-Base (110M params), und BERT-Large (336M params) oder DistilBERT (67M params).
Microsoft hat die kleineren Sprachmodelle Orca 2 und Phi-2 entwickelt und dazu lesenswerte Posts erstellt, wie der Trainingsprozess und die Modelarchitektur gestaltet wurden.
Es gibt noch unzählige weitere Modelle und kleine Versionen davon. Eine Gute Quelle um sich einen Überblich für das nächste Projekt zu verschaffen ist der Huggingface Model Hub.
Fazit
Mit kleinen Sprachmodellen können viele Aufgaben effizient und ressourcenschonend gelöst werden. Sie sind oft schneller zu trainieren und können auf vielen Plattformen eingesetzt werden. Durch Techniken wie Destillation, Pruning und Quantization können auch große Modelle in kleinere Modelle umgewandelt werden oder sie liegen schon in solchen Versionen vor. Sie können für spezielle Anwendungen oder Hardwareplattformen optimiert werden. Sie bieten damit eine kosteneffiziente Alternative, um KI rentabel zu betreiben.