Entwickler arbeiten mit Hochdruck daran, die Leistungsfähigkeit von Large Language Models (LLMs) zu nutzen und fortschrittliche natürliche Sprachverarbeitung in einer Vielzahl von Anwendungen einzusetzen. Eine Technik, die sich immer größerer Beliebtheit erfreut, ist die Retrieval-Augmented Generation (RAG), bei der LLM-spezifische Suchmethoden eingesetzt werden, um relevante Informationen aus den Daten abzurufen und sie zusammen mit Eingabeaufforderungen in ein LLM einzuspeisen. Als Entrepreneur in Residence bei Open Strategy Partners entwickle ich solche Tools, um den Wert, den unsere B2B-Tech-Kunden aus unseren strategischen Marketingkooperationen ziehen, zu steigern.
Ich habe Upsun für die Entwicklung unserer Anwendungen aus fünf Hauptgründen ausgewählt, die meiner Meinung nach für jeden, der mit RAG arbeitet, relevant sind. Hier ist ein detaillierter Blick auf jeden einzelnen Grund, grob in der Reihenfolge seiner Wichtigkeit:
RAG stützt sich auf Suchtechniken, die LLMs in die Erstellung des Suchindexes einbeziehen. Dies erfordert eine spezialisierte Datenbank, die eher semantische Abfragen als traditionelle SQL-Abfragen ermöglicht. Ich kann zum Beispiel eine Vektordatenbank mit "Eine Rose mit einem anderen Namen würde genauso süß duften" abfragen und erhalte Ergebnisse, die semantisch ähnlich sind, auch wenn sie nicht die exakten Wörter enthalten.
Upsun bietet mehrere Optionen für verwaltete Datenbanken an, die diesem Bedarf gerecht werden, darunter:
Diese Optionen bieten robuste Backends für moderne RAG-Anwendungen, wodurch die Notwendigkeit entfällt, zusätzliche Dienste von Drittanbietern zu beschaffen. Die Tatsache, dass sich die Daten und die Abfrage-Engine im gleichen Netzwerk wie die Anwendung befinden, vereinfacht nicht nur den Betrieb, sondern verbessert auch die Leistung.
Die RAG verarbeitet Texte vor, indem sie sie in Stücke ähnlicher Größe zerlegt, die in die Grenzen der Einbettungsmaschine des LLM passen. Die Methode des Chunking hat einen erheblichen Einfluss auf die Leistung einer RAG-Anwendung, so dass die Wahl des Chunking-Algorithmus entscheidend ist.
Upsun vereinfacht diesen Prozess, indem es die Erstellung einer Hauptumgebungermöglicht , die alle nicht gechunkten Texte in der Datenbank enthält. Von dort aus kann ich mehrere Zweige erstellen, um verschiedene Chunking-Algorithmen zu testen. Da Upsun bei der Erstellung eines neuen Zweigs die Daten der übergeordneten Umgebung klont, habe ich am Ende identische Kopien meiner Anwendung und Daten, die jeweils unabhängig voneinander mit ihren eigenen testbaren URLs laufen. Dieser Aufbau ermöglicht den direkten Vergleich verschiedener Chunking-Strategien. Sobald der optimale Chunker identifiziert ist, kann er in die Hauptumgebung eingebunden und unnötige Verzweigungen können gelöscht werden. Kein anderes System bietet einen so effizienten Arbeitsablauf für diesen Prozess.
Nach dem Chunking der Texte werden im nächsten Schritt Einbettungen erstellt, indem diese Chunks an einen LLM gesendet werden, der sie in Vektorarrays umwandelt, die das semantische Verständnis des Textes darstellen. Für jedes verarbeitete Chunk wird ein API-Aufruf an den LLM getätigt, was Zeit, Rechenressourcen und Kosten mit sich bringt. Diese Einbettungen sind ein wertvolles Gut, und es wäre Verschwendung, sie zu duplizieren.
Mit Upsun können Einbettungen in einer übergeordneten Umgebung generiert und leicht mit allen Entwicklern geteilt werden, indem diese übergeordnete Umgebung mit ihren individuellen Entwicklungsumgebungen synchronisiert wird. Dieser Ansatz stellt sicher, dass Einbettungen niemals dupliziert werden, was Kosten spart und die Konsistenz im gesamten Team gewährleistet. Darüber hinaus entfällt die Notwendigkeit komplexer DevOps-Setups, da die Synchronisation mit einem einzigen Befehl auf Upsun erreicht wird.
Die Interaktion mit LLMs erfordert einen sorgfältigen Umgang mit API-Schlüsseln und anderen sensiblen Geheimnissen. Eine falsche Verwaltung kann dazu führen, dass API-Schlüssel in öffentliche Repositories wie GitHub gelangen, dass Produktionsschlüssel versehentlich ungültig gemacht werden oder dass eine nicht autorisierte Nutzung zu unvorhersehbaren Kosten führt.
Upsun begegnet diesen Herausforderungen mit einem robusten System zur Speicherung und Verwaltung von geheimen Schlüsseln. Es ermöglicht:
Zum Beispiel habe ich kürzlich Upsun verwendet, um einem Praktikanten OpenAI-Schlüssel zur Verfügung zu stellen und sicherzustellen, dass er nur bestimmte Arten von Operationen durchführen kann, während ich die Ausgaben für API-Aufrufe im Auge behalte.
Bei Upsun geht es nicht nur um Datenbanken und Umgebungsverwaltung, sondern auch um die Unterstützung moderner Anwendungsentwicklungspraktiken. In unserem Setup verwenden wir:
Die wichtigsten Vorteile von Upsun:
requirements.txt
auf und verpackt den Code in unveränderliche Images. Dies stellt sicher, dass unsere Anwendung sicher vor unbefugten Änderungenbleibt und gegen eine Reihe von potenziellen Cyber-Bedrohungen geschützt ist, die beschreibbare Dateisysteme ausnutzen.Für weitere Informationen habe ich eine Reihe von Artikeln über die Entwicklung von Django-Projekten auf Upsungeschrieben .
Die Wahl der richtigen Plattform ist entscheidend für den Erfolg von RAG-Anwendungen. Upsun zeichnet sich durch umfassende Managed Services, effiziente Test-Workflows, kosteneffizientes Embedding-Management, sicheren Umgang mit Geheimnissen und Unterstützung für moderne Entwicklungspraktiken aus. Diese Eigenschaften machen Upsun zu einer idealen Wahl für die Erstellung skalierbarer, sicherer und leistungsstarker RAG-Anwendungen. Wenn Sie sich in die Welt der Retrieval-Augmented Generation wagen wollen, ist Upsun sicherlich eine Plattform, die Sie in Betracht ziehen sollten.
Robert Douglass, ein ehemaliges Mitglied des Platform.sh-Teams, hilft Produktteams, ihre größten Innovationen zum Leben zu erwecken. Derzeit entwickelt er als Entrepreneur in Residence bei Open Strategy Partners GmbH Anwendungen, die den Wert strategischer Marketing-Assets für B2B-Tech-Unternehmen steigern .