Command Palette
Search for a command to run...
Chen Tianqi: Wie Sollten Wir Im Zeitalter Der Agenten KI-Compiler Überdenken?

1. AugustDer 9. Meet AI Compiler Technical Salon wurde in Peking erfolgreich abgeschlossen.Mehrere Experten und Wissenschaftler auf dem Gebiet der KI-Compiler trafen sich in Zhongguancun, Peking, um ihre Erkenntnisse über technologische Innovationen und praktische Erfahrungen auszutauschen. Ziel war es, ein Bild der kollaborativen Entwicklung von KI-Compilern auf verschiedenen Ebenen zu zeichnen, darunter Sprachausdruck, Operatorberechnung, Inferenzausführung und Szenarioanwendungen.
Tianqi Chen, Assistenzprofessor am Department of Machine Learning und am Department of Computer Science der Carnegie Mellon University, NVIDIA Distinguished Engineer sowie Kernentwickler und Gründer der weltweit renommierten Open-Source-Projekte XGBoost, Apache TVM und MLC LLM.Er nahm als Ehrengast an der Veranstaltung teil. Diese Pionierfigur auf dem Gebiet der KI-Compiler erläuterte die aktuelle Entwicklungsrichtung der TVM-Open-Source-Community und führte einen intensiven Austausch mit dem Publikum.

HyperAI hat die Ausführungen von Professor Chen Tianqi zusammengetragen und zusammengefasst, ohne die ursprüngliche Bedeutung zu verändern.
Hallo zusammen, ich freue mich sehr, an dieser Veranstaltung teilzunehmen und meine Erkenntnisse mit Ihnen zu teilen. Mein Name ist Chen Tianqi. Wir beschäftigen uns seit vielen Jahren mit dem Gebiet der KI-Compiler, und dieses Jahr war besonders interessant. Seit Jahresbeginn hat die Welle der KI-Agenten rasant zugenommen, und in der Branche sind einige neue Probleme aufgetaucht:
Die erste Frage: Haben KI-Compiler noch einen Nutzen? Benötigen wir überhaupt noch Compiler, wenn Agenten direkt programmiert werden können?
Die zweite Frage: Mit Automatisierung können wir mehr erreichen. Früher waren die Entwicklerressourcen der größte Engpass für kleine Teams; mit dem Einsatz von Agenten können wir mit kleineren Teams mehr leisten.
Was ich heute mitteilen möchte, ist Folgendes:Im Zeitalter der KI-Agenten: Wie sollten wir KI-Compiler neu denken? Welche Richtung sollten zukünftige KI-Compiler einschlagen?
Agentenspezifische Iteration beschleunigen
Ein wesentliches Merkmal ist, dass Agenten aufgrund ihres begrenzten Kontextes relativ schnelle, gezielte Iterationen erfordern. In der Vergangenheit bevorzugten wir die Entwicklung groß angelegter Projekte, insbesondere großer monolithischer Repositories, doch mittlerweile gewinnen gezielte Iterationen für Agenten zunehmend an Bedeutung.
Erstens haben wir festgestellt, dass die Stabilität, Kompositionsfähigkeit und Modularität der Projektgrenzen sehr wichtig sind, um agentenspezifische Iterationen zu beschleunigen.
Am Beispiel unseres TVM-FFI-Projekts lässt sich zeigen, dass das Ziel darin besteht, eine Kernkomponente innerhalb des großen TVM-Frameworks klar zu definieren: die Art und Weise, wie Funktionen einander aufrufen. Dies umfasst die Definition der Funktionsgrenzen zwischen verschiedenen Komponenten, von der Framework-DSL bis hin zum Backend, beispielsweise cuteDSL und FlashInfer. In der Vergangenheit konzentrierten wir uns stärker auf die Entwicklung einer durchgängigen Lösung, doch nun erkennen wir zunehmend den Bedarf an einer organischeren Grenze, die einen einfachen Wechsel zwischen Operatoren oder Modulen ermöglicht. Daher ist die klare Definition und Standardisierung dieser Grenze von entscheidender Bedeutung.
Seit seiner Veröffentlichung im letzten Jahr wurde TVM FFI in verschiedene Technologien integriert, darunter cuteDSL, FlashInfer und seit Kurzem auch TensorRT. Sein Zweck ist es, die Spezifikation der Schnittstellen festzulegen. Sobald die Schnittstellen klar definiert sind, lassen sich Zwischenmodule flexibler austauschen.
Zweitens wird es zukünftig mehr sprachübergreifende Unterstützung geben, damit Agent die erforderlichen Iterationen schnell abschließen kann.
Beträgt die Feedbackzeit des Agenten ein bis zwei Stunden, verlängert sich die Zeit für Versuch und Irrtum stetig. Daher muss der Compiler selbst mehr Sprachen unterstützen, weshalb wir uns für eine Infrastrukturunterstützung für weitere Sprachen einsetzen werden.
Früher interagierten Nutzer typischerweise mit einem Programm, das selbst Gegenstand ihrer Interaktion war. Da KI jedoch intelligenter sein kann, ist es wahrscheinlich, dass Menschen nicht mehr alle Berechnungen direkt durchführen, sondern entsprechende Werkzeuge entwickeln. Beispielsweise müssen mathematische Berechnungen nicht mehr zwingend im Kopf durchgeführt werden; man kann stattdessen Hilfsmittel verwenden.Ebenso glauben wir, dass die internen Analysefunktionen und die Infrastruktur des Compilers zunehmend an Bedeutung gewinnen werden. Wir planen, den Compiler zu modularisieren, damit die KI eigene, auf die aktuellen Bedürfnisse zugeschnittene Analyse- und Iterationsprozesse entwickeln kann.
Um dies zu erreichen, haben wir in letzter Zeit an TIRx gearbeitet und ein Tutorial mit dem Titel „Moderne GPU-Programmierung“ veröffentlicht. Dieses ist natürlich nicht auf GPUs beschränkt, sondern vermittelt allgemeinere Konzepte der Beschleunigerprogrammierung. In den letzten sechs Monaten habe ich Feng Siyuan gegenüber erwähnt, dass ich etwa die Hälfte meiner Zeit mit Programmieren verbracht habe. Denn mit dem Agenten können wir den gesamten Projektcode tatsächlich überarbeiten. Letztes Jahr haben wir das TVM-FFI-Modul relativ unabhängig und stabil gestaltet und werden die Unabhängigkeit und Stabilität von TIRx weiter vorantreiben.
Was können Compiler im Agentenzeitalter leisten?
Wir haben festgestellt, dass traditionelle Compiler eine wichtige Eigenschaft aufweisen: Sie lagern typischerweise zwei Arten von Komponenten im selben Stack aus. Die eine Art umfasst die übergeordneten, intelligenten Komponenten, wie beispielsweise die automatische Ablaufplanung; die andere Art umfasst die untergeordneten, weniger intelligenten Komponenten, wie beispielsweise rein regelbasierte Funktionen.Wir gehen jedoch davon aus, dass sich dieser Trend zukünftig ändern wird: Wir müssen zunehmend die stabilen Komponenten von denjenigen trennen, die schnelle Iterationen erfordern. Anders ausgedrückt: Es wird ein relativ stabiles Kernmodul geben, auf dessen Basis wir flexibler viele agentenbezogene Funktionen hinzufügen können. Dadurch können Agenten eigene Compiler erstellen und Prozesse ihren Bedürfnissen entsprechend optimieren.
Zurück zum Hauptthema: Was können Compiler im Agentenzeitalter leisten?
Ich denke, dass die KI-Compiler, über die wir im nächsten Jahr oder sogar schon Ende dieses Jahres sprechen, sich definitiv von denen unterscheiden werden, die wir vor diesem Jahr besprochen haben. Das ist eine sehr interessante Gelegenheit für uns, das gemeinsam neu zu überdenken.
Umgekehrt sind Menschen mit Werkzeugen zweifellos stärker als Menschen mit nur einem physischen Körper. KI-Compiler sind selbst eine Art Werkzeug. Solange wir also in der Lage sind, KI besser in den Entwurf und die Entwicklung von Compiler-Modulen einzubinden, werden sich weiterhin viele interessante Möglichkeiten ergeben.
Das war alles, was ich mitteilen wollte. Vielen Dank an alle.
Frage- und Antwortrunde

Frage 1: Sollten zukünftige Compiler angesichts der zunehmenden Verbreitung von Hardware eine allgemeine Architekturanpassung oder eine hardwarespezifische Anpassung vornehmen?
Chen Tianqi:Mit dem Aufkommen von Agenten wird sich vieles ändern. Traditionell bevorzugt jeder die gemeinsame Nutzung von Code über verschiedene Backends hinweg. Daher tendierten wir anfangs dazu, größere Monorepo-Systeme für eine einheitliche Entwicklung zu erstellen. Mit Agenten sinken jedoch die Entwicklungskosten, sodass zukünftig spezialisiertere Komponenten entstehen werden. Dies gilt insbesondere dann, wenn die Abstraktion des gemeinsam genutzten Codes nicht ausreicht, um die Hardwarekapazitäten auszuschöpfen – was häufig vorkommt. Beispielsweise kann ein für Hopper entwickelter Compiler selbst auf GPUs nach dem Erscheinen von Blackwell völlig unbrauchbar werden. Da dies häufig vorkommt, wird Spezialisierung in Zukunft unerlässlich sein.
Umgekehrt bleibt die Frage: Was kann gemeinsam bleiben? Wir benötigen weiterhin eine relativ stabile Grundlage, auf der Agenten hardwarespezifische Compiler entwickeln können. Beispielsweise zielt unsere jüngste Arbeit an TIRx darauf ab, verschiedenen Hardwarekomponenten die Registrierung eigener Dispatch-Regeln zu ermöglichen und dem Agenten anschließend die Generierung relevanten Wissens basierend auf den Hardwareeigenschaften zu gestatten.
Zukünftig werden wir immer mehr spezialisierte Compiler sehen. Diese werden sich wahrscheinlich in zwei Bereiche unterteilen: Der erste Bereich umfasst die stabileren Komponenten wie ABI-Anforderungen, zentrale IR-Datenstrukturen und sprachübergreifende Funktionen, die hohe Stabilitätsanforderungen stellen; der zweite Bereich ist auf spezifische Anwendungsfälle spezialisiert und wird zukünftig wahrscheinlich stärker agentengesteuert sein. Ich denke, wir werden diese Entwicklung in Zukunft immer häufiger beobachten.
Frage 2: Während meines Lernprozesses ist mir aufgefallen, dass viele traditionelle abstrakte Grenzen in der Information Retrieval (IR) aufgelöst und zusammengeführt werden. Dinge, die zuvor klar definiert waren, scheinen nach und nach in die IR integriert zu werden. Welche Richtung sehen Sie aus dieser Perspektive für die zukünftige Entwicklung von KI-Compilern?
Chen Tianqi:Ich denke, es wird sich in zwei Teile gliedern. Erstens: Obwohl verschiedene Information Retrievals (IRs) aktuell unterschiedlich aussehen mögen, sind sie sich in vielerlei Hinsicht sehr ähnlich und lassen sich grundsätzlich in mehrere Ebenen unterteilen: Kernel-Ebene, Graph-Ebene und die Interaktion zwischen ihnen. Nach einigen Jahren der Weiterentwicklung könnte sich dies allmählich auf einige wenige stabilere Ebenen konzentrieren. Zu viele Ebenen sind nicht vorteilhaft, da beim Übergang zwischen ihnen oft Informationen verloren gehen. Sobald wir uns also auf einige wenige Hauptebenen eingependelt haben, wird die Kernfrage lauten: Wie kodieren wir die notwendigen Informationen?
Der zweite Teil befasst sich mit der Frage, ob viele Aufgaben, die bisher einen leistungsstarken Compiler erforderten, an externes Personal oder externe Dienstleister delegiert werden können. Anders formuliert: Lässt sich der Compiler schlanker oder geschichtet gestalten? Schichtung bedeutet, eine relativ stabile Schicht zu haben, die kontinuierlich gewartet werden kann, und eine weitere Schicht, die schnell iterieren kann – zumindest in Zukunft werden diese beiden Schichten definitiv existieren.
Frage 3: Werden wir aus der Perspektive von KI-Compilern in Zukunft erleben, dass KI KI-Compiler schreibt? Welche Compilerkomponenten eignen sich kurzfristig für die Entwicklung durch KI? Welche zentralen Herausforderungen sind damit verbunden?
Chen Tianqi:Zunächst einmal glaube ich, dass viele Praktiker hier bereits damit begonnen haben, KI zum Schreiben von Compilern einzusetzen. Es handelt sich also nicht um eine Frage zukünftiger Möglichkeiten, sondern um etwas, das bereits jetzt geschieht.
Modularisierung ist hier entscheidend. Es ist sicherlich schwierig für KI, ein großes Projekt vollständig zu managen; jedoch ist es durchaus möglich, bestimmte Module an KI zu delegieren, um schnelle Iterationen und Versuche durchzuführen. Der Schlüssel liegt darin, das Problem in klar definierte Teilprobleme zu zerlegen. Daher ist die Abgrenzung der Teilprobleme unerlässlich. Unser TVM-FFI-Ansatz zielt darauf ab, diese Abgrenzungen klar zu definieren.
Ebenso wichtig ist eine gute IR-Infrastruktur. Beispielsweise gibt es derzeit keine optimale Lösung, um einen Compiler-IR zu entwickeln, der Sprachen wie Python, Rust und C++ unterstützt. Wenn wir zukünftig eine solche Infrastruktur bereitstellen können, wird dies die Entwicklungseffizienz erheblich steigern.
Was können wir also über die Infrastruktur hinaus tun? Ich denke, das hängt davon ab, ob wir gemeinsame Bedürfnisse identifizieren können. Wir haben beispielsweise bereits ein Problem besprochen: Ein wesentlicher Bestandteil des Compilers ist die Kostenreduzierung auf Host-Seite. Dieses Problem ist relativ unabhängig von GPU- und Hardwarebeschleunigung. Allerdings besteht auch bei der Optimierung auf Host-Seite selbst noch erhebliches Automatisierungspotenzial. Wenn wir diese gemeinsamen Bedürfnisse identifizieren können, wird KI in Zukunft eine größere Rolle in der Compilerentwicklung spielen.
Frage 4: Welche Positionen werden die verschiedenen Ebenen von Compilern, wie z. B. Low-Level-DSL und High-Level-DSL, in der Industrie und im Entwicklungsökosystem der Zukunft einnehmen?
Chen Tianqi: Ich denke, verschiedene Ebenen haben ihre eigenen Anforderungen. Generell ist es sinnvoll, die Low-Ebene darzustellen und gleichzeitig Repräsentationen für Low- und High-Ebenen zu haben. Beispielsweise verfügt TIRx, das wir kürzlich entwickelt haben, über eigene Repräsentationen für verschiedene Ebenen sowie für die Native-Partner-Ebene, was flexible Übergänge zwischen beiden ermöglicht. Dabei gilt jedoch ein Prinzip: Der Agent sollte so wenige Token wie möglich verwenden, um diese Dinge darzustellen, ohne seine Fähigkeiten einzuschränken.
Frage 5: In der Vergangenheit konzentrierten wir uns bei der Diskussion über Compiler hauptsächlich auf die Kernel-Ebene. Tatsächlich lassen sich jedoch viele Dinge mithilfe von IR darstellen. Werden daher zukünftig neben IR auf Kernel-Ebene auch IR auf Mikroebene und sogar IR auf Scheduling-Ebene zu Forschungsrichtungen für KI-Compiler werden?
Chen Tianqi:Das ist eigentlich ganz normal, denn Graph-Compiler gab es schon immer. Bisher war die Interaktion zwischen Kernel und Graph-Compilern nur relativ schwach. Graph-Compiler lösen hauptsächlich Probleme auf Graphebene, während Kernel-Compiler hauptsächlich Probleme auf Kernelebene lösen. Zukünftig wird jedoch eine stärkere Interaktion zwischen beiden notwendig sein.
Ein wichtiger aktueller Forschungsschwerpunkt ist MegaKernel, der eine Interaktion zwischen verschiedenen Kerneln erfordert. Daher haben wir untersucht, wie sich beide Informationstypen in einem einzigen integrierten Ressourcenidentifikator (IR) kapseln lassen. Sollte dies in Zukunft gelingen, erwarte ich interessante Entwicklungen. Beispielsweise nutzten frühere Arbeiten zu MegaKernel im Wesentlichen die Interaktion zwischen Graph- und Kernel-Ebene zur Optimierung.
Frage 6: Ist der agentenfreundliche Compiler eine wahre Behauptung?
Chen Tianqi:Zukünftig könnte ein Szenario entstehen, in dem wir keinen Compiler mehr benötigen; der Agent kann die Assembly direkt generieren. Der Unterschied liegt darin: Entweder der Agent führt diese Aufgabe direkt aus, oder er schreibt den Compiler selbst und erstellt so das Tool. Ich persönlich bin weiterhin der Meinung, dass der Compiler seinen Wert hat, da er die Entwicklungseffizienz in vielen Situationen steigern kann.
Ist „agentenfreundlich“ also eine falsche oder eine wahre Aussage? Ich denke, der Schlüssel liegt weniger darin, ob die Software diese Eigenschaft von vornherein besitzt, sondern vielmehr darin, ob wir sie als Ziel definieren. Sobald der Agent im Spiel ist, beobachten wir kontinuierlich: Wo funktioniert er gut, wo nicht, und optimieren ihn dann basierend auf diesem Feedback.
Beispielsweise stellen sprachübergreifende Anforderungen ein ernstzunehmendes Problem dar. Ein Agent kann zwar zunächst schnell einen Compiler-Pass in Python entwickeln, muss aber für eine beschleunigte Ausführung möglicherweise auf C++ oder Rust umsteigen. Wenn wir diese Probleme als unsere Ziele betrachten, ist das meiner Meinung nach durchaus positiv, da ein erheblicher Teil des Codes bereits von Agenten geschrieben wird. Zukünftig wird der Compiler auch zu einem Werkzeug, das Agenten beim Erstellen und Optimieren von Code unterstützen kann.
Dies ist eine Zusammenfassung des aufschlussreichen Vortrags von Professor Chen Tianqi auf dem Meet AI Compiler Technical Salon. Weitere spannende Vorträge dieser Veranstaltung werden ebenfalls als Transkripte veröffentlicht – bleiben Sie also gespannt!








