AWS Germany – Amazon Web Services in Deutschland

Sichere Bildgenerierung und Stable-Diffusion-Modelle mit Amazon KI Inhaltsmoderation Services

Original von Lana Zhang, James Wu, Kevin Carlson und John Rouse, übersetzt durch Marco Buss

Die generative KI-Technologie verbessert sich rasant und es ist jetzt möglich, Text und Bilder auf der Grundlage von Texteingaben zu generieren. Stable Diffusion[EN, Extern] ist ein Text-zu-Bild-Modell, mit dem Sie fotorealistische Anwendungen erstellen können. Mithilfe von Stable-Diffusion-Modellen und Amazon SageMaker JumpStart können Sie ganz einfach Bilder aus Text generieren.

Im Folgenden finden Sie Beispiele für Eingabetexte und die entsprechenden Ausgabebilder, die von Stable Diffusion generiert wurden. Die Eingaben sind „A boxer dancing on a table, (Ein Boxer, der auf einem Tisch tanzt)“, „A lady on the beach in swimming wear, water color style (Eine Dame am Strand in Badekleidung, Aquarellstil)“ und „A dog in a suit. (Ein Hund im Anzug)“.

Generative KI-Lösungen sind zwar leistungsstark und nützlich, können aber auch anfällig für Manipulation und Missbrauch sein. Kunden, die sie für die Bildgenerierung verwenden, müssen der Moderation von Inhalten Priorität einräumen, um ihre Nutzer, Plattform und Marke zu schützen. Sie müssen strenge Moderationspraktiken implementieren, um ein sicheres und positives Nutzererlebnis zu schaffen und ihren Ruf als Plattform bzw. Marke zu schützen.

In diesem Beitrag untersuchen wir die Nutzung der AWS-KI-Services Amazon Rekognition und Amazon Comprehend zusammen mit anderen Techniken zur effektiven Moderation von Inhalten, die mit dem Modell Stable Diffusion generiert wurden. Die Überprüfung erfolgt dabei nahezu in Echtzeit. Informationen zum Starten und Generieren von Bildern aus Text mithilfe eines Stable-Diffusion-Models auf AWS finden Sie unter Generieren von Bildern aus Text mit dem Stable-Diffusion-Model und Amazon SageMaker JumpStart [EN].

Überblick über die Lösung

Amazon Rekognition und Amazon Comprehend sind verwaltete KI-Services, die vortrainierte und anpassbare ML-Modelle über eine API-Schnittstelle bereitstellen, ohne Fachwissen im Bereich maschinelles Lernen (ML) vorauszusetzen. Amazon Rekognition Content Moderation automatisiert und optimiert die Bild- und Videomoderation. Amazon Comprehend verwendet ML, um Text zu analysieren und wertvolle Erkenntnisse und Zusammenhänge aufzudecken.

Die folgende Referenzarchitektur veranschaulicht die Erstellung einer RESTful-Proxy-API zur Moderation von Bildern, die mit Stable Diffusion, einem Text-zu-Bild-Modell, generiert wurden. In dieser Lösung haben wir mithilfe von SageMaker JumpStart [EN] ein Stable-Diffusion-Model (v2-1-Basis) eingeführt und bereitgestellt. Die Lösung verwendet negative Eingabeaufforderungen und Textmoderationslösungen wie Amazon Comprehend, sowie einen regelbasierten Filter zur Moderation der Eingabeaufforderungen. Außerdem wird Amazon Rekognition verwendet, um die generierten Bilder zu moderieren.Wenn unsichere Informationen erkannt werden, sendet die RESTful-API das generierte Bild und eine Moderationswarnungen an den Client zurück.

Die Schritte im Workflow:

  1. Der Benutzer sendet eine Aufforderung, ein Bild zu generieren.
  2. Eine AWS Lambda Function koordiniert die Bildgenerierung und Moderation mithilfe von Amazon Comprehend, SageMaker JumpStart und Amazon Rekognition:
    1. Wenden Sie eine regelbasierte Bedingung auf Eingabeaufforderungen in Lambda-Funktionen an und erzwingen Sie so die Inhaltsmoderation mit der Erkennung verbotener Wörter.
    2. Verwenden Sie den benutzerdefinierten Amazon Comprehend-Klassifikator, um den Aufforderungstext für die Toxizitätsklassifizierung zu analysieren.
    3. Senden Sie die Aufforderung über den SageMaker-Endpunkt an das Stable-Diffusions-Modell und übergeben Sie sowohl die Eingabeaufforderungen als Benutzereingabe als auch negative Eingabeaufforderungen aus einer vordefinierten Liste.
    4. Senden Sie die vom SageMaker-Endpunkt zurückgegebenen Bildbytes zur Bildmoderation an die Amazon Rekognition DetectModerationLabel API.
    5. Konstruieren Sie eine Antwortnachricht, die Bildbytes und Warnungen enthält, falls in den vorherigen Schritten unangemessene Informationen in der Aufforderung oder dem generativen Bild gefunden wurden.
  3. Senden Sie die Antwort zurück an den Client.

Der folgende Screenshot zeigt eine Beispiel-App, die mit der beschriebenen Architektur erstellt wurde. Die Weboberfläche sendet Benutzereingabeaufforderungen an die RESTful-Proxy-API und zeigt das Bild und alle Moderationswarnungen an, die in der Antwort enthalten sind. Die Demo-App verwischt das tatsächlich generierte Bild, wenn es unsichere Inhalte enthält. Wir haben die App mit der Beispielaufforderung „A sexy Lady“ getestet.

Sie können eine ausgefeiltere Logik für eine bessere Benutzererfahrung implementieren. Beispielsweise, das Ablehnen der Anfrage, wenn die Eingabeaufforderungen unsichere Informationen enthalten. Zudem könnten Sie eine Wiederholungsrichtlinie einrichten, um das Bild neu zu generieren, wenn die Aufforderung sicher ist, die Ausgabe jedoch unsicher ist.

Vordefinition einer negativen Eingabeaufforderungen-Liste

Stable Diffusion unterstützt negative Eingabeaufforderungen, sodass Sie angeben können, welche Eingabeaufforderungen bei der Bilderzeugung vermieden werden sollen. Das Erstellen einer vordefinierten Liste negativer Prompts ist ein praktischer und proaktiver Ansatz, um zu verhindern, dass das Modell unsichere Bilder erzeugt.

Durch die Aufnahme von Aufforderungen wie „nackt“, „sexy“ und „Nacktheit“, von denen bekannt ist, dass sie zu unangemessenen oder anstößigen Bildern führen, kann das Model sie erkennen und vermeiden. Dadurch kann das Risiko der Generierung unsicherer Inhalte verringert werden.

Die Implementierung kann in der Lambda-Funktion verwaltet werden, wenn der SageMaker-Endpunkt aufgerufen wird, um die Inferenz des Stable-Diffusions-Modells auszuführen. Es werden, sowohl die Eingabeaufforderungen von Benutzereingaben als auch die negativen Eingabeaufforderungen aus einer vordefinierten Liste übergeben.

Dieser Ansatz ist zwar effektiv, könnte sich jedoch auf die Ergebnisse des Stable-Diffusions-Modells auswirken und dessen Funktionalität einschränken. Es ist wichtig, ihn in Kombination mit weiteren Ansätzen wie der Text- und Bildmoderation mithilfe von Amazon Comprehend und Amazon Rekognition als eine der Moderationstechniken zu betrachten.

Eingabeaufforderungen moderieren

Ein gängiger Ansatz zur Textmoderation besteht darin, mithilfe einer regelbasierten Suchmethode zu ermitteln, ob der eingegebene Text verbotene Wörter oder Ausdrücke aus einer vordefinierten Liste enthält. Diese Methode ist relativ einfach zu implementieren, hat nur minimale Auswirkungen auf die Leistung und nur geringen Kosten. Der größte Nachteil dieses Ansatzes besteht jedoch darin, dass er sich darauf beschränkt, nur Wörter zu erkennen, die in der vordefinierten Liste enthalten sind. Somit können keine neuen oder modifizierten Varianten verbotener Wörter erkannt werden, die nicht in der vordefinierten Liste enthalten sind. Benutzer können auch versuchen, die Regeln zu umgehen, indem sie Buchstaben durch alternative Schreibweisen oder Sonderzeichen ersetzen.

Um die Einschränkungen einer regelbasierten Textmoderation zu umgehen, haben viele Lösungen einen hybriden Ansatz gewählt, der eine regelbasierte Stichwortsuche mit einer ML-basierten Toxizitätserkennung kombiniert. Die Kombination beider Ansätze ermöglicht eine umfassendere und effektivere Lösung für die Textmoderation, die in der Lage ist, ein breiteres Spektrum an unangemessenen Inhalten zu erkennen und die Genauigkeit der Moderationsergebnisse verbessert.

Bei dieser Lösung verwenden wir einen benutzerdefinierten Amazon Comprehend Classifier, um ein Toxizitätserkennungsmodell zu trainieren. Dieses verwenden wir, um potenziell schädliche Inhalte in Eingabeaufforderungen zu erkennen, wenn keine ausdrücklich verbotenen Wörter erkannt werden. Mithilfe von maschinellem Lernen können wir dem Modell beibringen, Muster im Text zu erkennen, die möglicherweise auf Toxizität hinweisen, auch wenn solche Muster mit einem regelbasierten Ansatz nicht leicht zu erkennen sind.

Mit Amazon Comprehend als verwaltetem KI-Service werden Training und Inferenz vereinfacht. Mit nur zwei Schritten können Sie die benutzerdefinierte Amazon Comprehend-Klassifizierung ganz einfach trainieren und bereitstellen. In unserem Workshop [EN, Extern] finden Sie weitere Informationen zum Toxizitätserkennungsmodell mit einem benutzerdefiniertem Amazon Comprehend-Klassifikator. Der Workshop bietet eine schrittweise Anleitung zur Erstellung und Integration eines benutzerdefinierten Toxizitätsklassifikators in Ihre Anwendung. Das folgende Diagramm veranschaulicht diese Lösungsarchitektur.

Dieser Beispielklassifikator verwendet einen Trainingsdatensatz für soziale Medien und führt eine binäre Klassifizierung durch. Wenn Sie jedoch spezifischere Anforderungen an die Textmoderation haben, sollten Sie erwägen, einen stärker auf Sie zugeschnittenen Datensatz zu verwenden, um Ihren benutzerdefinierten Amazon Comprehend-Klassifikator zu trainieren.

Moderierte Ausgabebilder

Das Moderieren von Eingabetext ist zwar wichtig, garantiert aber nicht, dass alle mit dem Stable-Diffusions-Modell generierten Bilder für das Zielpublikum sicher sind, da die Ausgaben des Modells ein gewisses Maß an Zufälligkeit enthalten können. Daher ist es ebenso wichtig, die mit dem Stable-Diffusions-Modell generierten Bilder zu moderieren.

Bei dieser Lösung verwenden wir Amazon Rekognition Content Moderation, das vortrainierte ML-Modelle verwendet, um unangemessene Inhalte in Bildern und Videos zu erkennen. In dieser Lösung verwenden wir die Amazon Rekognition DetectModerationLabel API [EN], um Bilder, die mit dem Stable Diffusion-Modell generiert wurden, nahezu in Echtzeit zu moderieren. Amazon Rekognition Content Moderation bietet APIs zur Analyse einer Vielzahl unangemessener oder anstößiger Inhalte, wie Gewalt, Nacktheit, Hasssymbole und mehr. Eine umfassende Liste der Amazon Rekognition Content Moderation-Taxonomien finden Sie unter Inhalte moderieren.

Der folgende Code zeigt, wie die Amazon Rekognition DetectModerationLabel-API aufgerufen wird, um Bilder innerhalb einer Lambda-Funktion mithilfe der Python-Boto3-Bibliothek zu moderieren. Diese Funktion verwendet die von SageMaker zurückgegebenen Bildbytes und sendet sie zur Moderation an die Image Moderation API.

import boto3

# Initialisieren Sie das Amazon Rekognition-Client-Objekt
rekognition = boto3.client ('rekognition')

# Rufen Sie die Rekognition Image Moderation API auf und speichern Sie die Ergebnisse
response = rekognition.detect_moderation_labels (
    Image={
        'Bytes': base64.b64decode (img_bytes)
    }
)

# Die API-Antwort (response) ausgeben
print(response)

Weitere Beispiele für die Amazon Rekognition Image Moderation API finden Sie in unserem Content Moderation Image Lab [EN, Extern].

Effektive Techniken zur Bildmoderation und Fine-Tuning von Modellen

Fine-Tuning ist eine gängige Technik, mit der vorab trainierte Modelle an bestimmte Aufgaben angepasst werden können. Im Fall von Stable Diffusion kann Fine-Tuning verwendet werden, um Bilder zu erzeugen, die bestimmte Objekte, Stile und Charaktere enthalten. Die Moderation von Inhalten ist entscheidend, wenn ein Stable Diffusion-Modell trainiert wird, um die Erstellung unangemessener oder anstößiger Bilder zu verhindern. Dazu müssen alle Daten, die zur Generierung solcher Bilder führen könnten, sorgfältig geprüft und gefiltert werden. Auf diese Weise lernt das Modell aus einer breiteren und repräsentativeren Palette von Datenpunkten, verbessert die Genauigkeit und verhindert die Verbreitung schädlicher Inhalte.

SageMaker JumpStart erleichtert die Feinabstimmung des Stable-Diffusion-Models, indem die Transfer-Learning-Skripte mithilfe der DreamBooth-Methode[EN, Extern] bereitgestellt werden. Sie müssen nur Ihre Trainingsdaten vorbereiten, die Hyperparameter definieren und den Trainingsjob starten. Weitere Informationen finden Sie unter Fine-Tuning von Modellen mit Stable-Diffusion-Text-zu-Bild mit Amazon SageMaker JumpStart [EN].

Der Datensatz für das Fine-Tuning muss ein einzelnes Amazon Simple Storage Service (Amazon S3) – Bucket sein, einschließlich Ihrer Bilder und der Instanz-Konfigurationsdatei dataset_info.json, wie im folgenden Code gezeigt. Die JSON-Datei verknüpft die Bilder mit dem Instance-Prompt: {'instance_prompt': <<instance_propmt>>}.

Eingabeverzeichnis
|---instance_image_1.png
|---instance_image_2.png
|---instance_image_3.png
|---instance_image_4.png
|---instance_image_5.png
|---dataset_info.json

Natürlich können Sie die Bilder manuell überprüfen und filtern. Dies kann allerdings schnell zeitaufwändig und unpraktisch werden, wenn Sie dies in großem Umfang für viele Projekte und Teams erledigen möchten. In solchen Fällen können Sie einen Batch-Prozess automatisieren, um alle Bilder zentral mit Hilfe der Amazon Rekognition DetectModerationLabel-API zu vergleichen und Bilder automatisch zu kennzeichnen oder zu entfernen, damit diese Ihr Training nicht verfälschen.

Latenz und Kosten der Moderation

Bei dieser Lösung wird ein sequentielles Muster verwendet, um Text und Bilder zu moderieren. Eine regelbasierte Funktion und Amazon Comprehend werden für die Textmoderation aufgerufen und Amazon Rekognition wird sowohl vor, als auch nach dem Aufrufen von Stable Diffusion, für die Bildmoderation verwendet. Beachten Sie, dass dieser Ansatz zwar effektiv Eingabeaufforderungen und Ausgabebilder moderiert, jedoch die Gesamtkosten und Latenz der Lösung erhöhen kann.

Latenz

Sowohl Amazon Rekognition als auch Amazon Comprehend bieten verwaltete APIs, die hochverfügbar sind und über integrierte Skalierbarkeit verfügen. Trotz möglicher Latenzschwankungen, aufgrund von Eingabegröße und Netzwerkgeschwindigkeit, bieten die in dieser Lösung verwendeten APIs beider Dienste Inferenz nahezu in Echtzeit. Benutzerdefinierte Amazon Comprehend Klassifikator-Endpunkte können eine Geschwindigkeit von unter 200 Millisekunden für Eingabetextgrößen von weniger als 100 Zeichen bieten, während die Amazon Rekognition Image Moderation API etwa 500 Millisekunden für durchschnittliche Dateigrößen von weniger als 1 MB benötigt. (Die Ergebnisse basieren auf dem Test, der mit der Beispielanwendung durchgeführt wurde, für die die Anforderung gilt, dass nahezu in Echtzeit gearbeitet werden muss.)

Insgesamt verlängern die Moderations-API-Aufrufe an Amazon Rekognition und Amazon Comprehend den API-Aufruf um bis zu 700 Millisekunden. Es ist wichtig zu beachten, dass die Stable Diffusion-Anforderung in der Regel länger dauert; abhängig von der Komplexität der Eingabeaufforderungen und den zugrunde liegenden Infrastrukturfunktionen. Im Testkonto, bei dem der Instance-Typ ml.p3.2xlarge verwendet wurde, betrug die durchschnittliche Antwortzeit für das Stable-Diffusions-Modell über einen SageMaker-Endpunkt etwa 15 Sekunden. Daher beträgt die durch Moderation verursachte Latenz etwa 5% der gesamten Reaktionszeit, sodass sie sich nur minimal auf die Gesamtleistung des Systems auswirkt.

Kosten

Die Amazon Rekognition Image Moderation API verwendet ein Pay-as-you-go-Modell, das auf der Anzahl der Anfragen basiert. Die Kosten variieren je nach verwendeter AWS-Region und folgen einer gestaffelten Preisstruktur. Mit steigendem Anforderungsvolumen sinken die Kosten pro Anfrage. Weitere Informationen finden Sie unter Amazon Rekognition — Preise.

In dieser Lösung haben wir einen benutzerdefinierten Amazon Comprehend-Klassifikator verwendet und ihn als Amazon Comprehend-Endpunkt eingesetzt, um Inferenzen in Echtzeit zu ermöglichen. Für diese Implementierung fallen sowohl einmalige Traingskosten als auch laufende Inferenzkosten an. Detaillierte Informationen finden Sie unter Amazon Comprehend Pricing.

Mit SageMaker Jumpstart können Sie das Stable Diffusion-Modell schnell als einzelnes Paket starten und bereitstellen. Wenn Inferenz auf dem Stable Diffusion-Modell ausgeführt wird, fallen Kosten für die zugrunde liegende Amazon Elastic Compute Cloud (Amazon EC2)-Instanz sowie für eingehende und ausgehende Datenübertragungen an. Detaillierte Informationen finden Sie unter Amazon SageMaker Pricing.

Zusammenfassung

In diesem Beitrag haben wir einen Überblick über eine Beispiellösung gegeben, in der gezeigt wird, wie Eingabeaufforderungen und Ausgabebilder mit Amazon Comprehend und Amazon Rekognition moderiert werden können. Darüber hinaus können Sie in Stable Diffusion negative Eingabeaufforderungen definieren, um zu verhindern, dass unsichere Inhalte generiert werden. Durch die Implementierung mehrerer Moderationsebenen kann das Risiko, unsichere Inhalte zu produzieren, erheblich reduziert werden, wodurch eine sicherere und zuverlässigere Benutzererfahrung gewährleistet wird.

Erfahren Sie mehr über die Moderation von Inhalten auf AWS und unsere ML-Anwendungsfälle für die Inhaltsmoderation und machen Sie den ersten Schritt zur Rationalisierung Ihrer Abläufe bei der Inhaltsmoderation mit AWS.

Über die Autoren

Lana Zhang ist Senior Solutions Architect im AWS WWSO KI Services-Team und hat sich auf KI und ML für Inhaltsmoderation, Computer Vision und Verarbeitung natürlicher Sprache spezialisiert. Mit ihrer Expertise widmet sie sich der Förderung von AWS-KI/ML-Lösungen und der Unterstützung von Kunden bei der Transformation ihrer Geschäftslösungen in verschiedenen Branchen, darunter soziale Medien, Spiele, E-Commerce, Werbung und Marketing.
James Wu ist Senior KI/ML Specialist Solutions Architect bei AWS und unterstützt Kunden bei der Entwicklung von KI/ML-Lösungen. James deckt ein breites Spektrum von ML-Anwendungsfällen ab, wobei sein Hauptinteresse an Computer Vision, Deep Learning und der Skalierung von ML im gesamten Unternehmen liegt. Bevor er zu AWS kam, war James über 10 Jahre als Architekt, Entwickler und Technologieführer tätig, darunter 6 Jahre im Ingenieurwesen und 4 Jahre in der Marketing- und Werbebranche.
Kevin Carlson ist leitender KI/ML-Spezialist mit Schwerpunkt Computer Vision bei AWS. Hier leitet er die Geschäftsentwicklung Amazon Rekognition. Bevor er zu AWS kam, leitete er die digitale Transformation beim Fortune-500-Technologieunternehmen AECOM weltweit, wobei der Schwerpunkt auf künstlicher Intelligenz und maschinellem Lernen für generatives Design und Infrastrukturbewertung lag. Er lebt in Chicago, wo er neben der Arbeit gerne Zeit mit seiner Familie verbringt. Er fliegt leidenschaftlich gerne Flugzeuge und trainiert Baseball für Jugendliche.
John Rouse ist Senior KI/ML Specialist bei AWS, wo er die globale Geschäftsentwicklung für KI-Services mit den Schwerpunkten Inhaltsmoderation und Compliance leitet. Bevor er zu AWS kam, hatte er leitende Positionen in der Geschäftsentwicklung und in Führungspositionen bei führenden Technologieunternehmen inne. John arbeitet daran, jedem Entwickler mit AWS KI/ML-Stack maschinelles Lernen zur Verfügung zu stellen. Kleine Ideen haben geringe Wirkung. Johns Ziel für Kunden ist es, ihnen große Ideen und Möglichkeiten zu bieten, die ihnen Türen öffnen, damit sie bei ihren Kunden eine große Wirkung erzielen können.