Compound-KI-Systeme
Was sind Compound-KI-Systeme?
Laut der Definition im Blog von Berkeley AI Research (BAIR) handelt es sich bei Compound-KI-Systemen um solche, die KI-Aufgaben durch die Kombination mehrerer interagierender Komponenten bewältigen. Diese Komponenten können viele Aufrufe von Modellen, Retrievern oder externen Tools enthalten. RAG-Anwendungen (Retrieval Augmented Generation) beispielsweise sind Compound-KI-Systeme, da sie (mindestens) ein Modell und ein Datenabrufsystem kombinieren. Compound-KI-Systeme nutzen die Stärken verschiedener KI-Modelle, Tools und Pipelines, um die Leistung, Vielseitigkeit und Wiederverwendbarkeit im Vergleich zur ausschließlichen Nutzung einzelner Modelle zu verbessern.
Viele neue KI-Ergebnisse stammen immer häufiger von Compound-KI-Systemen (Quelle)
Entwickler konzipieren vermehrt Compound-KI-Systeme, um ihre anspruchsvollsten KI-Aufgaben zu bewältigen. Diese Systeme übertreffen oft die Einzelmodelle. Trotzdem sind wir als Community immer noch damit beschäftigt herauszufinden, wie wir diese Systeme und die dazugehörigen Komponenten optimal gestalten.
Warum überhaupt Compound-KI-Systeme?
- Manche Aufgaben lassen sich leichter durch Systemdesign verbessern: Der Einsatz größerer und leistungsfähigerer Modelle kann KI-Anwendungen zwar verbessern, aber es gibt oft einen Punkt, an dem der Nutzen nachlässt. Außerdem kann die Verbesserung oder Anpassung eines Modells durch Training oder Fine-Tuning zeitaufwendig und kostspielig sein. Die Integration anderer Modelle oder Tools in ein Compound-System kann die Qualität der Anwendung über das Maß hinaus verbessern, was ein einzelnes Modell – und sei es noch so leistungsfähig – erreichen kann.
- Systeme können dynamisch sein: Individuelle Modelle sind grundsätzlich durch ihre Trainingsdaten limitiert. Sie erlernen ganz bestimmte Informationen und Verhaltensweisen und verfügen zudem nicht über Funktionen beispielsweise zum Durchsuchen externer Datenquellen oder zur Durchsetzung von Zugriffskontrollen. Bei einem Systemansatz können externe Ressourcen wie Datenbanken, Code-Interpreter, Berechtigungssysteme usw. hinzugefügt werden, wodurch Compound-KI-Systeme viel dynamischer und flexibler sind als einzelne Modelle.
- Bessere Kontrolle und mehr Vertrauen: Es kann schwierig sein, einzelne Modelle zum Liefern zuverlässiger Sachinformationen oder einheitlich formatierter Ergebnisse zu bewegen. Notwendig sind hierfür unter Umständen sorgfältig definierte Prompts, mehrere Beispiele, eine Feinabstimmung oder sogar Workarounds wie beispielsweise der Hinweis an das LLM, dass es bei der Antwortqualität um Leben und Tod geht. Durch das Orchestrieren von LLMs mit anderen Tools und Datenquellen können KI-Systeme glaubwürdiger und zuverlässiger werden, weil sie mit korrekten Informationen aus externen Quellen versorgt werden, oder weil Beschränkungen bei der Ausgabeformatierung mithilfe von Tools sich besser durchsetzen lassen.
- Mehr Möglichkeiten beim Kosten-Qualitäts-Verhältnis: Einzelne Modelle bieten meist ein vorgegebenes Qualitätsniveau zu festen Kosten; dagegen eignet sich das Kosten-Qualitäts-Verhältnis, das über einzelne Modelle verfügbar ist, nicht unbedingt für alle Anwendungsfälle. Die Möglichkeit, LLMs mit externen Tools zu kombinieren, bietet mehr Flexibilität bei den verfügbaren Kosten-Qualitäts-Optionen. So kann beispielsweise ein kleines und sorgfältig justiertes Modell in Kombination mit verschiedenen Suchheuristiken gute Ergebnisse zu geringeren Kosten liefern als größere und leistungsfähigere Modelle. Andererseits kann die Einbeziehung externer Tools und Datenquellen die Performance selbst der größten und leistungsfähigsten Modelle verbessern, sofern ein größeres Budget vorhanden ist.
Wie entstehen effektive Compound-KI-Systeme?
Compound-KI-Systeme sind eine noch junge Anwendungskategorie, sodass die Best Practices für ihre Entwicklung und Nutzung noch im Aufbau sind. Es gibt viele verschiedene Ansätze für Compound-KI-Systeme, die jeweils unterschiedliche Vor- und Nachteile aufweisen. Zum Beispiel:
- Steuerlogik: In einem Compound-KI-System kann eine Codebasis, die eine Steuerlogik definiert, ein Modell aufrufen, um bestimmte Aufgaben unter bestimmten Bedingungen auszuführen. So profitiert man von der Zuverlässigkeit programmatischer Steuerabläufe und gleichzeitig von der Vielseitigkeit von LLMs. Andere Systeme könnten ein LLM für den Steuerablauf verwenden, das mehr Flexibilität bei der Interpretation von Eingaben und der Reaktion darauf bietet, dies aber möglicherweise auf Kosten der Zuverlässigkeit. Tools wie Databricks External Models können bei der Steuerungslogik unterstützend eingreifen, indem sie den Prozess der Verknüpfung verschiedener Teile einer Anwendung mit unterschiedlichen Modellen vereinfachen.
- Wo sollten Zeit und Ressourcen investiert werden? Bei der Entwicklung von Compound-KI-Systemen ist es nicht immer offensichtlich, ob man mehr Zeit und Ressourcen in die Verbesserung der Leistung des oder der im System verwendeten Modelle oder in die Optimierung anderer Systemaspekte investieren sollte. Das Fine-Tuning eines Modells oder sogar der Umstieg auf ein allgemein leistungsfähigeres Modell kann die Leistung eines Compound-KI-Systems verbessern, aber das gilt auch für die Verbesserung eines Datenabrufsystems oder anderer Komponenten.
- Messen und Optimieren: Die Evaluierung ist in jedem System, das KI-Modelle verwendet, wesentlich, aber der zu wählende Ansatz ist stark anwendungsspezifisch. Bei einigen Systemen könnte eine diskrete Metrik zur Bewertung der End-to-End-Leistung geeignet sein, während es bei anderen Systemen sinnvoller sein mag, verschiedene Komponenten individuell zu bewerten. Bei einer RAG-Anwendung ist es beispielsweise oft notwendig, die Abruf- und die Generierungskomponenten getrennt zu beurteilen. MLflow bietet einen flexiblen Evaluierungsansatz, der viele verschiedene Aspekte von Compound-KI-Systemen berücksichtigen kann – einschließlich Abruf und Generierung.
Trotz der sich schnell ändernden Konzepte gibt es eine Reihe von Grundprinzipien für den Aufbau effektiver Compound-KI-Systeme:
- Entwickeln Sie ein solides Evaluierungssystem: Compound-KI-Systeme umfassen in der Regel zahlreiche miteinander interagierende Komponenten, und wenn man eine dieser Komponenten ändert, kann sich dies auf die Leistung des Gesamtsystems auswirken. Entscheidend ist, eine wirksame Methode zu finden, um die Leistung des Systems zu messen, und die notwendige Infrastruktur einzurichten, um diese Evaluierungen aufzuzeichnen, abzurufen und ggf. entsprechende Konsequenzen zu ziehen.
- Experimentieren Sie mit unterschiedlichen Ansätzen: Wie bereits erwähnt, gibt es bislang nur wenige etablierte Best Practices für die Entwicklung von Compound-KI-Systemen. Höchstwahrscheinlich wird es notwendig sein, mit verschiedenen Herangehensweisen zur Integration von KI-Modellen und anderen Tools zu experimentieren, und zwar sowohl in Bezug auf die gesamte Anwendungssteuerungslogik als auch auf die einzelnen Komponenten. Dabei unterstützt Modularität die Experimente: Es ist einfacher, mit einer Anwendung zu experimentieren, die das Austauschen verschiedener Modelle, Datenabfragen, Tools usw. unterstützt. MLflow bietet eine Reihe von Tools für Evaluation und Experimente, weswegen es besonders nützlich für die Entwicklung von Compound-KI-Systemen ist.
Was sind die wichtigsten Herausforderungen beim Aufbau von Compound-KI-Systemen?
Compound-KI-Systeme stellen Entwickler im Vergleich zu reinen KI-Modellen vor mehrere wesentliche Herausforderungen:
- Größerer Gestaltungsraum: Compound-KI-Systeme kombinieren mindestens ein KI-Modell mit Tools wie Retrievern oder Code-Interpretern, Datenquellen, Code-Bibliotheken usw. Und für jede dieser Komponenten bieten sich in der Regel mehrere Optionen an. Bei der Entwicklung einer RAG-Anwendung müssen Sie z. B. in der Regel (zumindest) entscheiden, welche Modelle für die Einbettung und die Texterstellung verwendet werden, welche Datenquellen genutzt werden und wo die Daten gespeichert werden sollen und welches Abfragesystem genutzt werden soll. Ohne eindeutige Best Practices müssen Entwickler oft erhebliche Anstrengungen unternehmen, um diesen riesigen Gestaltungsraum zu erkunden und eine funktionierende Lösung zu finden.
- Co-Optimierung der Systemkomponenten: KI-Modelle müssen oft optimiert werden, um mit bestimmten Tools gut zu funktionieren, und umgekehrt. Das Ändern einer Komponente eines Compound-KI-Systems kann das Verhalten des Gesamtsystems auf unerwartete Weise verändern, und es kann enorm schwierig sein, eine Konstellation zu finden, in der alle Komponenten gut zusammenarbeiten. In einem RAG-System kann zum Beispiel ein LLM sehr gut mit einem bestimmten Abfragesystem funktionieren, ein anderes hingegen nicht.
- Komplizierter Betrieb: Schon für sich genommen sind Bereitstellung, Monitoring und Sicherheit von LLMs mitunter sehr anspruchsvoll. Eine Kombination mit anderen KI-Modellen und Tools kann diese Herausforderungen noch verschärfen. Die Verwendung von Compound-Systemen kann es für Entwickler notwendig machen, MLOps- und DataOps-Tools und -Verfahren in spezieller Weise zu kombinieren, um Anwendungen richtig überwachen und debuggen zu können. Databricks Lakehouse Monitoring kann einen hervorragenden Einblick in die komplexen Daten- und Modellierungspipelines von Compound-KI-Systemen bieten.