生成式人工智能技术正在迅速改进,现在可以根据文本输入生成文本和图像。稳定扩散是一种文本到图像的模型,可以帮助您创建逼真的应用程序。您可以通过Amazon SageMaker JumpStart使用稳定扩散模型轻松生成图像。
以下是由稳定扩散生成的输入文本和相应输出图像的示例。输入分别为“一只拳击手在桌子上跳舞”,“一个穿着泳装在海滩上的女士,水彩风格”,以及“一只穿着西装的狗。”
尽管生成式人工智能解决方案功能强大且有用,但它们也容易受到操纵和滥用。使用它们进行图像生成的客户必须优先考虑内容审核,以保护其用户、平台和品牌,并通过实施强大的审核实践来创建安全和积极的用户体验,同时保护其平台和品牌声誉。
在本文中,我们将探讨如何使用AWS AI服务Amazon Rekognition和Amazon Comprehend以及其他技术,以实时有效地审核稳定扩散模型生成的内容。要了解如何在AWS上启动并生成文本到图像的稳定扩散模型,请参阅在Amazon SageMaker JumpStart上使用稳定扩散模型生成图像。
解决方案概述
Amazon Rekognition和Amazon Comprehend是托管的AI服务,通过API接口提供预训练和可定制的ML模型,无需机器学习(ML)专业知识。Amazon Rekognition内容审核自动化和简化了图像和视频审核。Amazon Comprehend利用ML分析文本并发现有价值的见解和关系。
以下参考示例演示了在近实时中审核稳定扩散文本到图像模型生成的图像的RESTful代理API的创建。在此解决方案中,我们使用JumpStart启动和部署了一个稳定扩散模型(v2-1基础版)。该解决方案使用负面提示和文本审核解决方案(如Amazon Comprehend和基于规则的过滤器)来审核输入提示。它还利用Amazon Rekognition来审核生成的图像。如果检测到不安全的信息,RESTful API将向客户端返回生成的图像和审核警告。
工作流程中的步骤如下:
- 用户发送提示以生成图像。
- AWS Lambda函数协调使用Amazon Comprehend、JumpStart和Amazon Rekognition进行图像生成和审核:
- 在Lambda函数中对输入提示应用基于规则的条件,使用禁止词检测进行内容审核。
- 使用Amazon Comprehend自定义分类器分析提示文本以进行毒性分类。
- 将提示作为用户输入和预定义列表中的负面提示一起传递给SageMaker端点的稳定扩散模型。
- 将从SageMaker端点返回的图像字节发送到Amazon Rekognition的
DetectModerationLabel
API进行图像审核。 - 构建包含图像字节和警告的响应消息,如果前面的步骤在提示或生成的图像中检测到任何不适当的信息。
- 将响应发送回客户端。
以下屏幕截图显示了使用所描述的架构构建的示例应用程序。Web界面将用户输入提示发送到RESTful代理API,并显示响应中接收到的图像和任何审核警告。如果生成的图像包含不安全内容,演示应用程序会对实际生成的图像进行模糊处理。我们使用示例提示“一个性感的女士”测试了该应用程序。
您可以实现更复杂的逻辑以获得更好的用户体验,例如,如果提示包含不安全信息,则拒绝请求。此外,如果提示是安全的,但输出是不安全的,您可以设置重试策略以重新生成图像。
预定义一个负面提示列表
稳定扩散支持负面提示,允许您在图像生成过程中指定要避免的提示。创建一个预定义的负面提示列表是一种实用和主动的方法,可以防止模型生成不安全的图像。通过包含诸如“裸体”、“性感”和“裸露”等已知会导致不适当或冒犯性图像的提示,模型可以识别并避免它们,降低生成不安全内容的风险。
在调用SageMaker端点运行稳定扩散模型的推理时,可以在Lambda函数中管理实现,同时传递用户输入的提示和预定义列表中的负面提示。
尽管这种方法是有效的,但它可能会影响稳定扩散模型生成的结果,并限制其功能。将其视为一种审查技术之一,结合使用Amazon Comprehend和Amazon Rekognition等其他方法,如文本和图像审查。
审查输入提示
文本审查的常见方法是使用基于规则的关键词查找方法,以确定输入文本是否包含预定义列表中的任何禁止词或短语。这种方法相对容易实施,对性能影响较小,成本较低。然而,这种方法的主要缺点是仅限于检测预定义列表中包含的单词,无法检测未包含在列表中的禁止词的新变体或修改变体。用户也可以尝试通过使用替代拼写或特殊字符来替换字母来规避规则。
为了解决基于规则的文本审查的局限性,许多解决方案采用了基于规则的关键词查找与基于机器学习的毒性检测相结合的混合方法。这两种方法的结合可以实现更全面和有效的文本审查解决方案,能够检测更广泛的不适当内容,并提高审查结果的准确性。
在这个解决方案中,我们使用Amazon Comprehend自定义分类器来训练一个毒性检测模型,用于检测输入提示中的潜在有害内容,这些内容在没有明确禁止词被检测到的情况下。借助机器学习的力量,我们可以教导模型识别文本中可能指示毒性的模式,即使这些模式不容易被基于规则的方法检测到。
作为一项托管的AI服务,Amazon Comprehend简化了训练和推理过程。您只需简单的两个步骤即可轻松训练和部署Amazon Comprehend自定义分类。请查看我们的工作坊实验室,了解使用Amazon Comprehend自定义分类器的毒性检测模型的更多信息。该实验室提供了一个逐步指南,介绍了如何创建和集成自定义毒性分类器到您的应用程序中。以下图表说明了这个解决方案的架构。
此示例分类器使用社交媒体训练数据集进行二分类。然而,如果您对文本审查需求有更具体的要求,请考虑使用更专门的数据集来训练您的Amazon Comprehend自定义分类器。
审查输出图像
尽管审查输入文本提示非常重要,但这并不能保证稳定扩散模型生成的所有图像对于预期的受众是安全的,因为模型的输出可能包含一定程度的随机性。因此,审查稳定扩散模型生成的图像同样重要。
在这个解决方案中,我们利用Amazon Rekognition内容审查,该服务使用预训练的机器学习模型,检测图像和视频中的不适当内容。在这个解决方案中,我们使用Amazon Rekognition DetectModerationLabel API来近实时审查稳定扩散模型生成的图像。Amazon Rekognition内容审查提供了预训练的API,用于分析各种不适当或冒犯性内容,如暴力、裸露、仇恨符号等。有关Amazon Rekognition内容审查分类法的全面列表,请参考内容审查。
以下代码演示了如何使用Python Boto3库在Lambda函数中调用Amazon Rekognition DetectModerationLabel
API来审查SageMaker返回的图像字节。
import boto3
# 初始化Amazon Rekognition客户端对象
rekognition = boto3.client('rekognition')
# 调用Rekognition图像审查API并存储结果
response = rekognition.detect_moderation_labels(
Image={
'Bytes': base64.b64decode(img_bytes)
}
)
# 打印API响应
print(response)
有关Amazon Rekognition图像内容审核API的其他示例,请参阅我们的内容审核图像实验室。
用于微调模型的有效图像内容审核技术
微调是一种常用的技术,用于将预训练模型适应特定任务。对于稳定扩散模型,可以使用微调来生成包含特定对象、风格和字符的图像。在训练稳定扩散模型时,内容审核非常重要,以防止生成不适当或冒犯性图像。这涉及仔细审查和过滤可能导致生成此类图像的任何数据。通过这样做,模型可以从更多样化和代表性的数据点中学习,提高准确性,防止有害内容的传播。
JumpStart通过提供使用DreamBooth方法的迁移学习脚本,使稳定扩散模型的微调变得简单。您只需要准备好训练数据,定义超参数,然后开始训练任务。有关更多详细信息,请参阅使用Amazon SageMaker JumpStart对文本到图像稳定扩散模型进行微调。
用于微调的数据集需要是一个包含图像和实例配置文件dataset_info.json的单个Amazon Simple Storage Service(Amazon S3)目录,如下所示的代码所示。JSON文件将图像与实例提示关联起来,如下所示:{'instance_prompt':<<instance_prompt>>}
。
input_directory
|---instance_image_1.png
|---instance_image_2.png
|---instance_image_3.png
|---instance_image_4.png
|---instance_image_5.png
|---dataset_info.json
显然,您可以手动审查和过滤图像,但这可能会耗时,甚至在对许多项目和团队进行规模化处理时可能是不切实际的。在这种情况下,您可以自动化批量处理,集中检查所有图像与Amazon Rekognition的DetectModerationLabel API,并自动标记或删除图像,以防止其污染您的训练。
审核延迟和成本
在此解决方案中,使用顺序模式对文本和图像进行审核。文本审核调用基于规则的函数和Amazon Comprehend,图像审核使用Amazon Rekognition,在调用稳定扩散之前和之后都使用。虽然此方法有效审核输入提示和输出图像,但可能会增加解决方案的整体成本和延迟,这是需要考虑的。
延迟
无论是Amazon Rekognition还是Amazon Comprehend都提供了可扩展、高可用的托管API。尽管由于输入大小和网络速度而导致潜在的延迟变化,但此解决方案中使用的这两个服务的API都提供了近实时推理。Amazon Comprehend自定义分类器端点可在输入文本大小小于100个字符的情况下提供小于200毫秒的速度,而Amazon Rekognition图像内容审核API在文件大小小于1 MB的情况下提供约500毫秒的服务时间。(这些结果是基于使用示例应用程序进行的测试,符合近实时要求。)
总之,对Amazon Rekognition和Amazon Comprehend的审核API调用将增加700毫秒的API调用时间。需要注意的是,稳定扩散请求通常需要更长时间,具体取决于提示的复杂性和基础架构的能力。在测试账户中,使用ml.p3.2xlarge实例类型,通过SageMaker端点对稳定扩散模型的平均响应时间约为15秒。因此,审核引入的延迟约占整体响应时间的5%,对系统整体性能影响较小。
成本
Amazon Rekognition图像内容审核API采用按请求计费模式。成本根据使用的AWS区域和分层定价结构而变化。随着请求量的增加,每个请求的成本会降低。有关详细信息,请参阅Amazon Rekognition定价。
在此解决方案中,我们使用了Amazon Comprehend自定义分类器,并将其部署为Amazon Comprehend端点以进行实时推理。此实现既有一次性培训成本,也有持续的推理成本。有关详细信息,请参阅Amazon Comprehend定价。
Jumpstart使您能够快速启动和部署稳定扩散模型作为一个单一的包。在稳定扩散模型上运行推理将产生Amazon Elastic Compute Cloud(Amazon EC2)实例的成本,以及传入和传出数据传输的成本。有关详细信息,请参阅Amazon SageMaker定价。
摘要
在这篇文章中,我们提供了一个示例解决方案的概述,展示了如何使用Amazon Comprehend和Amazon Rekognition来审查Stable Diffusion的输入提示和输出图像。此外,您还可以在Stable Diffusion中定义负面提示,以防止生成不安全的内容。通过实施多个审查层,可以大大降低生成不安全内容的风险,确保更安全可靠的用户体验。
了解有关AWS上内容审查和我们的内容审查机器学习用例的更多信息,并采取第一步,通过AWS简化您的内容审查操作。