Generative KI hat eine neue Art der Entwicklung und des Betriebs von KI-Anwendungen eingeführt, die sich von prädiktiver KI unterscheidet. Um eine generative KI-Anwendung zu erstellen, müssen Sie aus einer Vielzahl von Architekturen und Größen auswählen, Daten kuratieren, optimale Prompts entwickeln, Modelle für bestimmte Aufgaben optimieren und Modellausgaben auf realen Daten basieren.
In diesem Dokument wird beschrieben, wie Sie DevOps- und MLOps-Prozesse anpassen können, um generative KI-Anwendungen auf vorhandenen Foundation Models zu entwickeln, bereitzustellen und zu betreiben. Informationen zum Bereitstellen von Predictive AI finden Sie unter MLOps: Continuous Delivery und Pipelines zur Automatisierung im maschinellen Lernen.
Was sind DevOps und MLOps?
DevOps ist eine Softwareentwicklungsmethodik, die Entwicklung und Betrieb verbindet. DevOps fördert die Zusammenarbeit, Automatisierung und kontinuierliche Verbesserung, um den Softwareentwicklungszyklus zu optimieren. Dabei werden Verfahren wie Continuous Integration und Continuous Delivery (CI/CD) eingesetzt.
MLOps basiert auf DevOps-Prinzipien, um die Herausforderungen bei der Entwicklung und dem Betrieb von ML-Systemen (Machine Learning) zu bewältigen. Systeme für maschinelles Lernen verwenden in der Regel vorausschauende KI, um Muster zu erkennen und Vorhersagen zu treffen. Der MLOps-Workflow umfasst Folgendes:
- Datenvalidierung
- Modelltraining
- Modellbewertung und -iteration
- Modellbereitstellung und -einsatz
- Modellmonitoring
Was sind Foundation Models?
Foundation Models sind die Kernkomponente einer generativen KI-Anwendung. Diese Modelle sind große Programme, die Datasets verwenden, um zu lernen und Entscheidungen ohne menschliches Eingreifen zu treffen. Foundation Models werden mit vielen Arten von Daten trainiert, darunter Text, Bilder, Audio und Video. Zu den Foundation Models gehören Large Language Models (LLMs) wie Llama 3.1 und multimodale Modelle wie Gemini.
Im Gegensatz zu prädiktiven KI-Modellen, die für bestimmte Aufgaben mit fokussierten Datasets trainiert werden, werden Foundation Models mit riesigen und vielfältigen Datasets trainiert. In diesem Training lernen Sie, wie Sie Foundation Models verwenden, um Anwendungen für viele verschiedene Anwendungsfälle zu entwickeln. Foundation Models haben neue Eigenschaften (PDF), die es ihnen ermöglichen, ohne explizites Training auf bestimmte Eingaben zu reagieren. Aufgrund dieser emergenten Eigenschaften sind Foundation Models schwierig zu erstellen und zu betreiben. Sie müssen Ihre DevOps- und MLOps-Prozesse anpassen.
Die Entwicklung eines Foundation Model erfordert erhebliche Datenressourcen, spezielle Hardware, erhebliche Investitionen und Fachwissen. Daher bevorzugen viele Unternehmen die Verwendung vorhandener Basismodelle, um die Entwicklung und Bereitstellung ihrer generativen KI-Anwendungen zu vereinfachen.
Lebenszyklus einer generativen KI-Anwendung
Der Lebenszyklus einer generativen KI-Anwendung umfasst die folgenden Phasen:
- Ermittlung:Entwickler und KI-Ingenieure ermitteln, welches Basismodell für ihren Anwendungsfall am besten geeignet ist. Sie berücksichtigen die Stärken, Schwächen und Kosten jedes Modells, um eine fundierte Entscheidung zu treffen.
- Entwicklung und Experimente:Entwickler verwenden Prompt-Engineering, um Eingabeaufforderungen zu erstellen und zu optimieren, damit sie die gewünschte Ausgabe erhalten. Wenn verfügbar, können Few-Shot Learning, parametereffiziente Feinabstimmung (Parameter-Efficient Fine-Tuning, PEFT) und die Verkettung von Modellen das Verhalten von Modellen steuern. Modellverkettung bezieht sich auf die Orchestrierung von Aufrufen mehrerer Modelle in einer bestimmten Reihenfolge, um einen Workflow zu erstellen.
- Bereitstellung:Entwickler müssen im Bereitstellungsprozess viele Artefakte verwalten, darunter Prompt-Vorlagen, Ketten-Definitionen, eingebettete Modelle, Abrufdatenspeicher und Adapter für feinabgestimmte Modelle. Diese Artefakte unterliegen eigenen Governance-Anforderungen und müssen während der Entwicklung und Bereitstellung sorgfältig verwaltet werden. Bei der Bereitstellung von Anwendungen mit generativer KI müssen auch die technischen Möglichkeiten der Zielinfrastruktur berücksichtigt werden, um sicherzustellen, dass die Hardwareanforderungen der Anwendung erfüllt werden.
- Kontinuierliche Überwachung in der Produktion:Administratoren verbessern die Anwendungsleistung und halten Sicherheitsstandards durch verantwortungsbewusste KI-Techniken ein, z. B. durch die Gewährleistung von Fairness, Transparenz und Rechenschaftspflicht bei den Ausgaben des Modells.
- Kontinuierliche Verbesserung:Entwickler passen Foundation Models ständig an, indem sie Prompting-Techniken verwenden, die Modelle durch neuere Versionen ersetzen oder sogar mehrere Modelle kombinieren, um die Leistung, Kosteneffizienz oder Latenz zu verbessern. Das herkömmliche kontinuierliche Training ist weiterhin relevant für Szenarien, in denen wiederkehrende Feinabstimmungen oder die Einbeziehung von Feedbackschleifen erforderlich sind.
Data Engineering-Verfahren spielen in allen Entwicklungsphasen eine wichtige Rolle. Um zuverlässige Ausgaben zu erstellen, benötigen Sie eine faktenbasierte Fundierung (die dafür sorgt, dass die Ausgaben des Modells auf genauen und aktuellen Informationen basieren) und aktuelle Daten aus internen und Unternehmenssystemen. Mit Tuning-Daten können Modelle an bestimmte Aufgaben und Stile angepasst und hartnäckige Fehler behoben werden.
Foundation Model für Ihren Anwendungsfall finden
Da die Entwicklung von Fundierungsmodellen ressourcenintensiv ist, verwenden die meisten Unternehmen lieber ein vorhandenes Fundierungsmodell, das für ihren Anwendungsfall optimiert ist. Es ist schwierig, das richtige Foundation Model zu finden, da es viele gibt. Jedes Modell hat unterschiedliche Architekturen, Größen, Trainingsdatensätze und Lizenzen. Außerdem hat jeder Anwendungsfall eigene Anforderungen, sodass Sie die verfügbaren Modelle in mehreren Dimensionen analysieren müssen.
Berücksichtigen Sie bei der Bewertung von Modellen die folgenden Faktoren:
- Qualität:Führen Sie Test-Prompts aus, um die Ausgabequalität zu bewerten.
- Latenz und Durchsatz:Ermitteln Sie die richtige Latenz und den richtigen Durchsatz für Ihren Anwendungsfall, da diese Faktoren sich direkt auf die Nutzerfreundlichkeit auswirken. Ein Chatbot erfordert beispielsweise eine geringere Latenz als Batch-Verarbeitungsaufgaben zur Zusammenfassung.
- Zeitaufwand für Entwicklung und Wartung:Berücksichtigen Sie den Zeitaufwand für die Erstentwicklung und die laufende Wartung. Die Verwaltung von Modellen erfordert oft weniger Aufwand als die Bereitstellung von öffentlich verfügbaren Modellen.
- Nutzungskosten:Berücksichtigen Sie die Infrastruktur- und Verbrauchskosten, die mit dem Modell verbunden sind.
- Compliance:Bewerten Sie die Fähigkeit des Modells, relevante Vorschriften und Lizenzbedingungen einzuhalten.
Entwickeln und testen
Beim Erstellen von Anwendungen mit generativer KI sind Entwicklung und Tests iterativ und orchestriert. Bei jeder experimentellen Iteration werden die Daten verfeinert, das Foundation Model angepasst und die Ergebnisse ausgewertet. Die Auswertung liefert Feedback, das die nachfolgenden Iterationen in einer kontinuierlichen Feedbackschleife beeinflusst. Wenn die Leistung nicht den Erwartungen entspricht, können Sie mehr Daten erfassen, die Daten ergänzen oder die Daten weiter aufbereiten. Außerdem müssen Sie möglicherweise Prompts optimieren, Techniken zur Feinabstimmung anwenden oder zu einem anderen Foundation Model wechseln. Dieser iterative Optimierungszyklus, der auf Auswertungserkenntnissen basiert, ist für die Optimierung generativer KI-Anwendungen genauso wichtig wie für maschinelles Lernen und prädiktive KI.
Das Paradigma des Foundation Models
Foundation Models unterscheiden sich von Vorhersagemodellen, da sie Mehrzweckmodelle sind. Foundation Models werden nicht für einen einzelnen Zweck mit auf diese Aufgabe zugeschnittenen Daten trainiert, sondern mit umfangreichen Datasets. So können Sie ein Foundation Model für viele verschiedene Anwendungsfälle einsetzen.
Basismodelle reagieren auch sehr empfindlich auf Änderungen an ihren Eingaben. Die Ausgabe des Modells und die Aufgabe, die es ausführt, werden durch die Eingabe des Modells bestimmt. Ein Foundation Model kann Text übersetzen, Videos generieren oder Daten klassifizieren, indem einfach die Eingabe geändert wird. Selbst unbedeutende Änderungen an der Eingabe können sich auf die Fähigkeit des Modells auswirken, die Aufgabe korrekt auszuführen.
Diese Eigenschaften von Foundation Models erfordern andere Entwicklungs- und Betriebsverfahren. Während Modelle im Kontext von Predictive AI autark und aufgabenbezogen sind, sind Foundation Models vielseitig einsetzbar und benötigen ein zusätzliches Element über die Nutzereingabe hinaus. Für generative KI-Modelle ist ein Prompt und insbesondere eine Prompt-Vorlage erforderlich. Eine Prompt-Vorlage besteht aus einer Reihe von Anweisungen und Beispielen sowie Platzhaltern für Nutzereingaben. Die Anwendung kann die Prompt-Vorlage und die dynamischen Daten (z. B. die Nutzereingabe) kombinieren, um einen vollständigen Prompt zu erstellen. Das ist der Text, der als Eingabe an das Foundation Model übergeben wird.
Die aufgefordert Modellkomponente
Das Vorhandensein des Prompts ist ein Unterscheidungsmerkmal von Anwendungen mit generativer KI. Das Modell und der Prompt reichen nicht für die Generierung von Inhalten aus. Generative KI benötigt beides. Die Kombination aus Modell und Prompt wird als Prompt-Modell-Komponente bezeichnet. Die aufgeforderten Modellkomponente ist die kleinste unabhängige Komponente, die für die Erstellung einer generativen KI-Anwendung ausreicht. Der Prompt muss nicht kompliziert sein. Das kann beispielsweise eine einfache Anweisung wie „Übersetze den folgenden Satz aus dem Englischen ins Deutsche“ sein, gefolgt vom zu übersetzenden Satz. Ohne diese Vorab-Anweisung führt ein Foundation Model die erforderliche Übersetzungsaufgabe jedoch nicht aus. Ein Prompt, auch wenn es sich nur um eine einfache Anweisung handelt, ist also zusammen mit der Eingabe erforderlich, damit das Basismodell die von der Anwendung geforderte Aufgabe ausführt.
Die aufgeforderten Modellkomponenten stellen einen wichtigen Unterschied für MLOps-Praktiken bei der Entwicklung generativer KI-Anwendungen dar. Bei der Entwicklung einer generativen KI-Anwendung müssen Tests und Iterationen im Kontext einer aufgeforderten Modellkomponente durchgeführt werden. Der Zyklus für generative KI-Experimente beginnt in der Regel mit dem Testen von Variationen des Prompts. Dabei wird die Formulierung der Anweisungen geändert, zusätzlicher Kontext bereitgestellt oder relevante Beispiele eingefügt. Anschließend wird die Wirkung dieser Änderungen bewertet. Diese Vorgehensweise wird allgemein als Prompt Engineering bezeichnet.
Prompt Engineering umfasst die folgenden iterativen Schritte:
- Prompting:Prompts erstellen und optimieren, um das gewünschte Verhalten eines Fundierungsmodells für einen bestimmten Anwendungsfall zu erzielen.
- Bewertung:Bewerten Sie die Ausgaben des Modells, idealerweise programmatisch, um zu beurteilen, wie gut es die Anweisungen des Prompts verstanden und ausgeführt hat.
Wenn Sie die Bewertungsergebnisse im Blick behalten möchten, können Sie optional die Ergebnisse eines Tests registrieren. Da der Prompt selbst ein Kernelement des Prompt-Engineering-Prozesses ist, wird er zum wichtigsten Artefakt innerhalb der Artefakte, die Teil des Experiments sind.
Wenn Sie jedoch mit einer generativen KI-Anwendung experimentieren möchten, müssen Sie die Artefakttypen identifizieren. Bei der prädiktiven KI sind Daten, Pipelines und Code unterschiedlich. Beim Prompt-Paradigma in generativer KI können Prompts jedoch Kontext, Anweisungen, Beispiele, Schutzmaßnahmen und tatsächliche interne oder externe Daten enthalten, die von einer anderen Quelle abgerufen werden.
Um den Artefakttyp zu bestimmen, müssen Sie erkennen, dass ein Prompt verschiedene Komponenten hat und unterschiedliche Verwaltungsstrategien erfordert. Berücksichtige Folgendes:
- Prompt als Daten:Einige Teile des Prompts fungieren wie Daten. Elemente wie Few-Shot-Beispiele, Wissensdatenbanken und Nutzeranfragen sind im Grunde Datenpunkte. Für diese Komponenten sind datenzentrierte MLOps-Verfahren wie Datenvalidierung, Drifterkennung und Lebenszyklusverwaltung erforderlich.
- Prompt als Code:Andere Komponenten wie Kontext, Promptvorlagen und Guardrails ähneln Code. Diese Komponenten definieren die Struktur und die Regeln des Prompts selbst und erfordern stärker codeorientierte Praktiken wie Genehmigungsprozesse, Code-Versionsverwaltung und Tests.
Wenn Sie MLOps-Verfahren auf generative KI anwenden, benötigen Sie daher Prozesse, mit denen Entwickler Prompts auf einfache Weise speichern, abrufen, verfolgen und ändern können. Diese Prozesse ermöglichen schnelle Iterationen und fundierte Experimente. Oft funktioniert eine Version eines Prompts gut mit einer bestimmten Version des Modells, aber nicht so gut mit einer anderen Version. Wenn Sie die Ergebnisse eines Tests erfassen, müssen Sie den Prompt, die Versionen der Komponenten, die Modellversion, die Messwerte und die Ausgabedaten aufzeichnen.
Modellverkettung und ‑erweiterung
Generative KI-Modelle, insbesondere Large Language Models (LLMs), haben von Natur aus Schwierigkeiten, die Aktualität zu wahren und Halluzinationen zu vermeiden. Das Einbinden neuer Informationen in LLMs erfordert ein teures und datenintensives Vortraining, bevor sie bereitgestellt werden können. Je nach Anwendungsfall reicht es möglicherweise nicht aus, nur ein Modell mit Prompt zu verwenden, um eine bestimmte Generierung durchzuführen. Um dieses Problem zu beheben, können Sie mehrere aufgeforderten Modelle miteinander verbinden sowie Aufrufe externer APIs und Logik, die als Code ausgedrückt wird. Eine Sequenz von aufgeforderten Modellkomponenten, die auf diese Weise miteinander verbunden sind, wird allgemein als Kette bezeichnet.
Das folgende Diagramm zeigt die Komponenten einer Kette und den relativen Entwicklungsprozess.
Minderung von Aktualitäts- und Halluzinationsrisiken
Zwei gängige kettenbasierte Muster, mit denen sich Aktualität und Halluzinationen minimieren lassen, sind Retrieval-Augmented Generation (RAG) (PDF) und Agents.
- RAG erweitert vortrainierte Modelle mit Wissen aus Datenbanken, wodurch kein Vortraining erforderlich ist. RAG ermöglicht die Fundierung und reduziert Halluzinationen, indem aktuelle Fakten direkt in den Generierungsprozess einbezogen werden.
- Agents, die durch die ReAct-Prompting-Technik (PDF) bekannt wurden, verwenden LLMs als Vermittler, die mit verschiedenen Tools interagieren, darunter RAG-Systeme, interne oder externe APIs, benutzerdefinierte Erweiterungen oder sogar andere Agents. KI-Agenten ermöglichen komplexe Anfragen und Echtzeitaktionen, indem sie dynamisch relevante Informationsquellen auswählen und verwenden. Das LLM, das als Agent fungiert, interpretiert die Anfrage des Nutzers, entscheidet, welches Tool verwendet werden soll, und formuliert die Antwort auf Grundlage der abgerufenen Informationen.
Mit RAG und Agents können Sie Multi-Agent-Systeme erstellen, die mit großen Informationsnetzwerken verbunden sind. So lassen sich komplexe Anfragen bearbeiten und Entscheidungen in Echtzeit treffen.
Die Orchestrierung verschiedener Modelle, Logik und APIs ist für generative KI-Anwendungen nicht neu. Empfehlungssysteme kombinieren beispielsweise Modelle für kollaboratives Filtern, inhaltsbasierte Modelle und Geschäftsregeln, um personalisierte Produktempfehlungen für Nutzer zu generieren. Auch bei der Betrugserkennung werden Machine-Learning-Modelle in regelbasierten Systemen und externen Datenquellen integriert, um verdächtige Aktivitäten zu erkennen.
Diese Ketten von generativen KI-Komponenten unterscheiden sich dadurch, dass Sie die Verteilung der Komponenteneingaben nicht im Voraus charakterisieren können. Das macht es viel schwieriger, die einzelnen Komponenten isoliert zu bewerten und zu warten. Die Orchestrierung führt zu einem Paradigmenwechsel bei der Entwicklung von KI-Anwendungen für generative KI.
Mit prädiktiver KI können Sie die einzelnen Modelle und Komponenten isoliert durchlaufen und sie dann in der KI-Anwendung verketten. Bei generativer KI entwickeln Sie während der Integration eine Kette, führen End-to-End-Tests für die Kette durch und iterieren in koordinierter Weise Chaining-Strategien, Prompts, Foundation Models und andere APIs, um ein bestimmtes Ziel zu erreichen. Oft sind kein Feature Engineering, keine Datenerhebung und keine weiteren Modelltrainingszyklen erforderlich, sondern nur Änderungen am Wortlaut der Promptvorlage.
Die Umstellung auf MLOps für generative KI im Gegensatz zu MLOps für prädiktive KI führt zu den folgenden Unterschieden:
- Bewertung:Aufgrund der engen Verknüpfung von Chains ist eine End-to-End-Bewertung erforderlich, um die Gesamtleistung und die Qualität der Ausgabe zu messen. Die Bewertung von Chains ähnelt der Bewertung von Modellen mit Prompts.
- Versionsverwaltung:Sie müssen eine Kette als vollständiges Artefakt verwalten. Sie müssen die Kettenkonfiguration mit einem eigenen Revisionsverlauf für die Analyse, Reproduzierbarkeit und zum Nachvollziehen der Auswirkungen von Änderungen auf die Ausgabe verfolgen. Ihre Logs müssen die Ein- und Ausgaben, die Zwischenstatus der Kette und alle Kettenkonfigurationen enthalten, die bei jeder Ausführung verwendet wurden.
- Kontinuierliches Monitoring:Um Leistungseinbußen, Datenabweichungen oder unerwartetes Verhalten in der Kette zu erkennen, müssen Sie proaktive Überwachungssysteme konfigurieren. Durch die kontinuierliche Überwachung können potenzielle Probleme frühzeitig erkannt werden, um die Qualität der generierten Ausgabe aufrechtzuerhalten.
- Introspektion:Sie müssen die internen Datenflüsse einer Kette (d. h. die Ein- und Ausgaben jeder Komponente) sowie die Ein- und Ausgaben der gesamten Kette untersuchen. Durch die Bereitstellung von Informationen zu den Daten, die durch die Kette fließen, und den resultierenden Inhalten können Entwickler die Quellen von Fehlern, Voreingenommenheit oder unerwünschtem Verhalten ermitteln.
Das folgende Diagramm zeigt, wie Chains, Komponenten für das Auffordern von Modellen und das Optimieren von Modellen in einer generativen KI-Anwendung zusammenwirken, um Aktualität und Halluzinationen zu reduzieren. Daten werden kuratiert, Modelle werden abgestimmt und Ketten werden hinzugefügt, um die Antworten weiter zu optimieren. Nachdem die Ergebnisse ausgewertet wurden, können Entwickler den Test protokollieren und weiter iterieren.
Abstimmung
Wenn Sie einen Anwendungsfall für generative KI entwickeln, der Foundation Models umfasst, kann es schwierig sein, den Anwendungsfall nur mit Prompt-Engineering und Chaining zu lösen, insbesondere bei komplexen Aufgaben. Um die Leistung von Aufgaben zu verbessern, müssen Entwickler das Modell häufig direkt abstimmen. Beim Fine-Tuning können Sie alle Ebenen oder eine Teilmenge von Ebenen (parameteroptimiertes Fine-Tuning) des Modells aktiv ändern, um die Fähigkeit des Modells zu optimieren, eine bestimmte Aufgabe auszuführen. Die gängigsten Methoden zum Optimieren eines Modells sind:
- Überwachte Feinabstimmung:Sie trainieren das Modell auf überwachte Weise und bringen ihm bei, die richtige Ausgabesequenz für eine bestimmte Eingabe vorherzusagen.
- Bestärkendes Lernen durch menschliches Feedback (RLHF): Sie trainieren ein Belohnungsmodell, um vorherzusagen, welche Antwort Menschen bevorzugen würden. Anschließend verwenden Sie dieses Belohnungsmodell, um das LLM während des Optimierungsprozesses in die richtige Richtung zu lenken. Dieser Prozess ähnelt dem, bei dem eine Gruppe von menschlichen Prüfern das Lernen des Modells steuert.
Das folgende Diagramm zeigt, wie das Modell durch das Optimieren im Rahmen des Testzyklus verfeinert wird.
Beim Fine-Tuning in MLOps werden die folgenden Funktionen mit dem Modelltraining geteilt:
- Sie können die Artefakte nachverfolgen, die Teil des Optimierungsjobs sind. Beispiele für Artefakte sind die Eingabedaten oder die Parameter, die zum Optimieren des Modells verwendet werden.
- Die Möglichkeit, die Auswirkungen der Optimierung zu messen. Mit dieser Funktion können Sie das abgestimmte Modell für die spezifischen Aufgaben bewerten, für die es trainiert wurde, und die Ergebnisse mit zuvor abgestimmten oder eingefrorenen Modellen für dieselbe Aufgabe vergleichen.
Kontinuierliches Training und kontinuierliche Feinabstimmung
Im MLOps ist kontinuierliches Training das wiederholte Retraining von ML-Modellen in einer Produktionsumgebung. Kontinuierliches Training trägt dazu bei, dass das Modell auf dem neuesten Stand bleibt und auch dann gut funktioniert, wenn sich die Muster der realen Daten im Laufe der Zeit ändern. Bei generativen KI-Modellen ist die kontinuierliche Optimierung der Modelle aufgrund der hohen Daten- und Rechenkosten oft praktischer als ein erneutes Training.
Der Ansatz für das kontinuierliche Optimieren hängt von Ihrem spezifischen Anwendungsfall und Ihren Zielen ab. Bei relativ statischen Aufgaben wie der Textzusammenfassung sind die Anforderungen an das kontinuierliche Optimieren möglicherweise geringer. Für dynamische Anwendungen wie Chatbots, die eine ständige Anpassung durch Menschen erfordern, ist jedoch eine häufigere Optimierung mit Techniken wie RLHF erforderlich, die auf menschlichem Feedback basieren.
Um die richtige Strategie für die kontinuierliche Optimierung zu ermitteln, müssen Sie die Art Ihres Anwendungsfalls und die Entwicklung der Eingabedaten im Zeitverlauf bewerten. Auch die Kosten sind ein wichtiger Faktor, da die Recheninfrastruktur die Geschwindigkeit und die Kosten für das Tuning erheblich beeinflusst. Grafikprozessoren (GPUs) und Tensor Processing Units (TPUs) sind Hardware, die für das Feinabstimmung erforderlich ist. GPUs sind für ihre parallele Verarbeitung bekannt und eignen sich hervorragend für rechenintensive Arbeitslasten. Sie werden häufig für das Training und die Ausführung komplexer Modelle für maschinelles Lernen eingesetzt. TPUs hingegen wurden von Google speziell für die Beschleunigung von Aufgaben im Bereich des maschinellen Lernens entwickelt. TPUs eignen sich hervorragend für die Verarbeitung von Operationen mit großen Matrizen, die in neuronalen Deep-Learning-Netzwerken üblich sind.
Datennutzung
Bisher wurde das Verhalten von ML-Modellen ausschließlich durch die Trainingsdaten bestimmt. Das gilt zwar immer noch für Foundation Models, das Modellverhalten für generative KI-Anwendungen, die auf Foundation Models basieren, wird jedoch dadurch bestimmt, wie Sie das Modell mit verschiedenen Arten von Eingabedaten anpassen.
Foundation Models werden mit Daten wie den folgenden trainiert:
- Datasets für das Vortraining (z. B. C4, The Pile oder proprietäre Daten)
- Datasets für die Feinabstimmung durch Anweisungen
- Datasets zur Sicherheitsabstimmung
- Daten zu menschlichen Präferenzen
Generative KI-Anwendungen werden an Daten wie die folgenden angepasst:
- Prompts
- Erweiterte oder fundierte Daten (z. B. Websites, Dokumente, PDFs, Datenbanken oder APIs)
- Aufgabenspezifische Daten für PEFT
- Aufgabenspezifische Bewertungen
- Daten zu menschlichen Präferenzen
Der Hauptunterschied zwischen prädiktivem ML und generativer KI in Bezug auf die Datenpraktiken liegt am Anfang des Lebenszyklusprozesses. Bei Predictive ML verbringen Sie viel Zeit mit Data Engineering. Wenn Sie nicht die richtigen Daten haben, können Sie keine Anwendung erstellen. Bei generativer KI beginnen Sie mit einem Foundation Model, einigen Anweisungen und möglicherweise einigen Beispiel-Eingaben (z. B. In-Context Learning). Sie können eine Anwendung mit sehr wenigen Daten prototypisieren und starten.
Die einfache Prototyperstellung bringt jedoch die zusätzliche Herausforderung mit sich, unterschiedliche Daten zu verwalten. Vorhersage-KI basiert auf klar definierten Datasets. Bei generativer KI kann eine einzelne Anwendung verschiedene Datentypen aus völlig unterschiedlichen Datenquellen verwenden, die alle zusammenarbeiten.
Berücksichtigen Sie die folgenden Datentypen:
- Konditionierungs-Prompts:Anweisungen, die dem Basismodell gegeben werden, um seine Ausgabe zu steuern und Grenzen für das zu setzen, was es generieren kann.
- Few-Shot-Beispiele:Eine Möglichkeit, dem Modell anhand von Eingabe-Ausgabe-Paaren zu zeigen, was Sie erreichen möchten. Anhand dieser Beispiele kann das Modell die spezifischen Aufgaben besser verstehen. In vielen Fällen kann dadurch die Leistung gesteigert werden.
- Fundierungs- oder Erweiterungsdaten:Die Daten, die es dem Foundation Model ermöglichen, Antworten für einen bestimmten Kontext zu generieren und Antworten aktuell und relevant zu halten, ohne das gesamte Foundation Model neu zu trainieren. Diese Daten können von externen APIs (z. B. Google Suche) oder internen APIs und Datenquellen stammen.
- Aufgabenspezifische Datasets:Die Datasets, mit denen ein vorhandenes Fundierungsmodell für eine bestimmte Aufgabe optimiert wird, um seine Leistung in diesem speziellen Bereich zu verbessern.
- Vollständige Datasets für das Vortraining:Die umfangreichen Datasets, die zum anfänglichen Trainieren von Foundation Models verwendet werden. Obwohl Anwendungsentwickler möglicherweise keinen Zugriff auf sie oder die Tokenizer haben, beeinflussen die im Modell selbst codierten Informationen die Ausgabe und Leistung der Anwendung.
Diese Vielfalt an Datentypen macht die Datenorganisation, das Tracking und die Lebenszyklusverwaltung komplexer. Eine RAG-basierte Anwendung kann beispielsweise Nutzeranfragen umschreiben, dynamisch relevante Beispiele aus einer kuratierten Sammlung von Beispielen abrufen, eine Vektordatenbank abfragen und die Informationen mit einer Promptvorlage kombinieren. Für eine RAG-basierte Anwendung müssen Sie mehrere Datentypen verwalten, darunter Nutzeranfragen, Vektordatenbanken mit kuratierten Few-Shot-Beispielen und Unternehmensinformationen sowie Prompt-Vorlagen.
Jeder Datentyp muss sorgfältig organisiert und verwaltet werden. Für eine Vektordatenbank müssen beispielsweise Daten in Einbettungen verarbeitet, Chunking-Strategien optimiert und dafür gesorgt werden, dass nur relevante Informationen verfügbar sind. Für eine Promptvorlage sind Versionsverwaltung und Tracking erforderlich und Nutzeranfragen müssen umgeschrieben werden. MLOps- und DevOps-Best Practices können bei diesen Aufgaben helfen. Bei der vorausschauenden KI erstellen Sie Datenpipelines zum Extrahieren, Transformieren und Laden. Bei generativer KI erstellen Sie Pipelines, um verschiedene Datentypen auf versionierbare, nachvollziehbare und reproduzierbare Weise zu verwalten, weiterzuentwickeln, anzupassen und zu integrieren.
Durch die Feinabstimmung von Foundation Models kann die Leistung generativer KI-Anwendungen gesteigert werden, aber die Modelle benötigen Daten. Sie können diese Daten abrufen, indem Sie Ihre Anwendung starten und Daten aus der Praxis oder synthetische Daten oder eine Mischung aus beidem erfassen. Die Verwendung großer Modelle zum Generieren synthetischer Daten wird immer beliebter, da diese Methode den Bereitstellungsprozess beschleunigt. Es ist jedoch weiterhin wichtig, dass Menschen die Ergebnisse zur Qualitätssicherung überprüfen. Im Folgenden finden Sie Beispiele dafür, wie Sie große Modelle für Data Engineering verwenden können:
- Generierung synthetischer Daten:Bei diesem Prozess werden künstliche Daten erstellt, die in Bezug auf ihre Merkmale und statistischen Eigenschaften stark an Realdaten angelehnt sind. Diese Aufgabe wird häufig von großen und leistungsstarken Modellen erledigt. Synthetische Daten dienen als zusätzliche Trainingsdaten für generative KI, damit sie Muster und Beziehungen auch dann erkennen kann, wenn nur wenige gelabelte reale Daten verfügbar sind.
- Korrektur synthetischer Daten:Bei dieser Methode werden Fehler und Inkonsistenzen in vorhandenen gelabelten Datasets erkannt und korrigiert. Durch den Einsatz leistungsstärkerer Modelle kann generative KI potenzielle Fehler bei der Kennzeichnung erkennen und Korrekturen vorschlagen, um die Qualität und Zuverlässigkeit der Trainingsdaten zu verbessern.
- Anreicherung mit synthetischen Daten:Bei diesem Ansatz geht es nicht nur darum, neue Daten zu generieren. Bei der Augmentierung mit synthetischen Daten werden vorhandene Daten intelligent manipuliert, um vielfältige Variationen zu erstellen, wobei wichtige Merkmale und Beziehungen erhalten bleiben. Generative KI kann beim Training mit einer größeren Bandbreite an Szenarien konfrontiert werden als prädiktive KI. Das führt zu einer besseren Verallgemeinerung und der Fähigkeit, differenzierte und relevante Ausgaben zu generieren.
Im Gegensatz zu prädiktiver KI ist es schwierig, generative KI zu bewerten. Sie kennen beispielsweise möglicherweise nicht die Verteilung der Trainingsdaten der Foundation Models. Sie müssen ein benutzerdefiniertes Bewertungs-Dataset erstellen, das alle Ihre Anwendungsfälle abdeckt, einschließlich der wesentlichen, durchschnittlichen und Grenzfälle. Ähnlich wie bei Fine-Tuning-Daten können Sie leistungsstarke LLMs verwenden, um Daten zum Erstellen robuster Evaluierungs-Datasets zu generieren, zu kuratieren und zu erweitern.
Bewertung
Die Bewertung ist eine zentrale Aktivität bei der Entwicklung von Anwendungen mit generativer KI. Die Bewertung kann unterschiedlich stark automatisiert sein, von vollständig manuell bis vollständig automatisiert.
Beim Prototyping eines Projekts ist die Bewertung oft ein manueller Prozess. Entwickler überprüfen die Ausgaben des Modells, um ein qualitatives Gefühl für die Leistung des Modells zu bekommen. Wenn das Projekt jedoch reift und die Anzahl der Testläufe zunimmt, wird die manuelle Bewertung zu einem Engpass.
Die Automatisierung der Auswertung bietet zwei große Vorteile: Sie können schneller vorgehen und die Auswertungen werden zuverlässiger. Außerdem wird die menschliche Subjektivität aus der Gleichung entfernt, was dazu beiträgt, dass die Ergebnisse reproduzierbar sind.
Die Automatisierung der Bewertung von Anwendungen für generative KI birgt jedoch eigene Herausforderungen. Sie könnten beispielsweise Folgendes versuchen:
- Sowohl die Eingaben (Prompts) als auch die Ausgaben können sehr komplex sein. Ein einzelner Prompt kann mehrere Anweisungen und Einschränkungen enthalten, die das Modell verarbeiten muss. Die Ausgaben selbst sind oft hochdimensional, z. B. ein generiertes Bild oder ein Textblock. Die Qualität dieser Ausgaben in einem einfachen Messwert zu erfassen, ist schwierig. Einige etablierte Messwerte wie BLEU für Übersetzungen und ROUGE für Zusammenfassungen sind nicht immer ausreichend. Daher können Sie benutzerdefinierte Bewertungsmethoden oder ein anderes Fundierungsmodell verwenden, um Ihr System zu bewerten. Sie könnten beispielsweise ein großes Sprachmodell wie AutoSxS auffordern, die Qualität generierter Texte anhand verschiedener Dimensionen zu bewerten.
- Viele Bewertungsmesswerte für generative KI sind subjektiv. Was einen Output besser als einen anderen macht, kann Ansichtssache sein. Ihre automatisierte Bewertung muss mit der manuellen Bewertung übereinstimmen, da Ihre Messwerte ein zuverlässiger Proxy für die Meinung der Nutzer sein sollen. Damit die Ergebnisse von Tests vergleichbar sind, müssen Sie Ihren Bewertungsansatz und Ihre Messwerte früh im Entwicklungsprozess festlegen.
- Es fehlen Ground Truth-Daten, insbesondere in der Anfangsphase eines Projekts. Eine Möglichkeit besteht darin, synthetische Daten als temporäre Ground Truth zu generieren, die Sie im Laufe der Zeit mit menschlichem Feedback verfeinern können.
- Eine umfassende Bewertung ist unerlässlich, um generative KI-Anwendungen vor Adversarial Attacks zu schützen. Böswillige Akteure können Prompts erstellen, um zu versuchen, vertrauliche Informationen zu extrahieren oder die Ausgaben des Modells zu manipulieren. Evaluierungssets müssen diese Angriffsvektoren durch Techniken wie Prompt-Fuzzing (dem Modell werden zufällige Variationen von Prompts zugeführt) und Tests auf Informationslecks berücksichtigen.
So bewerten Sie generative KI-Anwendungen:
- Automatisieren Sie den Bewertungsprozess, um für Geschwindigkeit, Skalierbarkeit und Reproduzierbarkeit zu sorgen. Automatisierung kann als Ersatz für menschliche Entscheidungen betrachtet werden.
- Passen Sie den Bewertungsprozess nach Bedarf an Ihre Anwendungsfälle an.
- Um die Vergleichbarkeit zu gewährleisten, sollten Sie den Bewertungsansatz, die Messwerte und die Ground-Truth-Daten so früh wie möglich in der Entwicklungsphase stabilisieren.
- Synthetische Ground-Truth-Daten generieren, um den Mangel an echten Ground-Truth-Daten auszugleichen.
- Nehmen Sie Testläufe mit Adversarial Prompting in das Evaluierungsset auf, um die Zuverlässigkeit des Systems selbst bei diesen Angriffen zu testen.
Bereitstellen
Generative KI-Anwendungen auf Produktionsniveau sind komplexe Systeme mit vielen interagierenden Komponenten. Wenn Sie eine generative KI-Anwendung in der Produktion bereitstellen möchten, müssen Sie diese Komponenten mit den vorherigen Phasen der Entwicklung generativer KI-Anwendungen verwalten und koordinieren. Eine einzelne Anwendung kann beispielsweise mehrere LLMs zusammen mit einer Datenbank verwenden, die alle von einer dynamischen Datenpipeline gespeist werden. Für jede dieser Komponenten kann ein eigener Bereitstellungsprozess erforderlich sein.
Die Bereitstellung von generativen KI-Anwendungen ähnelt der Bereitstellung anderer komplexer Softwaresysteme, da Sie Systemkomponenten wie Datenbanken und Python-Anwendungen bereitstellen müssen. Wir empfehlen, Standardverfahren für die Softwareentwicklung wie Versionsverwaltung und CI/CD zu verwenden.
Versionsverwaltung
Tests mit generativer KI sind ein iterativer Prozess, der wiederholte Zyklen aus Entwicklung, Bewertung und Änderung umfasst. Um einen strukturierten und überschaubaren Ansatz zu gewährleisten, müssen Sie für alle modifizierbaren Komponenten eine strenge Versionsverwaltung implementieren. Diese Komponenten sind:
- Prompt-Vorlagen:Wenn Sie keine speziellen Lösungen für die Prompt-Verwaltung verwenden, sollten Sie Versionskontrolltools einsetzen, um Versionen zu verfolgen.
- Kettendefinitionen:Verwenden Sie Versionskontrolltools, um Versionen des Codes zu verfolgen, der die Kette definiert (einschließlich API-Integrationen, Datenbankaufrufen und Funktionen).
- Externe Datasets:In RAG-Systemen spielen externe Datasets eine wichtige Rolle. Verwenden Sie vorhandene Datenanalyselösungen wie BigQuery, AlloyDB for PostgreSQL und Vertex AI Feature Store, um diese Änderungen und Versionen dieser Datasets zu verfolgen.
- Adaptermodelle:Techniken wie LoRA-Abstimmung für Adaptermodelle werden ständig weiterentwickelt. Verwenden Sie etablierte Datenspeicherlösungen (z. B. Cloud Storage), um diese Assets effektiv zu verwalten und zu versionieren.
Continuous Integration
In einem Continuous-Integration-Framework wird jede Codeänderung vor dem Zusammenführen automatisch getestet, um Probleme frühzeitig zu erkennen. Unit- und Integrationstests sind wichtig für Qualität und Zuverlässigkeit. Bei Einheitentests geht es um einzelne Codeabschnitte, während bei Integrationstests überprüft wird, ob verschiedene Komponenten zusammenarbeiten.
Die Implementierung eines Systems für die kontinuierliche Integration hilft bei Folgendem:
- Zuverlässige, hochwertige Ausgaben sicherstellen:Durch strenge Tests wird das Vertrauen in die Leistung und Konsistenz des Systems gestärkt.
- Fehler frühzeitig erkennen:Durch Tests können Probleme erkannt werden, bevor sie zu größeren Problemen führen. Wenn Fehler frühzeitig erkannt werden, wird das System robuster und widerstandsfähiger gegenüber Grenz- und unerwarteten Eingaben.
- Niedrigere Wartungskosten:Gut dokumentierte Testläufe vereinfachen die Fehlerbehebung und ermöglichen reibungslose Änderungen in der Zukunft, wodurch der Wartungsaufwand insgesamt sinkt.
Diese Vorteile gelten für generative KI-Anwendungen. Wenden Sie die kontinuierliche Integration auf alle Elemente des Systems an, einschließlich der Prompt-Vorlagen, der Kette, der Verkettungslogik, aller eingebetteten Modelle und der Abrufsysteme.
Die Anwendung von Continuous Integration auf generative KI bringt jedoch die folgenden Herausforderungen mit sich:
- Schwierigkeiten beim Generieren umfassender Testläufe:Die komplexen und offenen Ausgaben generativer KI machen es schwierig, einen umfassenden Satz von Testläufen zu definieren und zu erstellen, der alle Möglichkeiten abdeckt.
- Probleme mit der Reproduzierbarkeit:Deterministische, reproduzierbare Ergebnisse zu erzielen, ist schwierig, da generative Modelle oft eine intrinsische Zufälligkeit und Variabilität in ihren Ausgaben aufweisen, selbst bei identischen Eingaben. Durch diese Zufälligkeit ist es schwieriger, das erwartete Verhalten konsistent zu testen.
Diese Herausforderungen hängen eng mit der allgemeinen Frage zusammen, wie generative KI-Anwendungen bewertet werden können. Viele der Bewertungstechniken, die für die Entwicklung von CI-Systemen für generative KI verwendet werden, sind auch für die Entwicklung von CI-Systemen für generative KI anwendbar.
Continuous Delivery
Nachdem der Code zusammengeführt wurde, beginnt ein Continuous-Delivery-Prozess, um den erstellten und getesteten Code durch Umgebungen zu verschieben, die der Produktion ähneln. Dort wird er vor der endgültigen Bereitstellung weiter getestet.
Wie unter Entwickeln und testen beschrieben, sind Chain-Elemente eine der Hauptkomponenten für die Bereitstellung, da sie die generative KI-Anwendung bilden. Der Bereitstellungsprozess für die generative KI-Anwendung, die die Kette enthält, kann je nach Latenzanforderungen und je nachdem, ob der Anwendungsfall Batch- oder Online-Verarbeitung ist, variieren.
Für Batch-Anwendungsfälle müssen Sie einen Batchprozess bereitstellen, der in der Produktion nach einem Zeitplan ausgeführt wird. Beim Bereitstellungsprozess wird die gesamte Pipeline in einer Umgebung getestet, die der Produktionsumgebung ähnelt, bevor die Bereitstellung erfolgt. Im Rahmen des Testprozesses können Entwickler bestimmte Anforderungen an den Durchsatz des Batchprozesses selbst festlegen und prüfen, ob alle Komponenten der Anwendung ordnungsgemäß funktionieren. Entwickler können beispielsweise Berechtigungen, Infrastruktur und Codeabhängigkeiten prüfen.
Für Online-Anwendungsfälle müssen Sie eine API bereitstellen. Das ist die Anwendung, die die Kette enthält und in der Lage ist, Nutzern mit niedriger Latenz zu antworten. Ihr Bereitstellungsprozess umfasst das Testen der API in der Integration in einer Umgebung, die der Produktionsumgebung ähnelt. Mit diesen Tests wird geprüft, ob alle Komponenten der Anwendung richtig funktionieren. Sie können nicht funktionale Anforderungen (z. B. Skalierbarkeit, Zuverlässigkeit und Leistung) durch eine Reihe von Tests, einschließlich Lasttests, überprüfen.
Checkliste für die Bereitstellung
In der folgenden Liste werden die Schritte beschrieben, die Sie ausführen müssen, wenn Sie eine Anwendung mit generativer KI mit einem verwalteten Dienst wie Vertex AI bereitstellen:
- Versionsverwaltung konfigurieren:Implementieren Sie Verfahren zur Versionsverwaltung für die Bereitstellung von Modellen. Mit der Versionskontrolle können Sie bei Bedarf ein Rollback zu früheren Versionen durchführen und Änderungen am Modell oder an der Bereitstellungskonfiguration nachverfolgen.
- Modell optimieren:Führen Sie Aufgaben zur Modelloptimierung (Destillation, Quantisierung und Beschneidung) aus, bevor Sie das Modell verpacken oder bereitstellen.
- Modell in einen Container packen:Packen Sie das trainierte Modell in einen Container.
- Hardwareanforderungen für das Ziel definieren:Achten Sie darauf, dass die Zielbereitstellungsumgebung die Anforderungen für eine optimale Leistung des Modells erfüllt, z. B. GPUs, TPUs und andere spezielle Hardwarebeschleuniger.
- Modellendpunkt definieren:Geben Sie den Modellcontainer, das Eingabeformat, das Ausgabeformat und alle zusätzlichen Konfigurationsparameter an.
- Ressourcen zuweisen:Weisen Sie dem Endpunkt die entsprechenden Rechenressourcen basierend auf dem erwarteten Traffic und den Leistungsanforderungen zu.
- Zugriffssteuerung konfigurieren:Richten Sie Mechanismen zur Zugriffssteuerung ein, um den Zugriff auf den Endpunkt basierend auf Authentifizierungs- und Autorisierungsrichtlinien einzuschränken. Die Zugriffssteuerung trägt dazu bei, dass nur autorisierte Nutzer oder Dienste mit dem bereitgestellten Modell interagieren können.
- Modellendpunkt erstellen:Erstellen Sie einen Endpunkt, um das Modell als REST API-Dienst bereitzustellen. Über den Endpunkt können Clients Anfragen an den Endpunkt senden und Antworten vom Modell empfangen.
- Monitoring und Logging konfigurieren:Richten Sie Monitoring- und Loggingsysteme ein, um die Leistung, Ressourcennutzung und Fehlerlogs des Endpunkts zu verfolgen.
- Benutzerdefinierte Integrationen bereitstellen:Integrieren Sie das Modell mithilfe des SDK oder der APIs des Modells in benutzerdefinierte Anwendungen oder Dienste.
- Echtzeitanwendungen bereitstellen:Erstellen Sie eine Streamingpipeline, die Daten verarbeitet und in Echtzeit Antworten generiert.
Logging und Monitoring
Für das Monitoring von generativen KI-Anwendungen und ihren Komponenten sind Techniken erforderlich, die Sie zu den Monitoring-Techniken hinzufügen können, die Sie für herkömmliche MLOps verwenden. Sie müssen Ihre Anwendung durchgängig protokollieren und überwachen. Dazu gehört, die gesamte Ein- und Ausgabe Ihrer Anwendung und jeder Komponente zu protokollieren und zu überwachen.
Eingaben in die Anwendung lösen die Ausführung mehrerer Komponenten aus, um die Ausgaben zu generieren. Wenn die Ausgabe für eine bestimmte Eingabe sachlich ungenau ist, müssen Sie ermitteln, welche der Komponenten nicht gut funktioniert hat. Sie benötigen die Herkunft in Ihren Protokollen für alle ausgeführten Komponenten. Außerdem müssen Sie die Ein- und Ausgaben sowie die Komponenten den zusätzlichen Artefakten und Parametern zuordnen, von denen sie abhängen, damit Sie die Ein- und Ausgaben analysieren können.
Priorisieren Sie beim Anwenden von Monitoring das Monitoring auf Anwendungsebene. Wenn das Monitoring auf Anwendungsebene zeigt, dass die Anwendung gut funktioniert, bedeutet das, dass auch alle Komponenten gut funktionieren. Wenden Sie anschließend die Überwachung auf die aufgeforderten Modellkomponenten an, um detailliertere Ergebnisse und ein besseres Verständnis Ihrer Anwendung zu erhalten.
Wie beim herkömmlichen Monitoring in MLOps müssen Sie einen Benachrichtigungsprozess bereitstellen, um Anwendungsinhaber zu benachrichtigen, wenn Drift, Abweichungen oder Leistungsabfall erkannt werden. Um Benachrichtigungen einzurichten, müssen Sie Benachrichtigungs- und Benachrichtigungstools in Ihren Überwachungsprozess einbinden.
In den folgenden Abschnitten werden Aufgaben zum Überwachen von Abweichungen und Drift sowie Aufgaben zur kontinuierlichen Auswertung beschrieben. Darüber hinaus umfasst das Monitoring in MLOps die Überwachung der Messwerte für den allgemeinen Systemzustand, z. B. Ressourcennutzung und Latenz. Diese Effizienzmesswerte gelten auch für generative KI-Anwendungen.
Abweichungserkennung
Die Erkennung von Abweichungen in herkömmlichen ML-Systemen bezieht sich auf Abweichungen zwischen Training und Bereitstellung, die auftreten, wenn die Verteilung der Featuredaten in der Produktion von der Verteilung der Featuredaten abweicht, die während des Modelltrainings beobachtet wurde. Bei generativen KI-Anwendungen, die vortrainierte Modelle in Komponenten verwenden, die verkettet sind, um die Ausgabe zu erzeugen, müssen Sie auch die Abweichung messen. Sie können die Abweichung messen, indem Sie die Verteilung der Eingabedaten, die Sie zum Bewerten Ihrer Anwendung verwendet haben, mit der Verteilung der Eingaben für Ihre Anwendung in der Produktion vergleichen. Wenn sich die beiden Verteilungen voneinander entfernen, müssen Sie das genauer untersuchen. Sie können dasselbe Verfahren auch auf die Ausgabedaten anwenden.
Drifterkennung
Wie bei der Abweichungserkennung wird bei der Drifterkennung nach statistischen Unterschieden zwischen zwei Datasets gesucht. Anstatt Evaluations- und Bereitstellungseingaben zu vergleichen, wird bei der Drift nach Änderungen bei den Eingabedaten gesucht. Mit Drift können Sie die Eingaben und damit das Verhalten Ihrer Nutzer im Zeitverlauf analysieren.
Da die Eingabe für die Anwendung in der Regel Text ist, können Sie verschiedene Methoden verwenden, um Abweichungen und Drift zu messen. Im Allgemeinen versuchen diese Methoden, signifikante Änderungen in den Produktionsdaten zu erkennen, sowohl in Bezug auf den Text (z. B. Größe der Eingabe) als auch auf das Konzept (z. B. Themen in der Eingabe), im Vergleich zum Evaluierungsdatensatz. Bei all diesen Methoden wird nach Änderungen gesucht, die darauf hindeuten könnten, dass die Anwendung nicht darauf vorbereitet ist, die Art der neuen Daten, die jetzt eingehen, erfolgreich zu verarbeiten. Einige gängige Methoden:
- Einbettungen und Distanzen berechnen
- Textlänge und Anzahl der Tokens zählen
- Vokabeländerungen, neue Konzepte und Intents, Prompts und Themen in Datasets nachverfolgen
- Dazu werden statistische Ansätze wie Least-Squares Density Difference (PDF), Maximum Mean Discrepancy (MMD), Learned Kernel MMD (PDF) oder Context-Aware MMD verwendet.
Da Anwendungsfälle für generative KI so vielfältig sind, benötigen Sie möglicherweise zusätzliche benutzerdefinierte Messwerte, mit denen sich unerwartete Änderungen in Ihren Daten besser erfassen lassen.
Kontinuierliche Evaluierung
Die kontinuierliche Evaluierung ist ein weiterer gängiger Ansatz für die Überwachung generativer KI-Anwendungen. In einem System zur kontinuierlichen Evaluierung erfassen Sie die Produktionsausgabe des Modells und führen damit eine Evaluierungsaufgabe aus, um die Leistung des Modells im Zeitverlauf zu verfolgen. Sie können direktes Nutzerfeedback wie Bewertungen erfassen, das sofort Aufschluss über die wahrgenommene Qualität der Ausgaben gibt. Gleichzeitig können Sie die von Modellen generierten Antworten mit etablierten Ground Truths vergleichen, um die Leistung genauer zu analysieren. Sie können Ground Truth durch menschliche Bewertung oder als Ergebnis eines Ensemble-KI-Modellansatzes erfassen, um Bewertungsmesswerte zu generieren. So können Sie sehen, wie sich Ihre Bewertungsmesswerte seit der Entwicklung Ihres Modells bis heute verändert haben.
Regulieren
Im Kontext von MLOps umfasst Governance alle Praktiken und Richtlinien, die Kontrolle, Verantwortlichkeit und Transparenz bei der Entwicklung, Bereitstellung und laufenden Verwaltung von Modellen für maschinelles Lernen schaffen, einschließlich aller Aktivitäten im Zusammenhang mit dem Code-, Daten- und Modelllebenszyklus.
Bei Anwendungen für vorausschauende KI liegt der Schwerpunkt der Herkunft auf der Nachverfolgung und dem Verständnis des gesamten Lebenszyklus eines Modells für maschinelles Lernen. Bei generativer KI geht die Herkunft über das Modellartefakt hinaus und erstreckt sich auf alle Komponenten in der Kette. Das Tracking umfasst die Daten, Modelle, Modellherkunft, den Code sowie die relativen Bewertungsdaten und ‑messwerte. Mit der Lineage-Nachverfolgung können Sie Ihre Modelle prüfen, Fehler beheben und verbessern.
Zusammen mit diesen neuen Praktiken können Sie den Datenlebenszyklus und die Lebenszyklen der generativen KI-Komponenten mit standardmäßigen MLOps- und DevOps-Praktiken verwalten.
Nächste Schritte
Generative AI-Anwendung mit Vertex AI bereitstellen
Autoren: Anant Nawalgaria, Christos Aniftos, Elia Secchi, Gabriela Hernandez Larios, Mike Styer und Onofrio Petragallo