使用亚马逊云科技人工智能内容审核服务,打造安全的图像生成和扩散模型

人工智能
Amazon SageMaker
Amazon Comprehend
Amazon Rekognition
生成式人工智能
0
0
生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion 是一种文本转图像模型,可让您创建栩栩如生的图像应用。您可以通过 [Amazon SageMaker JumpStart](https://aws.amazon.com/cn/sagemaker/jumpstart/?trk=cndc-detail),使用 Stable Diffusion 模型轻松地从文本生成图像。 以下是输入文本示例,以及 Stable Diffusion 生成的对应输出图像。输入内容是“在桌子上跳舞的拳击手”、“沙滩上一位穿着水彩风格泳衣的女士”和“穿西装的狗”。 ![image.png](https://dev-media.amazoncloud.cn/6c14e30200fe4409839721b2f842a72a_image.png "image.png") 尽管生成式人工智能解决方案功能强大,应用广泛,但它们也很容易受到操纵和滥用。客户在使用它们生成图片时,应实施严格的审核程序,高度重视内容审核,以便保护其用户、平台和品牌,在创造安全和积极的用户体验的同时,确保平台和品牌的声誉不会受损。 在这篇文章中,我们将探讨如何使用亚马逊云科技人工智能服务 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 和 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 以及其他技术,近乎实时地有效审核 Stable Diffusion 模型生成的内容。要了解如何在亚马逊云科技上使用 Stable Diffusion 模型以及通过文本打开和生成图像,请参阅[在 Amazon SageMaker JumpStart 上使用 Stable Diffusion 模型从文本生成图像](https://aws.amazon.com/blogs/machine-learning/generate-images-from-text-with-the-stable-diffusion-model-on-amazon-sagemaker-jumpstart?trk=cndc-detail)。 ### 解决方案概览 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 和 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 是托管式人工智能服务,它们通过 API 接口提供预训练且可自定义的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型,无需[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(ML)专业知识。[Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Content Moderation 可自动完成图像和视频的审核,简化这一过程。[Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 利用[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)来分析文本,发现有价值的洞察和关系。 以下参考资料介绍了如何创建 RESTful 代理 API,用于近乎实时地审核 Stable Diffusion 文本转图像模型生成的图像。在此解决方案中,我们使用 JumpStart 启动并部署了 Stable Diffusion 模型(基于 v2-1)。该解决方案使用负向提示、文本审核解决方案(例如 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail))以及基于规则的筛选条件来审核输入提示。它还利用 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 来审核生成的图像。在检测到不安全信息时,RESTful API 会将生成的图像和审核警告返回给客户端。 ![image.png](https://dev-media.amazoncloud.cn/cdb3be5a155249adbe9487033a7586e8_image.png "image.png") 此工作流中的步骤如下: 1. 用户发送提示以生成图像。 2. Amazon Lambda 函数使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail)、JumpStart 和 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 协调图像的生成和审核: - 将基于规则的条件应用到 Lambda 函数中的输入提示,使用禁用词检测强制执行内容审核。 - 使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器,分析提示文本以进行毒性分类。 - 通过 SageMaker 端点将提示发送到 Stable Diffusion 模型,传递提示作为用户输入,并传递预定义列表中的负向提示。 - 将从 SageMaker 端点返回的图像字节发送到 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) `DetectModerationLabel` API 进行图片审核。 - 如果之前的步骤在提示或生成的图像中检测到任何不当信息,则会构造包含图像字节和警告的响应消息。 3. 服务将响应发送回客户端。 以下屏幕截图显示了使用上述架构构建的示例应用程序。Web UI 将用户输入提示发送到 RESTful 代理 API,并显示从响应中收到的图像和所有审核警告。如果实际生成的图像包含不安全的内容,则演示应用程序会对内容进行模糊处理。我们使用示例提示“一位性感女士”测试了该应用程序。 ![image.png](https://dev-media.amazoncloud.cn/e3b1775a33464b24a2e1d0f5573ec030_image.png "image.png") 您可以实施更复杂的逻辑来获得更好的用户体验,例如,在提示包含不安全的信息时拒绝请求。此外,您可以制定重试策略,在提示是安全的、但输出不安全时,重新生成图像。 ### 预定义负向提示列表 Stable Diffusion 支持负向提示,这样您便可以指定在图像生成期间要避免的提示。创建预定义的负向提示列表是一种实用的主动式方法,用于防止模型生成不安全的图像。我们已经知道,诸如“裸体”、“性感”和“裸露”之类的提示会生成不适宜或者冒犯性的图片,通过添加这些提示,模型可以识别并避开这些提示,从而降低生成不安全内容的风险。 在调用 SageMaker 端点来运行 Stable Diffusion 模型的推理时,可以在 Lambda 函数中管理该实施,传递用户输入中的提示,并传递预定义列表中的负向提示。 尽管这种方法行之有效,但它可能会影响 Stable Diffusion 模型生成的结果并限制其功能。所以,要点在于将其视为审核技术之一,再结合其他方法,例如使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 和 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 进行文本和图像审核。 ### 审核输入提示 文本审核的常用方法是使用基于规则的关键字查找方法,识别输入文本是否包含预定义列表中的任何禁用词或短语。这种方法相对容易实施,对性能的影响很小,成本也更低。但是,这种方法的主要缺点是,它只检测预定义列表中包含的单词,无法检测未包含在列表中的禁用词新变体或修改后的变体。用户还可以尝试使用其他拼写或特殊字符来替换字母,从而绕过规则。 为了解决基于规则的文本审核的局限性,许多解决方案采用混合方法,将基于规则的关键字查找与基于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的毒性监察相结合。两种方法的结合可以提供更全面、更有效的文本审核解决方案,能够检测更大范围内的不当内容并提高审核结果的准确性。 在此解决方案中,我们使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器来训练毒性监察模型,使用该模型来检测在输入提示中可能存在有害内容、但未检测到明确使用禁用词的情况。借助[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的强大功能,我们可以教导模型识别文本中可能存在毒性内容的模式,即使基于规则的方法难于检测到此类模式也没问题。 使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 作为托管式人工智能服务,可以简化训练和推理。只需两个步骤,您就可以轻松地训练和部署 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类。请查看我们的[研讨会实验室](https://github.com/aws-samples/amazon-rekognition-code-samples/blob/main/content-moderation/04-text-moderation/02-content-moderation-text-toxic-classification.ipynb?trk=cndc-detail),了解有关使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器的毒性监察模型的更多信息。该实验室提供了分步指南,说明如何创建自定义毒性分类器并将其集成到应用程序中。下图展示了此解决方案的架构。 ![image.png](https://dev-media.amazoncloud.cn/d6c11b04194748b39721ba1050c56168_image.png "image.png") 此示例分类器使用社交媒体训练数据集并执行二元分类。但是,如果您对文本审核需求有更具体的要求,请考虑使用更具针对性的数据集来训练 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器。 ### 审核输出图像 尽管审核输入文本提示很重要,但它并不能保证对于目标受众而言,Stable Diffusion 模型生成的所有图像都是安全的,因为该模型的输出可能包含一定程度的随机性。因此,审核 Stable Diffusion 模型生成的图像同样重要。 在此解决方案中,我们利用 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Content Moderation 这个预先训练过的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型,检测图像和视频中的不当内容。在此解决方案中,我们使用 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) DetectModerationLabel API,近乎实时地审核 Stable Diffusion 模型生成的图像。[Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Content Moderation 提供预先训练的 API,用于分析各种不当或冒犯性内容,例如暴力、裸体、仇恨符号等。有关 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Content Moderation 分类法的完整列表,请参阅[审核内容](https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html?trk=cndc-detail)。 以下代码演示了如何使用 Python Boto3 库,在 Lambda 函数中调用 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) `DetectModerationLabel` API 来审核图像。此函数获取从 SageMaker 返回的图像字节,并将其发送到 Image Moderation API 进行审核。 ```js import boto3 # 初始化 Amazon Rekognition 客户端对象 rekognition = boto3.client('rekognition') # 调用 Rekognition Image Moderation API 并存储结果 response = rekognition.detect_moderation_labels( Image={ 'Bytes': base64.b64decode(img_bytes) } ) # 输出 API 响应 print(response) ``` 有关 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Image Moderation API 的更多示例,请参阅我们的[内容审核图像实验室](https://github.com/aws-samples/amazon-rekognition-code-samples/blob/main/content-moderation/01-image-moderation/01-content-moderation-image.ipynb?trk=cndc-detail)。 ### 用于微调模型的有效图像审核技术 微调是一种常用技术,用于根据特定任务来调节预训练的模型。对于 Stable Diffusion,微调可用于生成包含特定对象、样式和字符的图像。在训练 Stable Diffusion 模型以防止创建不当或冒犯性的图像时,内容审核至关重要。这包括仔细审查并筛选出任何可能导致生成此类图像的数据。通过这样做,模型可以从更多样化和更具代表性的数据点进行学习,从而提高准确性并防止传播有害内容。 通过使用 DreamBooth 方法提供传输学习脚本,JumpStart 可以轻松微调 Stable Diffusion 模型。您只需要准备训练数据,定义超参数,然后便可开始训练作业。有关更多详细信息,请参阅[使用 Amazon SageMaker JumpStart 微调文本转图像 Stable Diffusion 模型](https://aws.amazon.com/blogs/machine-learning/fine-tune-text-to-image-stable-diffusion-models-with-amazon-sagemaker-jumpstart/?trk=cndc-detail)。 用于微调的数据集必须是单个 [Amazon Simple Storage Service](https://aws.amazon.com/cn/s3/?trk=cndc-detail)([Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail))目录,包括您的图像和实例配置文件 `dataset_info.json` ,如以下代码所示。JSON 文件会将图像与实例提示关联,例如: `{'instance_prompt':<<instance_prompt>>}` . ```js 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](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) `DetectModerationLabel` API 集中检查所有图片,并自动标记或删除图片,避免这些图像污染您的训练。 ### 审核延迟和成本 此解决方案使用顺序模式来审核文本和图像。文本审核需要调用基于规则的函数和 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail),[Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 则用于在调用 Stable Diffusion 之前和之后的图像审核。尽管这种方法可以有效地审核输入提示和输出图像,但它可能会增加解决方案的总体成本和延迟,这是需要考虑的问题。 #### 延迟 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 和 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 均提供了托管 API,具备高可用性和内置的可扩展性。尽管由于输入大小和网络速度可能导致延迟变化,但在此解决方案中,所用两项服务中的 API 都提供了近实时的推理。对于大小小于 100 个字符的输入文本,[Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器端点的处理速度低于 200 毫秒,而对于平均大小小于 1 MB 的文件,[Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Image Moderation API 的速度大约为 500 毫秒。(结果基于使用示例应用程序进行的测试,符合近实时要求。) 总共而言,对 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) 和 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 的审核 API 调用会增加 700 毫秒的 API 调用时间。需要注意的是,根据提示的复杂性和底层基础设施功能,Stable Diffusion 请求通常需要更长的时间。在测试账户中,使用 ml.p3.2xlarge 实例类型,通过 SageMaker 端点调用 Stable Diffusion 模型的平均响应时间约为 15 秒。因此,审核引入的延迟约为总响应时间的 5%,因此对系统整体性能的影响微乎其微。 #### 成本 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail) Image Moderation API 采用基于请求数量的即用即付模式。费用因所用亚马逊云科技区域而异,采用分层定价结构。随着请求数量的增加,每次请求的成本会降低。有关更多信息,请参阅 [Amazon Rekognition 定价](https://aws.amazon.com/rekognition/pricing/?trk=cndc-detail)。 在此解决方案中,我们使用了 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 自定义分类器,并将其部署为 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 端点,以协助进行实时推理。这种实施会产生一次性训练成本和持续的推理成本。有关详细信息,请参阅 [Amazon Comprehend 定价](https://aws.amazon.com/comprehend/pricing/?trk=cndc-detail)。 使用 Jumpstart,您可以将 Stable Diffusion 模型作为单个软件包来快速启动和部署。在 Stable Diffusion 模型上运行推理将产生底层 Amazon Elastic Compute Cloud(Amazon EC2)实例费用,以及入站和出站数据传输费用。有关详细信息,请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/?trk=cndc-detail)。 ### 小结 在这篇文章中,我们概述了一个示例解决方案,该解决方案展示了如何使用 [Amazon Comprehend](https://aws.amazon.com/cn/comprehend/?trk=cndc-detail) 和 [Amazon Rekognition](https://aws.amazon.com/cn/rekognition/?trk=cndc-detail),审核 Stable Diffusion 输入提示和输出图像。此外,您可以在 Stable Diffusion 中定义负向提示,以防止生成不安全的内容。通过实施多个审核层,可以大大降低生成不安全内容的风险,从而确保更安全、更可靠的用户体验。 详细了解[亚马逊云科技上的内容审核](https://aws.amazon.com/solutions/guidance/content-moderation-on-aws/?trk=cndc-detail)以及我们的[内容审核机器学习使用场景](https://aws.amazon.com/machine-learning/ml-use-cases/content-moderation/?trk=cndc-detail),并迈出使用亚马逊云科技简化内容审核操作的第一步。 - Original URL: https://aws.amazon.com/blogs/machine-learning/safe-image-generation-and-diffusion-models-with-amazon-ai-content-moderation-services/?trk=cndc-detail ![开发者尾巴.gif](https://dev-media.amazoncloud.cn/07243428e0364d318786bae1d9fc6f65_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")
0
目录
关闭