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

news2025/1/9 16:41:01

1e7a2761035bc8d96a7c0b9418e7db50.gif

生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion 是一种文本转图像模型,可让您创建栩栩如生的图像应用。您可以通过 Amazon SageMaker JumpStart,使用 Stable Diffusion 模型轻松地从文本生成图像。

以下是输入文本示例,以及 Stable Diffusion 生成的对应输出图像。输入内容是“在桌子上跳舞的拳击手”、“沙滩上一位穿着水彩风格泳衣的女士”和“穿西装的狗”。

b91765a2b503fdd8b4f074499ffb8340.png

尽管生成式人工智能解决方案功能强大,应用广泛,但它们也很容易受到操纵和滥用。客户在使用它们生成图片时,应实施严格的审核程序,高度重视内容审核,以便保护其用户、平台和品牌,在创造安全和积极的用户体验的同时,确保平台和品牌的声誉不会受损。

在这篇文章中,我们将探讨如何使用亚马逊云科技人工智能服务 Amazon Rekognition 和 Amazon Comprehend 以及其他技术,近乎实时地有效审核 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)。

解决方案概览

Amazon Rekognition 和 Amazon Comprehend 是托管式人工智能服务,它们通过 API 接口提供预训练且可自定义的机器学习模型,无需机器学习(ML)专业知识。Amazon Rekognition Content Moderation 可自动完成图像和视频的审核,简化这一过程。Amazon Comprehend 利用机器学习来分析文本,发现有价值的洞察和关系。

以下参考资料介绍了如何创建 RESTful 代理 API,用于近乎实时地审核 Stable Diffusion 文本转图像模型生成的图像。在此解决方案中,我们使用 JumpStart 启动并部署了 Stable Diffusion 模型(基于 v2-1)。该解决方案使用负向提示、文本审核解决方案(例如 Amazon Comprehend)以及基于规则的筛选条件来审核输入提示。它还利用 Amazon Rekognition 来审核生成的图像。在检测到不安全信息时,RESTful API 会将生成的图像和审核警告返回给客户端。

34328a41302b2569652d4f1ae85cb405.png

此工作流中的步骤如下:

1. 用户发送提示以生成图像。

2. Amazon Lambda 函数使用 Amazon Comprehend、JumpStart 和 Amazon Rekognition 协调图像的生成和审核:

  1. 将基于规则的条件应用到 Lambda 函数中的输入提示,使用禁用词检测强制执行内容审核。

  2. 使用 Amazon Comprehend 自定义分类器,分析提示文本以进行毒性分类。

  3. 通过 SageMaker 端点将提示发送到 Stable Diffusion 模型,传递提示作为用户输入,并传递预定义列表中的负向提示。

  4. 将从 SageMaker 端点返回的图像字节发送到 Amazon Rekognition DetectModerationLabel API 进行图片审核。

  5. 如果之前的步骤在提示或生成的图像中检测到任何不当信息,则会构造包含图像字节和警告的响应消息。

3. 服务将响应发送回客户端。

以下屏幕截图显示了使用上述架构构建的示例应用程序。Web UI 将用户输入提示发送到 RESTful 代理 API,并显示从响应中收到的图像和所有审核警告。如果实际生成的图像包含不安全的内容,则演示应用程序会对内容进行模糊处理。我们使用示例提示“一位性感女士”测试了该应用程序。

a7a074859926e23a8822e12a33fd22c7.png

您可以实施更复杂的逻辑来获得更好的用户体验,例如,在提示包含不安全的信息时拒绝请求。此外,您可以制定重试策略,在提示是安全的、但输出不安全时,重新生成图像。

预定义负向提示列表

Stable Diffusion 支持负向提示,这样您便可以指定在图像生成期间要避免的提示。创建预定义的负向提示列表是一种实用的主动式方法,用于防止模型生成不安全的图像。我们已经知道,诸如“裸体”、“性感”和“裸露”之类的提示会生成不适宜或者冒犯性的图片,通过添加这些提示,模型可以识别并避开这些提示,从而降低生成不安全内容的风险。

在调用 SageMaker 端点来运行 Stable Diffusion 模型的推理时,可以在 Lambda 函数中管理该实施,传递用户输入中的提示,并传递预定义列表中的负向提示。

尽管这种方法行之有效,但它可能会影响 Stable Diffusion 模型生成的结果并限制其功能。所以,要点在于将其视为审核技术之一,再结合其他方法,例如使用 Amazon Comprehend 和 Amazon Rekognition 进行文本和图像审核。

审核输入提示

文本审核的常用方法是使用基于规则的关键字查找方法,识别输入文本是否包含预定义列表中的任何禁用词或短语。这种方法相对容易实施,对性能的影响很小,成本也更低。但是,这种方法的主要缺点是,它只检测预定义列表中包含的单词,无法检测未包含在列表中的禁用词新变体或修改后的变体。用户还可以尝试使用其他拼写或特殊字符来替换字母,从而绕过规则。

为了解决基于规则的文本审核的局限性,许多解决方案采用混合方法,将基于规则的关键字查找与基于机器学习的毒性监察相结合。两种方法的结合可以提供更全面、更有效的文本审核解决方案,能够检测更大范围内的不当内容并提高审核结果的准确性。

在此解决方案中,我们使用 Amazon Comprehend 自定义分类器来训练毒性监察模型,使用该模型来检测在输入提示中可能存在有害内容、但未检测到明确使用禁用词的情况。借助机器学习的强大功能,我们可以教导模型识别文本中可能存在毒性内容的模式,即使基于规则的方法难于检测到此类模式也没问题。

使用 Amazon Comprehend 作为托管式人工智能服务,可以简化训练和推理。只需两个步骤,您就可以轻松地训练和部署 Amazon Comprehend 自定义分类。请查看我们的研讨会实验室(https://github.com/aws-samples/amazon-rekognition-code-samples/blob/main/content-moderation/04-text-moderation/02-content-moderation-text-toxic-classification.ipynb),了解有关使用 Amazon Comprehend 自定义分类器的毒性监察模型的更多信息。该实验室提供了分步指南,说明如何创建自定义毒性分类器并将其集成到应用程序中。下图展示了此解决方案的架构。

d30706befd2db32332faf7cc645586e0.png

此示例分类器使用社交媒体训练数据集并执行二元分类。但是,如果您对文本审核需求有更具体的要求,请考虑使用更具针对性的数据集来训练 Amazon Comprehend 自定义分类器。

审核输出图像

尽管审核输入文本提示很重要,但它并不能保证对于目标受众而言,Stable Diffusion 模型生成的所有图像都是安全的,因为该模型的输出可能包含一定程度的随机性。因此,审核 Stable Diffusion 模型生成的图像同样重要。

在此解决方案中,我们利用 Amazon Rekognition Content Moderation 这个预先训练过的机器学习模型,检测图像和视频中的不当内容。在此解决方案中,我们使用 Amazon Rekognition DetectModerationLabel API,近乎实时地审核 Stable Diffusion 模型生成的图像。Amazon Rekognition Content Moderation 提供预先训练的 API,用于分析各种不当或冒犯性内容,例如暴力、裸体、仇恨符号等。有关 Amazon Rekognition Content Moderation 分类法的完整列表,请参阅审核内容(https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html)。

以下代码演示了如何使用 Python Boto3 库,在 Lambda 函数中调用 Amazon Rekognition DetectModerationLabel API 来审核图像。此函数获取从 SageMaker 返回的图像字节,并将其发送到 Image Moderation API 进行审核。

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 Image Moderation API 的更多示例,请参阅我们的内容审核图像实验室(https://github.com/aws-samples/amazon-rekognition-code-samples/blob/main/content-moderation/01-image-moderation/01-content-moderation-image.ipynb)。

用于微调模型的有效图像审核技术

微调是一种常用技术,用于根据特定任务来调节预训练的模型。对于 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/)。

用于微调的数据集必须是单个 Amazon Simple Storage Service(Amazon S3)目录,包括您的图像和实例配置文件 dataset_info.json ,如以下代码所示。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 则用于在调用 Stable Diffusion 之前和之后的图像审核。尽管这种方法可以有效地审核输入提示和输出图像,但它可能会增加解决方案的总体成本和延迟,这是需要考虑的问题。

延迟

Amazon Rekognition 和 Amazon Comprehend 均提供了托管 API,具备高可用性和内置的可扩展性。尽管由于输入大小和网络速度可能导致延迟变化,但在此解决方案中,所用两项服务中的 API 都提供了近实时的推理。对于大小小于 100 个字符的输入文本,Amazon Comprehend 自定义分类器端点的处理速度低于 200 毫秒,而对于平均大小小于 1 MB 的文件,Amazon Rekognition Image Moderation API 的速度大约为 500 毫秒。(结果基于使用示例应用程序进行的测试,符合近实时要求。)

总共而言,对 Amazon Rekognition 和 Amazon Comprehend 的审核 API 调用会增加 700 毫秒的 API 调用时间。需要注意的是,根据提示的复杂性和底层基础设施功能,Stable Diffusion 请求通常需要更长的时间。在测试账户中,使用 ml.p3.2xlarge 实例类型,通过 SageMaker 端点调用 Stable Diffusion 模型的平均响应时间约为 15 秒。因此,审核引入的延迟约为总响应时间的 5%,因此对系统整体性能的影响微乎其微。

成本

Amazon Rekognition Image Moderation API 采用基于请求数量的即用即付模式。费用因所用亚马逊云科技区域而异,采用分层定价结构。随着请求数量的增加,每次请求的成本会降低。有关更多信息,请参阅 Amazon Rekognition 定价(https://aws.amazon.com/rekognition/pricing/)。

在此解决方案中,我们使用了 Amazon Comprehend 自定义分类器,并将其部署为 Amazon Comprehend 端点,以协助进行实时推理。这种实施会产生一次性训练成本和持续的推理成本。有关详细信息,请参阅 Amazon Comprehend 定价(https://aws.amazon.com/comprehend/pricing/)。

使用 Jumpstart,您可以将 Stable Diffusion 模型作为单个软件包来快速启动和部署。在 Stable Diffusion 模型上运行推理将产生底层 Amazon Elastic Compute Cloud(Amazon EC2)实例费用,以及入站和出站数据传输费用。有关详细信息,请参阅 Amazon SageMaker 定价(https://aws.amazon.com/sagemaker/pricing/)。

小结

在这篇文章中,我们概述了一个示例解决方案,该解决方案展示了如何使用 Amazon Comprehend 和 Amazon Rekognition,审核 Stable Diffusion 输入提示和输出图像。此外,您可以在 Stable Diffusion 中定义负向提示,以防止生成不安全的内容。通过实施多个审核层,可以大大降低生成不安全内容的风险,从而确保更安全、更可靠的用户体验。

详细了解亚马逊云科技上的内容审核(https://aws.amazon.com/solutions/guidance/content-moderation-on-aws/)以及我们的内容审核机器学习使用场景(https://aws.amazon.com/machine-learning/ml-use-cases/content-moderation/),并迈出使用亚马逊云科技简化内容审核操作的第一步。

  • Original URL: 

    https://aws.amazon.com/blogs/machine-learning/safe-image-generation-and-diffusion-models-with-amazon-ai-content-moderation-services/

本篇作者

d2de73429f7319e8fc397707f83f7ed4.png

Lana Zhang

亚马逊云科技 WWSO 人工智能服务团队的高级解决方案架构师,专门研究用于内容审核、计算机视觉和自然语言处理的人工智能及机器学习。她运用自己的专业知识,致力于推广亚马逊云科技人工智能/机器学习解决方案,并协助社交媒体、游戏、电子商务以及广告和营销等各个行业中的客户,实现业务解决方案转型。

a2aa865d30514a226e180f21950eff5c.jpeg

James Wu 

亚马逊云科技的高级人工智能/机器学习专家解决方案架构师,协助客户设计和构建人工智能/机器学习解决方案。James 的工作涵盖大量机器学习使用案例,主要兴趣是计算机视觉、深度学习和在整个企业中扩展机器学习。在加入亚马逊云科技之前的 10 多年间,James 曾担任架构师、开发人员和技术负责人,其中 6 年在工程领域,4 年在营销和广告行业。

8d71474d2f3c3a0df67d97a3a5cb9f8a.png

Kevin Carlson

亚马逊云科技的首席人工智能/机器学习专家,专注于计算机视觉,领导 Amazon Rekognition 的业务开发和 GTM 团队。加入 亚马逊云科技之前,他曾在财富 500 强工程公司 AECOM 负责全球数字化转型,专注于用于生成式设计和基础设施评测的人工智能和机器学习。他住在芝加哥,工作之余他喜欢和家人共度时光,爱好驾驶飞机和执教青少年棒球。

111e45e3ea7edcaa6d5c4791e4ad5245.jpeg

John Rouse

亚马逊云科技的高级人工智能/机器学习专家,负责人工智能服务的全球业务开发,重心放在内容审核与合规性使用案例上。加入 亚马逊云科技之前,他曾在尖端科技公司担任高级业务开发和领导职务。John 致力于让机器学习成为每个开发人员在亚马逊云科技人工智能/机器学习堆栈中的利器。小的想法只能带来小的影响。John 的目标是增强客户的能力,为客户带来宏大的计划和机会,为他们打开大门,从而给其用户带来巨大的影响。

9318a03bac96545771ef206d6504c015.gif

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

3e3aa628e43fef0dea8a500b3484fe2d.gif

听说,点完下面4个按钮

就不会碰到bug了!

e0b8eee6258adef8c22f4b54f36078c0.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1002914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

继续聊聊API接口

什么是API接口 API接口(Application Programming Interface Interface)是应用程序与开发人员或其他程序互相通信的方式。它允许开发者访问应用程序的数据和功能。 API接口,软件的“握手”与“交流”之道,软件世界的“好基友”。想让软件聊得来?想开发App却无从下手?API来相救…

一文讲清楚:SaaS系统是什么?优势在哪?盘点国内行业龙头SaaS系统!

SaaS系统究竟是什么&#xff1f;应该如何了解SaaS系统&#xff1f;在SaaS系统飞速发展的2023年&#xff0c;国内涌现出了一大批优秀的SaaS系统公司&#xff0c;都有哪些企业位列其中呢&#xff1f;SaaS系统有着什么样独特的竞争力&#xff0c;能够不断发展&#xff0c;成为目前…

无涯教程-JavaScript - NPER函数

描述 NPER函数基于定期,固定付款和固定利率返回投资的期数。 语法 NPER (rate,pmt,pv,[fv],[type])争论 Argument描述Required/OptionalRateThe interest rate per period.RequiredPmt 在每个期间付款。 在年金的使用期限内,它不能改变。 通常,pmt包含本金和利息,但不包含其…

快递物流博览会开幕,多家快递企业黑科技齐聚亮相

快递物流供应链|分拣系统|AGV机器人|新能源物流车|绿色包装|自动识别|冷链物流 2024年4月12-14日 | 杭州国际博览中心 同期展会&#xff1a;2024中国数字物流技术与应用展 2024国际电商物流包装产业展 2024新能源商用车、物流车展 指导单位&#xff1a;浙江省邮政管理局 中…

c++ 学习之类型,常量以及变量的重点知识

const 和 volatile 组合考点 const int ( * ) 等价于 int const ( * ) const int x 1 ; 说明 x 是常量&#xff0c;无法修改 如何区分指针常量和常量指针 指针常量 为 先有指针后有常量 故为 形式如 &#xff1a; int * const p & x ; 且const 修饰的是 p &#xff0c…

Falcon 180B 目前最强大的开源模型

Technology Innovation Institute最近发布了Falcon 180B大型语言模型(LLM)&#xff0c;它击败了Llama-2 70b&#xff0c;与谷歌Bard的基础模型PaLM-2 Large不相上下。 180B是是Falcon 40B模型一个最新版本。以下是该模型的快速概述: 180B参数模型&#xff0c;两个版本(base和…

基于Python+Django实现一个电商购物网站系统

随着互联网的高速发展&#xff0c;电子商务行业也正迎来了其黄金时代。如何搭建一个功能完备、体验良好的电商网站成了许多开发者的关心话题。今天&#xff0c;我将带大家使用Python语言和Django框架&#xff0c;快速打造一个电商购物系统。如果你有一定的Python基础&#xff0…

java Math类中的random方法和Random类中方法的区别

文章目录 Math类中的random()方法Random类 Math类中的random()方法 Math类中的random()方法没有参数&#xff0c;它会默认返回等于0.0、小于1.0的double类型随机数。对double()方法返回的数字稍加处理&#xff0c;即可实现任意范围随机数的功能 public class MathTest {publi…

小白备战大厂算法笔试(六)——堆

文章目录 堆常用操作堆的实现存储与表示访问堆顶元素元素入堆元素出堆 常见应用建堆操作自上而下构建自下而上构建 TOP-K问题遍历选择排序堆 堆 堆是一种满足特定条件的完全二叉树&#xff0c;主要可分为下图所示的两种类型。 大顶堆&#xff1a;任意节点的值 ≥ 其子节点的值…

什么牌子的led台灯质量好?Led台灯品牌质量排行榜

台灯如何选择&#xff0c;随着人们生活水平的提高及科技的不断进步&#xff0c;台灯的品质也得到了极大的提高&#xff0c;在生活中很多时候都需要使用台灯&#xff0c;但是市面上的台灯那么多&#xff0c;台灯如何选择。推荐五款质量高的护眼台灯。 一、书客护眼台灯L1 书客…

Spring学习笔记——4

Spring学习笔记——4 一、基于AOP的声明式事务控制1.1、Spring事务编程概述1.2、搭建测试环境1.3、基于XML声明式事务控制1.4、基于注解声明式事务控制 二、Spring整合web环境2.1、JavaWeb三大组件作用及其特点2.2、Spring整合web环境的思路及实现2.3、Spring的Web开发组件spri…

基础术语和模式的学习记录

1 范围 本文件界定了政府和社会资本合作(PPP) 的基础术语&#xff0c;给出了政府和社会资本合作(PPP) 的 模 式 分类和代码。 本文件适用于政府和社会资本合作(PPP) 的所有活动。 2 规范性引用文件 本文件没有规范性引用文件。 3 基础术语 3.1 PPP 主体 3.1.1 政府和社…

Tensorflow 01(介绍)

一、Tensorflow 深度学习框架TensorFlow一经发布&#xff0c;就受到了广泛的关注&#xff0c;并在计算机视觉、音频处理、推荐系统和自然语言处理等场景下都被大面积推广使用&#xff0c;现在已发布2.3.0版本&#xff0c;接下来我们深入浅出的介绍Tensorflow的相关应用。 Tens…

Redis模块一:缓存简介

目录 缓存的定义 应用 生活案例 程序中的缓存 缓存优点 缓存的定义 缓存是⼀个高速数据交换的存储器&#xff0c;使用它可以快速的访问和操作数据。 应用 1.CPU缓存&#xff1a;CPU缓存是位于CPU和内存之间的临时存储器&#xff0c;它的容量通常远小于内存&#xff0…

Minio入门系列【1】Windows/Linux/K8S单机部署Minio

1 Minio简介 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象文件可以是任意大小&…

配置服务器实现无缝连接

在进行网络爬虫时&#xff0c;经常会面临目标网站的IP封锁、反爬虫策略等问题。为了解决这些问题&#xff0c;配置代理服务器是一种常见的方法。本文将向您介绍如何配置代理服务器与爬虫实现无缝连接&#xff0c;助您顺利进行数据采集。 一、了解代理服务器的作用 代理服务器…

数字经济时代,企业的核心竞争力究竟是什么?

数字经济时代&#xff0c;企业的核心竞争力是由技术、数据、创新等因素综合驱动的。主要包含以下部分&#xff1a; 1.数字化转型&#xff1a;企业成功进行数字化转型的能力至关重要。这涉及将数字技术集成到业务的所有领域&#xff0c;从根本上改变其运营方式以及为客户提供价…

买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队

引言 《双色球头奖概率与被雷劈中的概率哪个高&#xff1f;》 《3人轮流射击&#xff0c;枪法最差的反而更容易活下来&#xff1f;》 让我们用Java来探索ta们&#xff01; 悖论1&#xff1a;著名的三门问题 规则描述&#xff1a;你正在参加一个游戏节目&#xff0c;你被要…

自动化运维——ansible (五十三) (02)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、模块 1.1 playbook 1.1.1 YMAL格式 1.1.2 playbook实例 1.1.3 Playbook常见语法 1.1.4 playbook编排多个hosts任务 1.2 roles 1.2.1 roles介绍 1.2.2 创建role…

【开发】视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理&#xff0c;可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛&#xff0c;包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …