亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险
生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion是一种文本转图像模型,可以创建栩栩如生的图像应用。通过Amazon SageMaker JumpStart,使用Stable Diffusion模型轻松地从文本生成图像。
尽管生成式人工智能解决方案功能强大,应用广泛,但它们也很容易受到操纵和滥用。用户在使用它们生成图片时,应实施严格的审核程序,高度重视内容审核,以便保护其用户、平台和品牌,在创造安全和积极的用户体验的同时,确保平台和品牌的声誉不会受损。
此篇内容我们将探讨如何使用亚马逊云科技人工智能服务Amazon Rekognition和Amazon Comprehend以及其他技术,近乎实时地有效审核Stable Diffusion模型生成的内容。
解决方案概览
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会将生成的图像和审核警告返回给客户端。

此工作流中的步骤如下:
-
用户发送提示以生成图像。
-
AWS Lambda函数使用Amazon Comprehend、JumpStart和Amazon Rekognition协调图像的生成和审核:
-
将基于规则的条件应用到Lambda函数中的输入提示,使用禁用词检测强制执行内容审核。
-
使用Amazon Comprehend自定义分类器,分析提示文本以进行毒性分类。
-
通过SageMaker端点将提示发送到Stable Diffusion模型,传递提示作为用户输入,并传递预定义列表中的负向提示。
-
将从SageMaker端点返回的图像字节发送到Amazon Rekognition DetectModerationLabel API进行图片审核。
-
如果之前的步骤在提示或生成的图像中检测到任何不当信息,则会构造包含图像字节和警告的响应消息。
-
服务将响应发送回客户端。
以下屏幕截图显示了使用上述架构构建的示例应用程序。Web UI将用户输入提示发送到RESTful代理API,并显示从响应中收到的图像和所有审核警告。如果实际生成的图像包含不安全的内容,则演示应用程序会对内容进行模糊处理。我们使用示例提示“一位性感女士”测试了该应用程序。

您可以实施更复杂的逻辑来获得更好的用户体验,例如,在提示包含不安全的信息时拒绝请求。此外,您可以制定重试策略,在提示是安全的、但输出不安全时,重新生成图像。
预定义负向提示列表
Stable Diffusion支持负向提示,这样便可以指定在图像生成期间要避免的提示。创建预定义的负向提示列表是一种实用的主动式方法,用于防止模型生成不安全的图像。在调用SageMaker端点来运行Stable Diffusion模型的推理时,可以在Lambda函数中管理该实施,传递用户输入中的提示,并传递预定义列表中的负向提示。
尽管这种方法行之有效,但它可能会影响Stable Diffusion模型生成的结果并限制其功能。所以,要点在于将其视为审核技术之一,再结合其他方法,例如使用Amazon Comprehend和Amazon Rekognition进行文本和图像审核。
审核输入提示
文本审核的常用方法是使用基于规则的关键字查找方法,识别输入文本是否包含预定义列表中的任何禁用词或短语。这种方法相对容易实施,对性能的影响很小,成本也更低。但是,这种方法的主要缺点是,它只检测预定义列表中包含的单词,无法检测未包含在列表中的禁用词新变体或修改后的变体。用户还可以尝试使用其他拼写或特殊字符来替换字母,从而绕过规则。
为了解决基于规则的文本审核的局限性,许多解决方案采用混合方法,将基于规则的关键字查找与基于机器学习的毒性监察相结合。两种方法的结合可以提供更全面、更有效的文本审核解决方案,能够检测更大范围内的不当内容并提高审核结果的准确性。
在此解决方案中,使用Amazon Comprehend自定义分类器来训练毒性监察模型,使用该模型来检测在输入提示中可能存在有害内容、但未检测到明确使用禁用词的情况。借助机器学习的强大功能,可以教导模型识别文本中可能存在毒性内容的模式,即使基于规则的方法难于检测到此类模式也没问题。
使用Amazon Comprehend作为托管式人工智能服务,可以简化训练和推理。只需两个步骤,就可以轻松地训练和部署Amazon Comprehend自定义分类。
审核输出图像
尽管审核输入文本提示很重要,但它并不能保证对于目标受众而言,Stable Diffusion模型生成的所有图像都是安全的,因为该模型的输出可能包含一定程度的随机性。因此,审核Stable Diffusion模型生成的图像同样重要。
在此解决方案中,利用Amazon Rekognition Content Moderation这个预先训练过的机器学习模型,检测图像和视频中的不当内容。在此解决方案中,使用Amazon Rekognition DetectModerationLabel API,近乎实时地审核Stable Diffusion模型生成的图像。Amazon Rekognition Content Moderation提供预先训练的API,用于分析各种不当或冒犯性内容,。
用于微调模型的有效图像审核技术
微调是一种常用技术,用于根据特定任务来调节预训练的模型。对于Stable Diffusion,微调可用于生成包含特定对象、样式和字符的图像。在训练Stable Diffusion模型以防止创建不当或冒犯性的图像时,内容审核至关重要。这包括仔细审查并筛选出任何可能导致生成此类图像的数据。通过这样做,模型可以从更多样化和更具代表性的数据点进行学习,从而提高准确性并防止传播有害内容。
审核延迟和成本
此解决方案使用顺序模式来审核文本和图像。文本审核需要调用基于规则的函数和Amazon Comprehend,Amazon Rekognition则用于在调用Stable Diffusion之前和之后的图像审核。尽管这种方法可以有效地审核输入提示和输出图像,但它可能会增加解决方案的总体成本和延迟,这是需要考虑的问题。
延迟
Amazon Rekognition和Amazon Comprehend均提供了托管API,具备高可用性和内置的可扩展性。尽管由于输入大小和网络速度可能导致延迟变化,但在此解决方案中,所用两项服务中的API都提供了近实时的推理。对于大小小于100个字符的输入文本,Amazon Comprehend自定义分类器端点的处理速度低于200毫秒,而对于平均大小小于1MB的文件,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 Comprehend自定义分类器,并将其部署为Amazon Comprehend端点,以协助进行实时推理。这种实施会产生一次性训练成本和持续的推理成本。
使用Jumpstart,可以将Stable Diffusion模型作为单个软件包来快速启动和部署。在Stable Diffusion模型上运行推理将产生底层Amazon Elastic Compute Cloud(Amazon EC2)实例费用,以及入站和出站数据传输费用。
小结
综上所述,概述了一个示例解决方案,该解决方案展示了如何使用Amazon Comprehend和Amazon Rekognition,审核Stable Diffusion输入提示和输出图像。此外,可以在Stable Diffusion中定义负向提示,以防止生成不安全的内容。通过实施多个审核层,可以大大降低生成不安全内容的风险,从而确保更安全、更可靠的用户体验。
相关文章:
亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险
生成式人工智能技术发展日新月异,现在已经能够根据文本输入生成文本和图像。Stable Diffusion是一种文本转图像模型,可以创建栩栩如生的图像应用。通过Amazon SageMaker JumpStart,使用Stable Diffusion模型轻松地从文本生成图像。 尽管生成式…...
2023年高教社杯数学建模思路 - 案例:最短时间生产计划安排
文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…...
算法工程题(二叉树递归)
* 题意说明: * 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 * * 示例 1: * 输入:p [1,2,3]…...
“指针跃动”受邀参加全球贸易服务峰会
“指针跃动”受邀参加全球贸易服务峰会 有“服”同享 共赢未来 引子 在全球化日益盛行的今天,贸易不再仅仅是物质的交流,更涉及到服务、理念、文化和科技的共享。中国国际服务贸易交易会全球贸易服务峰会,就是这个趋势的集中体现。在这次峰会…...
Go Web开发的高级技巧和最佳实践
Go Web开发的高级技巧和最佳实践 欢迎来到Go语言Web开发的高级技巧和最佳实践指南。在这篇文章中,我们将深入探讨Go语言Web应用程序的高级主题,包括性能优化、安全性、部署和微服务架构。 性能优化 性能是Web应用程序的关键因素之一。Go语言以其出色的…...
Verilog 基础知识
1、数值种类 Verilog HDL 有下列四种基本的值来表示硬件电路中的电平逻辑: 0:逻辑 0 或 “假”1:逻辑 1 或 “真”x 或 X:未知 x 意味着信号数值的不确定,即在实际电路里,信号可能为 1,也可能…...
element ui 表格组件与分页组件的二次封装
目录 组件封装 parseTime函数 debounce 函数 页面使用 【扩展】vue 函数式组件 函数式组件特点: 函数式组件的优点: 【扩展】vue中的render函数 一、初步认识render函数 二、为什么使用render函数 三、render函数的解析 组件封装 这段代码是一…...
递归算法学习——有效的数独,解数独
一,有效的数独 1.题意 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#x…...
基于Alexnet深度学习网络的人员口罩识别算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 file_path1 test\mask\;% 图像文件夹路径 %获取测试图像文件夹下所有jpg格式的图像文件…...
【Java Web】利用Spring整合Redis,配置RedisTemplate
1. 在config中加入RedisConfig配置类 package com.nowcoder.community.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFacto…...
如何正确的写出第一个java程序:hello java
1 前言 最近公司由于项目需要,开始撸java代码了。学习一门新的编程语言,刚开始总是要踩很多坑,所以记录一下学习过程,也希望对java初学者有所帮助。 2 hello java 2.1 程序源码 程序内容十分简单,这里就不再过多赘…...
使用llvm 编译最新的linux 内核(LoongArch)
1. 准备交叉工具链 llvm 使用了最新的llvm-17, 编译方法见:编译LoongArch的llvm交叉工具链 gcc 从linux 官方下载:http://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.2.0/x86_64-gcc-13.2.0-nolibc-loongarch64-linux.tar.xz 发布llvm和g…...
Using Multiple RDF Knowledge Graphs for Enriching ChatGPT Responses
本文是LLM系列文章,针对《Using Multiple RDF Knowledge Graphs for Enriching ChatGPT Responses》的翻译。 使用多个RDF知识图来丰富ChatGPT响应 摘要1 引言2 相关工作3 GPT-LODS的过程和用例4 结束语 摘要 最近有一种趋势是使用新型人工智能聊天GPT聊天箱&…...
【Hive-小文件合并】Hive外部分区表利用Insert overwrite的暴力方式进行小文件合并
这里我们直接用实例来讲解,Hive外部分区表有单分区多分区的不同情况,这里我们针对不同情况进行不同的方式处理。 利用overwrite合并单独日期的小文件 1、单分区 # 开启此表达式:(sample_date)?. set hive.support.quoted.identifiersnon…...
位运算 |(按位或) (按位与) ^(按位异或)
目录 文章目录:本章讲解的主要是刷题系列 1:首先会介绍 I & ^这三个操作符的作用,性质 2:三道使用位运算操作符的经典 笔试题(来自剑指offer) 题目链接如下: 1:136. 只出现一次的数字 - 力扣(LeetCode…...
Qt应用开发(基础篇)——复选按钮 QCheckBox 单选按钮 QRadioButton
一、前言 QCheckBox类与QRadioButton类继承于QAbstractButton,QCheckBox是一个带有文本标签的复选框,QRadioButton是一个带有文本标签的单选按钮。 按钮基类 QAbstractButton QCheckBox QCheckBox复选框是一个很常用的控件,拥有开关(选中和未…...
AERMOD模型大气环境影响评价
随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因…...
递归组装树结构的数据
开发中,经常遇到存在树形结构的数据,如行政区划这类数据,一级一级分层,后端需要组装好树形结构数据返回给前端。 由于返给前端的json数据中,如果是叶子节点了,说明它没有子节点,那么就没必要返…...
企业架构LNMP学习笔记7
PHP介绍: HTML:超文本标记语言 http: 超文本传输协议 端口80 浏览器将html代码解析成web页面。 PHP:超文本预处理器。后端语言开发,页面上需要动态改变修改的,需要连接数据库查询数据,转为html。 主要…...
开店星小程序上架教程和后台Request failed with status code 500[undefined]问题处理
开店星小程序上架教程和后台Request failed with status code 500[undefined]问题处理 刚刚安装好开店星网站后台之后都会出现这个code 500[undefined]的错误,需要改一下代码。改好了之后就可以正常使用了。如果大家不懂得这样处理的可以私聊我,帮忙处理…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
