24 Punkte von xguru 2024-12-03 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Um präzise und passende Ausgaben von LLMs zu erhalten, ist ein ausgefeiltes Prompt-Design unerlässlich.
  • Prompt-Design ermöglicht es auch Nutzern ohne Vertrautheit mit Machine Learning, die Modellausgabe mit minimalem Overhead zu steuern.
  • Uber hat ein zentrales Toolkit entwickelt, um mit LLMs schnell iterieren und experimentieren zu können.
    • Erstellung und Verwaltung von Prompt-Templates
    • Nutzung von RAG und Datensätzen zur Laufzeit
  • Funktionen:
    • Unterstützung für Systemanweisungen, dynamische Kontextualisierung, umfangreiche Offline-Generierung (LLM-Inferenz) und Antwortbewertung
    • Versionsverwaltung, Zusammenarbeit, Sicherheitsprüfungen (einschließlich Halluzinations-Checks, standardisiertem Evaluierungs-Framework und Sicherheitsrichtlinien)

Lifecycle des Prompt Engineering

Der Lebenszyklus des Prompt Engineering besteht aus zwei Phasen:

  • Entwicklungsphase: Besteht aus den drei Schritten LLM-Erkundung, Iteration von Prompt-Templates und Evaluierung
    • Phase der LLM-Erkundung: Verfügbare LLMs über den Modellkatalog und den GenAI Playground erkunden und LLM-Antworten mit Prompts testen
    • Phase der Iteration von Prompt-Templates: Konkrete Geschäftsanforderungen erfassen, Beispieldaten sammeln, Prompts erstellen/analysieren/testen, Antworten bewerten und bei Bedarf anpassen. Durch Auto-Prompting müssen Prompt-Templates nicht von Grund auf neu erstellt werden.
    • Evaluierungsphase: Prompt-Templates mit größeren Datensätzen testen, um die Leistung zu messen. Die Leistung kann bewertet werden, indem ein LLM als Bewerter eingesetzt oder ein maßgeschneiderter, codebasierter LLM-Evaluator verwendet wird.
  • Productionization-Phase: Nur Prompt-Templates, die in der Evaluierungsphase den Schwellenwert überschreiten, werden in Produktion gebracht. Die Nutzung in der Produktionsumgebung wird nachverfolgt und überwacht, und Systemnutzungsdaten werden gesammelt, um den Prozess zu verbessern.

Architektur

  • UI/SDK für Prompt-Templates: Verwaltung von Prompt-Templates und Revisionen. Integriert mit GetAPI und Execute API
  • LLM-Modellkatalog: Schnittstelle zu bereitgestellten LLM-Modellen
  • Modelle und Prompts werden in ETCD und UCS gespeichert und in der Offline-Generierungspipeline sowie in der Evaluierungspipeline für Prompt-Templates verwendet.

Erstellung von Prompt-Templates

  • Der Prompt Builder des Prompt-Toolkits generiert Prompts automatisch für Nutzer.
  • Er hilft dabei, fortgeschrittene Prompting-Techniken zu entdecken, die auf bestimmte AI-Anwendungsfälle zugeschnitten sind.
  • Der automatische Prompt Builder auf Basis des internen Langfx-Frameworks, das auf LangChain aufsetzt, folgt diesen Schritten:
    • 1. Integration von Best Practices im Prompt Engineering
    • 2. Bereitstellung detaillierter Anweisungen und einiger Beispiele für Template-Listings, um die Prompt-Erstellung zu unterstützen
    • 3. Nutzung von LLM-Modellen zur Unterstützung der Prompt-Erstellung
  • Erweiterte Prompt-Richtlinien: Der Prompt Builder erzeugt Prompts anhand der folgenden Prinzipien
    • CoT(Chain of Thought)-Prompting: Ermöglicht komplexe Schlussfolgerungen durch Zwischenschritte im Reasoning
    • Auto-CoT: Verwendung des einleitenden Ausdrucks "think step by step". Zur Reduzierung manuellen Aufwands wird der Prompt "Let's think step by step" für das LLM genutzt.
    • Prompt Chaining: Kann in Szenarien mit mehreren Aufgaben oder Transformationen verwendet werden
    • ToT(Tree of Thought): Verallgemeinert Chain-of-Thought-Prompting und fördert das Erkunden von Gedanken, die als Zwischenschritte für allgemeine Problemlösung mit Sprachmodellen dienen können
    • APE(Automatic Prompt Engineering): Framework zur Automatisierung von Anweisungs-Generierung und -Auswahl
    • Multimodales CoT-Prompting: Integriert Text und Bilder in einem zweistufigen Framework. Stufe 1 erzeugt Begründungen auf Basis multimodaler Informationen, Stufe 2 leitet daraus die Antwort ab.
  • Revisionsverwaltung
    • Die Iteration von Prompt-Templates folgt Best Practices aus codebasierten Iterationen.
    • Nutzer können Anweisungen und Modellparameter anpassen, um Antworten zu testen und mit Datensätzen zu prüfen.
    • Für jede Iteration eines Prompt-Templates ist ein Code-Review erforderlich. Nach Freigabe und Merge wird eine neue Revision des Prompt-Templates erstellt.

Evaluierung von Prompt-Templates

Mehrere Komponenten arbeiten zusammen, um die Leistung von Prompt-Templates zu bewerten:

  • Zwei Evaluierungsmechanismen
    • Einsatz eines LLM als Bewerter. Nützlich für Aufgaben, bei denen subjektive Qualität oder sprachliche Nuancen wichtig sind
    • Leistungsbewertung mithilfe von benutzerdefiniertem Code. Nützlich, um bestimmte Aspekte der Leistung zu messen
  • Evaluierungs-Prompt-Template: Nutzerfreundliches Template, das Anweisungen, einfache Beispiele, Metriken, Antwortformat usw. für die Evaluierung bereitstellt
  • Tatsächliches Prompt-Template: Das in der Produktion verwendete Template. Es wird zur Laufzeit hydratisiert und zur Leistungsbewertung verwendet.
  • Optionen für Eingabedatensätze: Gelabelte Golden Datasets oder aus Produktions-Traffic abgeleitete Datensätze
  • Jedes Template wird unter Berücksichtigung spezifischer Anweisungen, des Kontexts sowie zugehöriger Modelle und Parameter evaluiert.

Anwendungsfälle bei Uber

Offline-LLM-Service

Die Batch-Pipeline für die Offline-Generierung mit LLMs erleichtert Batch-Inferenz zur großskaligen Erzeugung von LLM-Antworten:

  • Kann für den Anwendungsfall der Verifizierung von Benutzernamen für Endverbraucher eingesetzt werden
  • In MA Studio müssen lediglich die relevanten Datensätze ausgewählt und eingegeben werden.
  • Prompt-Templates werden dynamisch mit Datensätzen hydratisiert.

Online-LLM-Service

Prompt-Templates enthalten dynamische Platzhalter, die zur Laufzeit durch spezifische Werte ersetzt werden müssen:

  • Derzeit wird mit einer Jinja-basierten Template-Syntax nur die Ersetzung von String-Typen unterstützt.
  • Unterstützung für Fan-out zwischen Prompt, Template und Modell
    • Template: API-Templates enthalten Funktionen, um Payloads aus dem allgemeinen Datenmodell in anbieterspezifische API-Strukturen zu formatieren
    • Prompt und Modell: Ein Prompt ist an ein bestimmtes Modell und Template gebunden. Der Service ruft den Prompt ab und führt ihn aus, indem er die genAI API mit den erforderlichen Modell- und Template-Parametern aufruft.

Erkundung der obigen Funktionen anhand eines Anwendungsfalls für Zusammenfassungen:

  • In einem Szenario, in dem mehrere Agenten ein Support-Ticket (Contact) bearbeiten können, müssen neue Agenten das Ticket durchgehen, um den Kontext zu verstehen, oder den Kunden bitten, das Problem erneut zu erklären.
  • Dies wird gelöst, indem bei der Übergabe zwischen Agenten eine Zusammenfassung bereitgestellt wird.

Monitoring

Monitoring misst die Leistung von produktiven Prompt-Templates, die in der Produktion eingesetzt werden:

  • Eine tägliche Performance-Monitoring-Pipeline führt Leistungsbewertungen auf Produktions-Traffic aus.
  • Überwachung von Metriken wie Latenz, Accuracy und Korrektheit für jede produktive Iteration eines Prompt-Templates
  • Das MES-Dashboard wird täglich mit Performance-Monitoring-Metriken aktualisiert.

Fazit

Ubers Toolkit für Prompt Engineering ist ein umfassendes Framework zur Verbesserung der Interaktion mit und Nutzung von LLMs in verschiedenen Phasen von Entwicklung und Produktion:

  • Unterstützt von der ersten Erkundung von LLM-Funktionen im Gen AI Playground bis hin zur detaillierten Iteration und Erstellung von Prompt-Templates
  • Die Architektur des Toolkits bietet einen systematischen Ansatz für Prompt-Design, der fortgeschrittene Richtlinientechniken und robuste Evaluierungsmethoden integriert
  • Der strukturierte Lebenszyklus von der Entwicklung über den produktiven Einsatz bis zum Monitoring von Prompt-Templates stellt sicher, dass jedes Template gründlich getestet und auf Leistung optimiert wird
  • Künftig ist eine Integration mit RAG für Online-Evaluierung und Evaluierung sowie mit RAG für Offline-Generierung geplant

Noch keine Kommentare.

Noch keine Kommentare.