Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
So blockieren Sie schädliche Bilder mit Inhaltsfiltern
Integritätsschutz für Amazon Bedrock kann dabei helfen, unangemessene oder schädliche Bilder zu blockieren und gleichzeitig Inhaltsfilter innerhalb eines Integritätsschutzes zu konfigurieren.
Voraussetzungen und Einschränkungen
-
Diese Funktion wird nur für Bilder unterstützt, und nicht für Bilder mit eingebettetem Videoinhalt.
-
Diese Funktion ist in den AWS-Regionen USA Ost (Nord-Virginia), USA West (Oregon), Europa (Frankfurt) und Asien-Pazifik (Tokio) verfügbar, wo sie in den Inhaltsfiltern für die Kategorien Hass, Beleidigung, Sexualität, Gewalt, Fehlverhalten und Prompt-Angriffe unterstützt wird.
-
Diese Funktion ist als Vorversion in den AWS-Regionen USA Ost (Ohio), Asien-Pazifik (Mumbai, Seoul, Singapur, Tokio), Europa (Irland, London) und US GovCloud (US-West) verfügbar, wo sie in Inhaltsfiltern für die Kategorien Hass, Beleidigung, Sexualität und Gewalt unterstützt wird.
-
Die maximal zulässigen Bildabmessungen für dieses Feature betragen 8 000 x 8 000 (bei JPEG- und PNG-Dateien).
-
Benutzer können Bilder mit einer Größe von bis zu 4 MB hochladen, sowie maximal 20 Bilder für eine einzelne Anfrage.
-
Das Standardlimit liegt bei 25 Bildern pro Sekunde. Dieser Wert kann nicht konfiguriert werden.
-
Für Bildinhalte werden ausschließlich die Formate PNG und JPEG unterstützt.
Übersicht
Das Erkennen und Blockieren von schädlichen Bildern wird nur für Bilder oder Bilder mit Textinhalten unterstützt. Beim Erstellen eines Integritätsschutzes können Benutzer die Bildoption einzeln oder zusammen mit der Textoption auswählen und die jeweilige Filterstärke auf KEINE, NIEDRIG, MITTEL oder HOCH festlegen. Diese Schwellenwerte gelten einheitlich für Text- und Bildinhalte, wenn beide Modalitäten ausgewählt sind. Der Integritätsschutz wertet Bilder aus, die als Eingabe von Benutzern gesendet oder als Ausgaben aus Modellantworten generiert wurden.
Die unterstützten Kategorien für die Erkennung von schädlichen Bildinhalten werden im Folgenden beschrieben:
-
Hass – Beschreibt Inhalte, die eine Person oder Gruppe aufgrund ihrer Identität diskriminieren, kritisieren, beleidigen, verurteilen oder entmenschlichen (z. B. hinsichtlich Rasse, ethnischer Zugehörigkeit, Geschlecht, Religion, sexueller Orientierung, Behinderung oder nationaler Herkunft). Dazu zählen auch grafische und realitätsnahe visuelle Inhalte, die Symbole von Hassgruppen, hasserfüllte Zeichen sowie Bildmaterial zeigen, das mit Organisationen in Verbindung steht, die Diskriminierung, Rassismus und Intoleranz fördern.
-
Beleidigungen – Äußerungen, die erniedrigende, demütigende, spöttische, beleidigende oder herabsetzende Sprache enthalten. Diese Art von Sprache wird auch als Mobbing bezeichnet. Dies umfasst verschiedene Formen von unhöflichen, respektlosen oder beleidigenden Handgesten, die Verachtung, Wut oder Missbilligung ausdrücken sollen.
-
Sexualität – Sprache, die sexuelles Interesse, Aktivität oder Erregung durch direkte oder indirekte Anspielungen auf Körperteile, körperliche Merkmale oder Geschlecht andeutet. Dazu zählen auch Bilder, die intime Körperteile und sexuelle Handlungen mit Geschlechtsverkehr zeigen. Diese Kategorie umfasst auch Cartoons, Animés, Zeichnungen, Skizzen und andere illustrierte Inhalte mit sexuellen Themen.
-
Gewalt – Beschreibt Inhalte, die die Zufügung von körperlichem Schmerz, Verletzungen oder Schäden gegenüber einer Person, Gruppe oder Sache verherrlichen oder androhen. Dazu zählt auch Bildmaterial, das Waffen mit der Absicht zeigt, körperlichen Schaden zuzufügen.
-
Fehlverhalten – Beschreibt Prompts und Modellantworten, die Informationen über die Beteiligung an kriminellen Aktivitäten oder über das Schädigen, Betrügen oder Ausnutzen einer Person, Gruppe oder Institution suchen oder bereitstellen.
-
Prompt-Angriff – Beschreibt Benutzer-Prompts, die darauf abzielen, die Sicherheits- und Moderationsmechanismen eines Basismodells zu umgehen, um schädliche Inhalte zu erzeugen (auch bekannt als „Jailbreak“), sowie Anweisungen der Entwickler gezielt zu ignorieren oder zu überschreiben (auch „Promptinjektion“ genannt). Erfordert die Verwendung von Eingabe-Tagging, damit ein Prompt-Angriff ausgeführt werden kann. Eine Erkennung von Prompt-Angriffen erfordert die Verwendung von Eingabe-Tags.
Themen
So verwenden Sie den Bildinhaltsfilter
So erstellen oder aktualisieren Sie einen Integritätsschutz mit Inhaltsfiltern für Bilder
Beim Erstellen eines neuen Integritätsschutzes oder beim Aktualisieren eines vorhandenen Integritätsschutzes sehen Benutzer jetzt zusätzlich zur bisherigen Textoption auch die Möglichkeit, Bilder auszuwählen.
Anmerkung
Die Textoption ist standardmäßig aktiviert, und die Bildoption muss explizit aktiviert werden. Benutzer können je nach Anwendungsfall Text und Bild oder eines von beiden auswählen.
So filtern Sie die Klassifizierungs- und Blockierungsstufen
Die Filterung erfolgt auf Grundlage der Vertrauensklassifizierung von Benutzereingaben und FM-Antworten. Alle Benutzereingaben und Modellantworten werden nach vier Stärkestufen klassifiziert: Keine, Niedrig, Mittel und Hoch. Die Filterstärke bestimmt, mit welcher Empfindlichkeit schädliche Inhalte gefiltert werden sollen. Mit zunehmender Filterstärke steigt die Wahrscheinlichkeit, dass schädliche Inhalte gefiltert werden, und die Wahrscheinlichkeit sinkt, dass schädliche Inhalte in Ihrer Anwendung angezeigt werden. Wenn sowohl die Bild- als auch die Textoption ausgewählt sind, wird dieselbe Filterstärke für eine bestimmte Kategorie auf beide Modalitäten angewendet.
Um Bild- und Textfilter für schädliche Kategorien zu konfigurieren, wählen Sie Konfigurieren des Filters für schädliche Kategorien aus.
-
Wählen Sie Text und/oder Bild aus, um Text- oder Bildinhalte aus Prompts oder Antworten an das und aus dem Modell zu filtern.
-
Wählen Sie die Filterstufe Keine, Niedrig, Mittel oder Hoch aus, die Sie auf die einzelnen Kategorien anwenden möchten. Die Einstellung Hoch hilft dabei, die meisten Texte oder Bilder zu blockieren, die auf diese Kategorie des Filters zutreffen.
-
Wählen Sie Dieselben Filter für schädliche Kategorien bei Antworten verwenden aus, um dieselben Filtereinstellungen wie für Prompts zu verwenden. Sie können auch verschiedene Filterstufen für Prompts oder Antworten verwenden, indem Sie diese Option nicht auswählen. Wählen Sie Schwellenwert zurücksetzen, um alle Filterstufen für Prompts oder Antworten zurückzusetzen.
-
Wählen Sie Überprüfen und erstellen oder Weiter, um den Integritätsschutz zu erstellen.
So konfigurieren Sie Inhaltsfilter für Bilder mit API
Sie können die Integritätsschutz-API verwenden, um den Bildinhaltsfilter in Integritätsschutz für Amazon Bedrock zu konfigurieren. Im folgenden Beispiel sehen Sie einen Filter für Integritätsschutz für Amazon Bedrock mit verschiedenen Kategorien für schädliche Inhalte und die jeweils angewendeten Filterstärken. Sie können diese Vorlage als Beispiel für Ihren eigenen Anwendungsfall verwenden.
Bei der Operation contentPolicyConfig ist filtersConfig ein Objekt, wie im folgenden Beispiel gezeigt.
Beispiel eines Python-Boto3-Codes zum Erstellen eines Integritätsschutzes mit Bildinhaltsfiltern
import boto3 import botocore import json def main(): bedrock = boto3.client('bedrock', region_name='us-east-1') try: create_guardrail_response = bedrock.create_guardrail( name='my-image-guardrail', contentPolicyConfig={ 'filtersConfig': [ { 'type': 'SEXUAL', 'inputStrength': 'HIGH', 'outputStrength': 'HIGH', 'inputModalities': ['TEXT', 'IMAGE'], 'outputModalities': ['TEXT', 'IMAGE'] }, { 'type': 'VIOLENCE', 'inputStrength': 'HIGH', 'outputStrength': 'HIGH', 'inputModalities': ['TEXT', 'IMAGE'], 'outputModalities': ['TEXT', 'IMAGE'] }, { 'type': 'HATE', 'inputStrength': 'HIGH', 'outputStrength': 'HIGH', 'inputModalities': ['TEXT', 'IMAGE'], 'outputModalities': ['TEXT', 'IMAGE'] }, { 'type': 'INSULTS', 'inputStrength': 'HIGH', 'outputStrength': 'HIGH', 'inputModalities': ['TEXT', 'IMAGE'], 'outputModalities': ['TEXT', 'IMAGE'] }, { 'type': 'MISCONDUCT', 'inputStrength': 'HIGH', 'outputStrength': 'HIGH', 'inputModalities': ['TEXT'], 'outputModalities': ['TEXT'] }, { 'type': 'PROMPT_ATTACK', 'inputStrength': 'HIGH', 'outputStrength': 'NONE', 'inputModalities': ['TEXT'], 'outputModalities': ['TEXT'] } ] }, blockedInputMessaging='Sorry, the model cannot answer this question.', blockedOutputsMessaging='Sorry, the model cannot answer this question.', ) create_guardrail_response['createdAt'] = create_guardrail_response['createdAt'].strftime('%Y-%m-%d %H:%M:%S') print("Successfully created guardrail with details:") print(json.dumps(create_guardrail_response, indent=2)) except botocore.exceptions.ClientError as err: print("Failed while calling CreateGuardrail API with RequestId = " + err.response['ResponseMetadata']['RequestId']) raise err if __name__ == "__main__": main()
Konfiguration des Bildfilters für die Verwendung mit der ApplyGuardrail-API
Mithilfe der ApplyGuardrail-API können Sie Inhaltsfilter für Bild- und Textinhalte verwenden. Mit dieser Option können Sie die Inhaltsfiltereinstellungen verwenden, ohne das Amazon-Bedrock-Modell aufzurufen. Sie können die Anforderungsnutzdaten im folgenden Skript für verschiedene Modelle aktualisieren, indem Sie der Dokumentation zu den Inferenzparametern für jedes Bedrock-Basismodell folgen, das von Integritätsschutz für Amazon Bedrock unterstützt wird.
Sie können die Anforderungsnutzdaten im folgenden Skript für verschiedene Modelle aktualisieren, indem Sie der Dokumentation zu den Inferenzparametern für jedes Bedrock-Basismodell folgen, das vom Integritätsschutz für Amazon Bedrock unterstützt wird.
import boto3 import botocore import json guardrail_id = 'guardrail-id' guardrail_version = 'DRAFT' content_source = 'INPUT' image_path = '/path/to/image.jpg' with open(image_path, 'rb') as image: image_bytes = image.read() content = [ { "text": { "text": "Hi, can you explain this image art to me." } }, { "image": { "format": "jpeg", "source": { "bytes": image_bytes } } } ] def main(): bedrock_runtime_client = boto3.client("bedrock-runtime", region_name="us-east-1") try: print("Making a call to ApplyGuardrail API now") response = bedrock_runtime_client.apply_guardrail( guardrailIdentifier=guardrail_id, guardrailVersion=guardrail_version, source=content_source, content=content ) print("Received response from ApplyGuardrail API:") print(json.dumps(response, indent=2)) except botocore.exceptions.ClientError as err: print("Failed while calling ApplyGuardrail API with RequestId = " + err.response['ResponseMetadata']['RequestId']) raise err if __name__ == "__main__": main()
So konfigurieren Sie den Bildfilter zur Verwendung mit Modellen zur Bilderzeugung
Sie können im Integritätsschutz für Amazon Bedrock auch Bildfilter mit Modellen zur Bildgenerierung (z. B. Titan Image Generator und Stability Image) oder Diffusion-Modelle einsetzen. Diese Modelle werden derzeit über die InvokeModel-API unterstützt, die mit einem Integritätsschutz aufgerufen werden kann. Sie können die Anforderungsnutzdaten im folgenden Skript für verschiedene Modelle aktualisieren, indem Sie der Dokumentation zu den Inferenzparametern für verschiedene Amazon-Bedrock-Basismodelle folgen, die mit Integritätsschutz unterstützt werden.
import base64 import boto3 import botocore import json import os import random import string guardrail_id = 'guardrail-id' guardrail_version = 'DRAFT' model_id = 'stability.sd3-large-v1:0' output_images_folder = '/path/to/folder/' body = json.dumps( { "prompt": "Create an image of a beautiful flower", # Prompt for image generation ("A gun" should get blocked by violence) "output_format": "jpeg" } ) def main(): bedrock_runtime_client = boto3.client("bedrock-runtime", region_name="us-west-2") try: print("Making a call to InvokeModel API for model: {}".format(model_id)) response = bedrock_runtime_client.invoke_model( body=body, modelId=model_id, trace='ENABLED', guardrailIdentifier=guardrail_id, guardrailVersion=guardrail_version ) response_body = json.loads(response.get('body').read()) print("Received response from InvokeModel API (Request Id: {})".format(response['ResponseMetadata']['RequestId'])) if 'images' in response_body and len(response_body['images']) > 0: os.makedirs(output_images_folder, exist_ok=True) images = response_body["images"] for image in images: image_id = ''.join(random.choices(string.ascii_lowercase + string.digits, k=6)) image_file = os.path.join(output_images_folder, "generated-image-{}.jpg".format(image_id)) print("Saving generated image {} at {}".format(image_id, image_file)) with open(image_file, 'wb') as image_file_descriptor: image_file_descriptor.write(base64.b64decode(image.encode('utf-8'))) else: print("No images generated from model") guardrail_trace = response_body['amazon-bedrock-trace']['guardrail'] guardrail_trace['modelOutput'] = ['<REDACTED>'] print("Guardrail Trace: {}".format(json.dumps(guardrail_trace, indent=2))) except botocore.exceptions.ClientError as err: print("Failed while calling InvokeModel API with RequestId = {}".format(err.response['ResponseMetadata']['RequestId'])) raise err if __name__ == "__main__": main()