Open Source und LLMs
Open Source ist der heimliche Motor der LLM-Revolution – und fast niemand spricht darüber.
Während sich die öffentliche Debatte um KI derzeit um „AI-enabled“-Weihnachtsgeschenke, Arbeitsplatzsorgen oder geopolitische Risiken dreht, übersehen viele: Die modernsten Large Language Models laufen längst auf offen zugänglichen, frei verfügbaren Werkzeugen – oft effizienter und portabler als proprietäre Lösungen. Von vLLM über Pytorch bis hin zu Triton treibt Open Source nicht nur Innovationen voran, sondern ermöglicht echte Wahlfreiheit, technische Souveränität und Experimente auf nahezu jeder Hardware. Warum das so ist, welche Durchbrüche es 2023 gab und weshalb jetzt der perfekte Zeitpunkt ist, selbst mit modernen LLMs zu basteln – darum geht es im aktuellen Fokusbeitrag.
Wahlfreiheit, Portierbarkeit und Effizienz bei LLMs: Unterschätztes Open Source. Large Language Models (LLMs) und generative KI sind nach wie vor täglich in den Nachrichten. Jetzt im Dezember geht es darum, welche „AI enabled“-Produkte schenkfähig sind, oder welches KI-generierte Weihnachtsvideo noch akzeptabel ist. Neben diesen weihnachtsspezifischen humorvollen Inhalten wird allerdings ebenso täglich diskutiert, ob KI mehr Arbeitsplätze schafft als vernichtet oder insgesamt die Produktivität zunimmt oder nicht. Diese geo- und wirtschaftspolitischen Diskussionen lassen die Techniken von großen Sprachmodellen häufig abstrakt und weit weg erscheinen, obwohl sie eigentlich jeder selbst ausprobieren kann – auf nahezu jeder Hardware.
Denn bei den Schlagzeilen um „KI“ geht leider häufig verloren, dass dies eine sehr offene Technologie ist: So gut wie alle LLMs werden mit der quelloffenen Python-Bibliothek Pytorch implementiert und trainiert. Nach dem Training werden die Modelle dann mit ebenso quelloffenen Projekten wie vLLM, executorch, oder llama.cpp ausgeführt, bzw. als Service angeboten. Viele Modelle selbst sind auch frei verfügbar und können über Huggingface heruntergeladen werden. Darüber hinaus sind manche Modelle sogar transparent (also „full open source“), was ihre Trainingsdaten und Trainingsverfahren angeht (z.B. Apertus).
In all diesen Aspekten ist Open-Source Software (OSS) nicht „2. Wahl“, sondern allermeistens der Treiber der technologischen Innovation. Darum geben wir in diesem kurzen Text einen Überblick über die vielfältigen und hochmodernen Möglichkeiten von OSS im Kontext von LLMs, besonders im Hinblick auf Verwendung dieser in Anwendungen. Außerdem gehen wir auf neueste Forschungsergebnisse hinsichtlich der Portierbarkeit zwischen unterschiedlichen Hardware-Plattformen ein.
OSS für LLMs: Stand der Technik. Bei der Verwendung von LLMs in Anwendungen (d.h. die Modelle werden verwendet, um Vorhersagen zu machen; häufig „inference“ / Inferenz genannt), wie zum Beispiel Chatbots, CI Pipelines, oder „Agents“ kommt es vorrangig auf zwei verschiedene Aspekte an: Geschwindigkeit, bzw. Effizienz der Lösung, und die Qualität der Antworten eines LLMs. Bei ersterem Aspekt ist vor allem das Framework vLLM der de-facto Standard, welches von tausenden Unternehmen und Nutzenden weltweit verwendet wird. vLLM hat sich zum Ziel gesetzt, jedes LLM auf jeder Hardware mit größtmöglicher Effizienz auszuführen und dabei so einfach wie möglich zu verwenden zu sein. Dieses Jahr haben fast 4000 Informatikfachleute zu vLLM beigetragen und machten vLLM damit zum Projekt mit den meisten Entwicklerinnen und Entwicklern auf Github. Auch vLLM basiert auf dem sehr populären Framework Pytorch, das inzwischen neun Jahre alt ist und allein dieses Jahr mit der Verwendung in ca. 400.000 neuen Softwareprojekten eine noch viel größere Community hat (YouTube).
Nicht nur die Ausführung von Modellen ist häufig am effizientesten mit OSS-Lösungen, auch die Qualität von offenen Modellen selbst entspricht dem neuesten Stand der Technik. Auf Ranglisten (auch: multi-swe-bench.github.io), die die Fähigkeit von Modellen bei allgemeinen Aufgaben bewerten, sind offene (meistens open-weights) Modelle immer auf den vorderen Plätzen und immer häufiger auch besser als die bekanntesten kommerziellen Lösungen.
Motivation für Open Source. Bei den oben erwähnten Projekten arbeiten viele Firmen, die eigentlich Wettbewerber sind, zusammen an technischen Lösungen für alle. Daher ist es nicht verwunderlich, dass die erste und häufigste Frage in diesem Kontext ist: Warum?
Die Antworten sind vor allem Geschwindigkeit, Risikoreduktion und Attraktivität für Talente.
Dass Wettbewerber sich gegenseitig helfen, ist nur auf den ersten Blick paradox. Denn durch die gemeinsame Arbeit entwickeln alle Beteiligten ihre Lösungen viel schneller, als sie es allein je könnten. Darüber hinaus reduziert eine offene Entwicklung auch das damit verbundene Risiko: Denn die Wahrscheinlichkeit, dass in einer größeren, lebendigen Open-Source Community keine zeitnahe Lösung für ein schwieriges unvorhergesehenes Problem gefunden wird, ist viel geringer, als wenn die Lösungssuche nur auf interne Teams beschränkt ist. Zudem ist die Verwendung von OSS nicht an Lizenzgebühren gebunden und somit gibt es auch keine riskanten Abhängigkeiten gegenüber Preiserhöhungen von kommerziellen Softwareanbietern.
Auch reduziert OSS die Forschungskosten, denn man kann auf eine Vielzahl von Ideen – von anderen Organisationen oder anderen Fachgebieten – zurückgreifen (dieses Prinzip ist auch als „Open Innovation“ bekannt).
Zuletzt ist Engagement von Unternehmen auch ein Vorteil im Wettbewerb um Talente: Einerseits schätzen es viele Entwicklungsteams, wenn sie mit bekannten OSS Lösungen arbeiten können und andererseits wird es von vielen Forschenden auch eingefordert, ihre Ergebnisse mit der Welt teilen zu können.
Diese Vorteile für Unternehmen existieren nicht nur für technologische Grundgerüste von LLMs, sondern häufig auch für die Modelle selbst: Denn wenn Modellanbieter ihre Basis-Modelle veröffentlichen, reduziert dies wiederum das Risiko für ihre Kundschaft: Denn diese können darauf vertrauen, dass ein zeitaufwändiges Anpassen der Modelle für ihre Anwendung („fine tuning“) nicht verschwendet wird, da sie im Zweifel die Modelle auch ohne den Modellanbieter weiter betrieben könnten.
Portabilität und Effizienz. OSS hat den (häufig falschen) Ruf, dass es nur in bestimmten Situationen gut funktioniert. Gerade bei besonders großen Communities wie pytorch oder vLLM ist dies nicht der Fall, sondern sie funktionieren auf nahezu jeder GPU (NVIDIA, AMD, Intel), CPU (x86, AArch64), oder Beschleunigern wie Google TPU, IBM Spyre, und AWS Inferentia. Gerade jedoch die Portierbarkeit, also die Eigenschaft, einen Algorithmus oder eine Software auf verschiedener Hardware mit bestmöglicher Leistung, Durchsatz oder Latenz auszuführen, ist eine schwierige technische Fragestellung. Denn unterschiedliche GPUs (auch CPUs) unterscheiden sich hinsichtlich der Größe der verwendeten Matrix oder Vektor-Instruktionen, der unterschiedlichen Speichergeschwindigkeit und Bandbreite, unterschiedlichen Speicher- und Cache-Hierarchien, unterschiedlichen Datentypen (z.B. besondere Fließkomma-Implementierungen wie FP16 (16 bit pro Zahl), FP8 (8 bit), und den verschiedenen 4-Bit-Versionen), sowie der Verfügbarkeit von Spezial-Instruktionen für z.B. Gruppierte-Matrixmultiplikationen.
Jedoch wurden dieses Jahr mehrere Durchbrüche erzielt, vor allem mit der Verwendung von quelloffenen und anwendungsspezifischen Programmiersprachen. So kann seit neuestem der Pytorch-eigene Compiler die meisten „einfachen“ Matrix-Vektor-Operationen von LLMs sehr effizient auf verschiedene Hardware übersetzen. Für komplexe Algorithmen wie die Kernkomponenten von LLMs, zum Beispiel. die sogenannte „Attention“-Berechnung, braucht es jedoch Programmiersprachen auf geringerem Abstraktionsniveau für gute Lösungen. Hier konnte kürzlich gezeigt werden, dass mit der Verwendung der quelloffenen Sprache Triton (auch Teil des Pytorch-Ökosystems) derselbe Attention-Kernel mit bestmöglicher Leistung auf NVIDIA und AMD GPUs ausgeführt werden kann (arXiv und YouTube).
Neueste Forschung hat gezeigt, dass es kritisch, ist die hardwarespezifischen Details zu einem gewissen Maß in der Sprache „zu verstecken“. Allerdings müssen zentrale Implementierungsentscheidungen trotzdem noch von Programmierern getroffen werden. Zu letzterem gehört zum Beispiel, wie eine große Matrixmultiplikation auf kleinere „Häppchen“ aufgeteilt wird (tiling) und ob nachfolgende Berechnungen schon teilweise zusammen mit Teilergebnissen vorher ausgeführt werden können (fusion). Wichtig ist auch, dass die Programmiersprache, in diesem Fall Triton, die Fähigkeit hat, bestimmte Details wie Vektorgrößen oder die Reihenfolge von Speicherzugriffen automatisch an die Hardware (und die Anwendung) anzupassen (sog. „autotuning“).
Innovation und Souveränität: Bedeutung von Open-Source. Dass jede(r) LLMs auf dem neuesten Stand der Technik „zu Hause“ ausprobieren kann, ist nicht nur für Bastler gut, sondern auch wichtig für technologische Souveränität und die Innovationsfähigkeit von Unternehmen. Denn Innovationen gehen nicht ohne Risiko, und OSS reduziert das Risiko von Experimenten und neuen Entwicklungen maßgeblich. Zusätzlich sorgt OSS für eine Demokratisierung von LLMs und des dazugehörigen Wissens.
Also bietet sich hier vielleicht auch ein kleines Bastel- und Lernprojekt für die Feiertage an: Alle, die keine Berührungsängste mit einer Kommandozeile haben, können in wenigen Schritten ihren eigenen, hochmodernen Chatbot auf ihrer eigenen Hardware ausführen. Geeignete Anleitungen gibt es z.B. bei vLLM (Linux), llama.cpp (Windows/Mac/Linux) oder bei executorch (v.a. für Android/iOS).
Diesen Beitrag hat Dr. Burkhard Ringlein beigesteuert. Er forscht bei IBM Research in Zürich zur Effizienz von AI-Plattformen, natürlich vor allem mit und für Open-Source- Technologien (einige Ergebnisse sind im Text verlinkt). Seit 2023 ist Burkhard Ringlein GI-Junior-Fellow.
Der Text erschien zuerst in unserem Newsletter GI-Radar. Alle Ausgaben gibt es hier zum Nachlesen. Sie haben auch einen Vorschlag für ein Thema? Wir freuen uns über Ihre Nachricht an redaktion@gi-radar.de.
