Mit dem LLM Compiler führt Meta die Softwareentwicklung in eine neue Ära

-


Meta bringt eine Open-Source-Familie von LLMs auf den Markt, die auf das Verständnis niedriger Sprachen spezialisiert sind. Neue Modelle, die von Softwareentwicklern schnell übernommen werden könnten.

Nach der Auseinandersetzung mit LLMs, die auf High-Level-Code spezialisiert sind (C++, C++, Java, C#…), startet Meta mit KI-Modellen, die für Low-Level-Code optimiert sind. Forscher des amerikanischen Labors haben den LLM Compiler entwickelt, eine neue Familie großer Sprachmodelle, die dank eines detaillierten Verständnisses des Kompilierungsprozesses und der Low-Level-Sprachen auf die Codeoptimierung spezialisiert sind. Neue Modelle, die den Weg für eine weitere Optimierung der entwickelten Programme ebnen und so eine Steigerung der Effizienz und Geschwindigkeit der Ausführung ermöglichen.

Eine Modellfamilie basierend auf Code Llama

Meta-KI-Forscher gingen von einer Beobachtung aus: Die derzeit auf dem Markt eingesetzten Code-LLMs eignen sich recht gut für die Codegenerierung und -vervollständigung. Andererseits ist ihre Optimierungsfähigkeit noch sehr begrenzt. Führende LLMs schaffen es, den Code teilweise zu optimieren, verstehen aber den Kompilierungsprozess und die Low-Level-Sprachen nicht gut genug, um Ergebnisse zu erzielen, die sich wirklich auf das endgültige Programm auswirken. Um diese Lücken zu schließen, beschlossen die Meta-Forscher, eine neue Modellfamilie zu trainieren, die in der Lage ist, sowohl von Compilern verwendete Intermediate Languages ​​​​(IR) als auch Assemblersprachen zu verstehen. Ziel ist es, das Verhalten eines Compilers zu simulieren. Zur Erinnerung: Der Compiler ist ein Computerprogramm, das Quellcode (C, C++, Java) in eine einfache Sprache wie Maschinensprache oder Assemblersprache übersetzt, die der Computer direkt ausführen kann.

Um den LLM-Compiler zu entwickeln, ohne bei Null anzufangen, wählten die Forscher mehrere Versionen von Code Llama, dem auf Code spezialisierten LLM von Meta. Sie trainierten es anhand eines Datensatzes, der aus 546 Milliarden Low-Level-Code-Tokens besteht, die aus LLVM-IR-Code (Zwischendarstellung des Quellcodes, zwischen dem ursprünglichen Quellcode und dem endgültigen Maschinencode) und Assembler-Code (x86_84, ARM und CUDA) bestehen ). Dieser Schritt ermöglichte es den Modellen, ein tiefes Verständnis der internen Funktionsweise von Compilern und der von ihnen angewendeten Optimierungen zu erlangen.

Aber die Forscher hörten hier nicht auf: Anschließend führten sie eine Feinabstimmung durch, indem sie die Modelle trainierten, um die Auswirkungen von Compiler-Optimierungen auf den generierten Code vorherzusagen. Schließlich wurden spezielle Varianten des LLM-Compilers, genannt LLM Compiler FTD, erstellt, indem die Modelle für bestimmte Codeoptimierungs- und Disassemblierungsaufgaben weiter verfeinert wurden.

Zusammenfassung des Modelltrainings (LLM Compiler und LLM Compiler FTD). © Screenshot Meta AI / JDN

Vier Modelle veröffentlicht

Meta stellt tatsächlich vier verschiedene Modelle vor. Das Basismodell, einfach LLM Compiler genannt, gibt es in zwei Größen: 7 Milliarden und 13 Milliarden Parameter. Diese Modelle sind in der Lage, die Funktionsweise von Compilern zu verstehen und zu emulieren. Noch interessanter wird es jedoch mit den spezialisierten Versionen namens LLM Compiler FTD mit 7 und 13 Milliarden Parametern.

Diese Varianten haben von der Feinabstimmung profitiert, um sich beim Flag-Tuning, also der Vorhersage der besten Kompilierungsparameter, um die Größe des generierten Codes zu minimieren, und bei der Disassemblierung hervorzuheben. Konkreter gesagt ist das Modell in der Lage, Compiler-Parameter für einen effizienteren Maschinencode zu optimieren und außerdem High-Level-Code (in IR) aus Assembler-Code zu rekonstruieren. Zwei Arten von Modellen, die insbesondere Softwareentwicklern den Weg zu einer Vielzahl von Anwendungsfällen ebnen.

Was sind die konkreten Anwendungen dieser Modelle?

Meta bietet mit seinem LLM Compiler neue, weiterführende Anwendungen von LLMs im Entwicklungsprozess. Das fein abgestimmte LLM-Compiler-Template kann als intelligenter Assistent beim Kompilieren von Code verwendet werden. Aus dem IR-Zwischencode können an den Quellcode angepasste Optimierungssequenzen (eine Reihe von Schritten, die der Compiler zur Optimierung des Codes befolgt, z. B. das Entfernen nicht verwendeter Codes und das Abwickeln von Schleifen) vorgeschlagen werden. All dies ermöglicht es Ihnen, ohne manuellen Aufwand eine effizientere ausführbare Datei zu erhalten (ohne beispielsweise mehrmals von Hand iterieren zu müssen).

Der LLM Compiler FTD wiederum ist perfekt geeignet, die bestmögliche Konfiguration im LLVM-Zwischencode vorherzusagen, um die Größe des endgültigen Codes eines Programms direkt zu reduzieren. Eine ideale Situation für Fälle, in denen das Programm in einer Umgebung mit begrenztem Speicher ausgeführt werden muss, beispielsweise in eingebetteten Systemen oder Mikrocontrollern. Ebenso kann der LLM Compiler FTD für Reverse Engineering verwendet werden. Mit seiner Fähigkeit, Maschinencode zu zerlegen (Maschinencode in eine Darstellung auf höherer Ebene umzuwandeln), kann es die Analyse und Wartung alter Programme erleichtern, deren ursprünglicher Quellcode verloren gegangen ist. Dadurch wird es möglich sein, verwendbaren Code zu „finden“, um ihn anzupassen und möglicherweise für eine neue Architektur anzupassen.

Diese einfache Demontage könnte jedoch auch für böswillige Zwecke ausgenutzt werden: Hacker könnten LLM Compiler FTD nutzen, um proprietäre Programme oder Firmware einfacher zu analysieren und nach Schwachstellen zu suchen, die sie ausnutzen können. Im Vergleich zu bestehenden Lösungen auf dem Markt wie IDA Pro oder Ghidra könnte LLM Compiler FTD die Demontage leichter zugänglich und automatisiert machen, ohne dass ein hohes Maß an Reverse-Engineering-Fachwissen erforderlich wäre. Angesichts dieser Bedrohung ist es wahrscheinlich, dass neue Techniken zur Code-Verschleierung entwickelt werden müssen.

Eine neue Lücke im Code

Die vier von Meta vorgestellten Modelle werden unter einer speziellen Lizenz veröffentlicht, die von Meta veröffentlicht wird. Es ermöglicht Unternehmen und Forschern, auf dem LLM Compiler basierende Produkte zu modifizieren, weiterzuverbreiten und sogar zu vermarkten, sofern sie ihn nicht zur Verbesserung anderer wichtiger Sprachmodelle verwenden. Die Lizenz enthält eine Sonderklausel für sehr große Unternehmen, die eine besondere Nutzungsgenehmigung für diejenigen mit mehr als 700 Millionen aktiven monatlichen Nutzern erfordert. Das zugrunde liegende Ziel? Vermeiden Sie es, dass KI-Labore Modelle zum Trainieren ihrer Laboratorien verwenden.

LLM Compiler und LLM Compiler FTD bieten neue Funktionen, die die Softwareentwicklungspraktiken revolutionieren könnten. Ihre Fähigkeit, Low-Level-Code zu verstehen und zu optimieren, verspricht erhebliche Leistungssteigerungen und reduziert gleichzeitig die Arbeitsbelastung der Entwickler (immer noch ein wenig). Man kann davon ausgehen, dass die Modelle von Meta in den kommenden Monaten schnell von Softwareentwicklern übernommen und direkt in bestimmte IDEs integriert werden.

-

PREV Nanobiotix: Größter Anstieg des SRD-Marktes zur Sitzungsmitte am Montag, 1. Juli 2024
NEXT 75 % der Händler setzen auf eine Steigerung