Kürzlich erhielt ich eine E-Mail von einem begabten Wissenschaftler, der mich fragte, wie Botpress mit LLMs zusammenarbeitet.
Er schrieb eine Arbeit über die Vermeidung von Vendor Lock-in und wollte wissen, ob wir vielleicht ein Framework wie LangChain oder Haystack verwenden.
Ich war mehr als erfreut, ihm mitzuteilen, dass wir unsere eigenen Abstraktionen entwickelt haben, die es den Erstellern von Botpress ermöglichen, eine Schnittstelle zu LLMs zu schaffen.
In Anbetracht des großen Interesses an diesem Thema wollte ich diese Informationen öffentlich machen. Vielleicht sind sie für andere Entwickler oder die Nutzer unserer Plattform von Nutzen. Ich hoffe, Sie finden sie so interessant, wie ich sie erstellt habe.
Zwei Möglichkeiten Botpress Schnittstellen mit LLMs
Botpress hat seine eigenen Abstraktionen geschaffen, die auf zwei Arten funktionieren:
1. Integrationen
Integrationen haben das Konzept von Aktionen, die bestimmte Eingabe- und Ausgabetypen haben.
Wir haben Open-Source-Komponenten auf der Plattform, so dass die Community ihre eigenen Integrationen erstellen kann, die entweder privat oder für die Öffentlichkeit zugänglich sein können.
So haben die Anbieter von LLM - OpenAI, Anthropic, Groq, etc. - haben alle eine Integration. Das ist eine Möglichkeit für unsere Nutzer, mit ihnen in Kontakt zu treten.
2. LLM Integrationsschnittstellen
Zusätzlich zum Konzept der Integrationen haben wir "Schnittstellen" hinzugefügt.
Dabei handelt es sich einfach um Standardschemadefinitionen, die durch Integrationen erweitert werden können. Wir haben ein Standardschema für LLMs erstellt.
Solange eine Integration dieses Schema erweitert, gilt die Integration als LLM Anbieter. Sie funktioniert also sofort in Botpress.
Hier sind einige Beispiele für die Botpress Integrationen für verschiedene LLM Anbieter:
Wir haben ähnliche Schnittstellen für text2image, image2text, voice2text, text2voice, usw.
Modell-Konfigurationen
In Botpress Studio gibt es zwei allgemeine Konfigurationen: das "Beste Modell" und das "Schnelle Modell". Wir haben festgestellt, dass die meisten Aufgaben im Allgemeinen leicht in einen dieser beiden Modi passen.
Doch abgesehen von der reinen Modellauswahl stellten wir fest, dass die verschiedenen Anbieter bei den Toolaufrufen und Nachrichtenformaten zu sehr voneinander abwichen, als dass man einfach ein Modell gegen ein anderes austauschen und gute Leistungen erwarten konnte.
Die Inferenzmaschine Botpress
Aus diesem Grund haben wir unsere eigene Inferenzmaschine namens LLMz entwickelt, die mit jedem Modell funktioniert, ohne dass eine (oder nur eine sehr minimale) Änderung der Eingabeaufforderung erforderlich ist. Und sie bietet viel bessere Werkzeugaufrufe und oft eine viel bessere Leistung in Bezug auf die Token-Kosten und LLM Roundtrips.
Diese Engine arbeitet im Hintergrund mit Typescript-Typen für die Werkzeugdefinitionen, Markdown für das Nachrichten- und Code-Ausgabeformat und einer LLM-nativen Ausführungssandbox für Inferenzen.
LLMz bietet viele Optimierungen und Debugging-Funktionen, die für fortgeschrittene Anwendungsfälle wie z.B.:
- Komprimierung der Eingabe-Token
- Intelligente Token-Trunkierung
- Token-optimierter Speicher-zu-Kontext
- Paralleler und zusammengesetzter Werkzeugaufruf
- Mischung aus mehreren Meldungen + Tool-Aufrufen in einem einzigen LLM -Aufruf
- Vollständig typsichere Werkzeuge (Input & Output)
- Langlebige Sitzungen durch Sandbox-Serialisierung
- Werkzeugspotting, -umwicklung und -rückverfolgung
- Vollständige Ausführungsisolierung in leichtgewichtigen V8-Isolaten (ermöglicht die schnelle und kostengünstige Ausführung von Tausenden von gleichzeitigen Ausführungen)
- Automatische Iterationen und Fehlerbehebung
All diese Dinge waren für unsere Anwendungsfälle notwendig. Aber sie waren entweder unmöglich oder sehr schwer mit dem normalen Werkzeugaufruf zu erledigen.
Das Argument gegen leichtgewichtige Router-Modelle
Wir haben lange darüber nachgedacht, ein leichtgewichtiges Routermodell zu entwickeln, das auf die bestehenden Modelle aufgesetzt werden kann und automatisch das richtige Modell für die jeweilige Aufgabe auswählt.
Wir haben uns jedoch aus mehreren Gründen dagegen entschieden:
1. Vorhersehbarkeit
Die meisten unserer Kunden wollen - verständlicherweise - zuverlässige und vorhersehbare Ergebnisse.
Der Gedanke an einen dynamischen Modell-Router ist für High-Level-Agenten also ein wenig beängstigend. Er bringt eine weitere Ebene der Unvorhersehbarkeit auf LLMs.
2. Geschwindigkeit
Die Latenzzeit ist für unsere Anwendungsfälle sehr wichtig. Damit der Router schnell ist, muss das Modell sehr klein (und wohl auch dümmer) sein als die Modelle, an die es weiterleitet - wahrscheinlich ein herkömmlicher Klassifikator.
Während diese in der Regel gut funktionieren, wenn sie auf bestimmte Aufgaben trainiert werden, sind a) ihre kurzen Kontextgrößen ein Problem für lange Prompts und b) sie können nicht auf andere Prompts verallgemeinert werden, für die sie nicht trainiert worden sind.
3. Modell Vorherrschaft oder Modell Gleichheit
Auch wenn Benchmarks etwas anderes aussagen, haben wir in der Praxis nur selten gesehen, dass ein Modell besser abschneidet als GPT-4o (bis jetzt).
Es ist immer noch unklar, ob LLMs im Laufe der Zeit bei Aufgabe X wirklich besser abschneidet als bei Aufgabe Y, oder ob alle LLMs am Ende in den meisten Dingen extrem gut sind. Im letzteren Fall würde sich die Auswahl der Modelle nicht lohnen.
Zukunftssicher LLMs mit Feedback
LLMs wird in ein paar Jahren eine Massenware sein, und die Modellauswahl wird keine Rolle mehr spielen.
Aus diesen Gründen haben wir beschlossen, unsere Bemühungen darauf zu richten, einen guten Mechanismus zu schaffen, um LLMs mit Beispielen zu versorgen.
Deshalb haben wir ein System zur Erfassung von Feedback entwickelt. Es speichert "Lehren" für künftige Durchführungen. Und es stellt dynamisch und zeitnah die relevantesten Erkenntnisse für künftige Ausführungen zur Verfügung, um zuverlässige und kontinuierliche Verbesserungen im Laufe der Zeit zu gewährleisten.
Da LLMs immer leistungsfähiger wird, sind wir bereit und begeistert, das Beste für die Nutzer unserer Plattform herauszuholen.
Inhaltsübersicht
Bleiben Sie auf dem Laufenden mit den neuesten Informationen über KI-Agenten
Teilen Sie dies auf: