【极验黑科技】文生图大模型在极验人机对抗领域的应用

news2024/11/17 11:38:20

自极验于2013年开创性地提出新一代的智能验证码概念开始,就始终在人机对抗领域不停地升级迭代。极验全球首创的“行为式验证”在十多年来,为全球近40万的开发者使用。如小米、新浪微博、东方航空、国家工商局等企业携手极验验证码进行升级,使得现在传统的字符验证码逐步退出了历史舞台,每日极验的API调用量高达数10亿次,每一次API的响应,都是对机器黑产的对抗和用户体验的升级。

随着人机对抗的升级,极验也在不停地利用新技术创造更安全的验证服务和更极致的用户体验。早在16年,极验便将Neural style transfer 技术运用到人机对抗的实践中去,这是典型的将安全与体验兼得的验证方式,并取得令客户赞赏的效果。

Neural style transfer 原理图

将“语意理解”与“Neural style transfer”相结合而得出的新的验证过程

专利号:ZL 201830130077.X

随着大规模文生图模型已经成熟,极验也在技术前沿探索,并将新技术进一步应用到人机对抗领域,今天我们主要分享一下这方面的相关过程和进展,以及一些实验数据。

文生图模型原理

文生图模型是一种多模态深度学习模型,它可以从文本描述生成与描述相匹配的图像。其核心原理是将自然语言文本转换为图像空间,同时将视觉特征与语言信息相互联系起来,以实现自然语言文本与图像之间的映射。

文生图模型通过大量成对的文本描述和相应图像的数据集进行训练。在训练过程中,模型学习从文本中提取相关特征,并将它们映射到图像中相应的视觉特征。这个过程涉及到语义理解和图像合成。

一旦模型训练完成,它就可以用于从它以前没有见过的新文本描述中生成图像。为此,模型首先将文本描述编码为一个特征向量,然后使用生成器网络合成与该特征向量相对应的图像。

文生图模型可用于各种应用,例如为电子商务网站生成真实的产品图像,为残障人士创建视觉辅助工具,为虚拟和增强现实应用程序生成图像以及验证码图片素材的制作。

图片生成过程中存在的一些问题和解决办法

图片的生成过程,主要面临着图片的准确性、可控性、规模性三方面。

2.1 准确性

大部分开源预训练模型是基于英文构建的,翻译的过程中会产生歧义,从而产生图文不匹配的情况。

第一张图为某文生图模型demo展示的效果,原因是“起重机”被翻译成了“Crane”,而这个单词的另一个含义是“仙鹤”。

下面两张图是基于现有的提示词库生成九宫格图片遇到的一种特殊情况,第一张图的prompt为(electric, mouse)。这里的第一个问题是“鼠标”被翻译成了“老鼠”,而另一个问题是坐标为[1, 2]的图片出现了明显的图文不匹配,这个问题在第二张图(提示词为罐头)中同样存在。由此可见,在借助文生图模型生成素材的过程中仍然需要引入一定程度的人工校验,而这个问题在大规模应用中可能会被放大。

下面这张图,我们将模型更换为卡通风格,提示词依然是(electric, mouse)。这次很“幸运”,同时集齐了歧义和敏感两个要素。

2.2 可控性

敏感素材以及公平和偏见的问题,这类问题可以通过safety-checker解决一部分,但无法杜绝,可以考虑通过如下方式进行规避:

1)数据采集在训练模型之前,需要使用多样化的数据集来确保生成的图像不具有偏见或歧视。数据集应包括各种背景、文化和种族的人物和场景,以确保生成的图像不会出现偏见或歧视。

2)模型训练训练文本到图像的模型时,需要确保使用公正和公平的方法来训练模型。例如,可以使用一种叫做"公平性约束"的技术来确保生成的图像不包含歧视性特征。该方法通过约束模型在生成图像时不能出现歧视性特征,如年龄、种族、性别等,从而消除歧视。

3)监督和审核在模型训练和图像生成过程中,需要进行人工审核和监督,以确保生成的图像符合伦理和道德标准。审核人员应该接受适当的培训,以了解文化敏感性和歧视问题,并对可能引起争议的图像进行审查。

4)避免敏感主题:为了避免潜在的歧视问题,可以避免生成与种族、性别、宗教、政治或其他敏感主题相关的图像。

5)公开透明:需要公开透明地展示如何训练模型、使用数据集和进行审核,以便公众和业内人士能够了解这些技术的使用和潜在影响。

2.3 规模性

大批量素材生成涉及到计算资源投入产出比问题,以及后续gpu资源的调度和扩展。这里我们有三个诉求:

1)模型服务化,尤其是涉及到大模型,必然会存在gpu的调用,这部分资源在云上成本比较高。

2)在初期,为了把控一次性投入,希望既能使用到gpu资源又能按量付费,避免昂贵的月租,提高资源利用率。

3)模型服务代码量尽可能小,且便于横向扩展。

为此我们基于Ray和K8s构建了如下的模型服务:

通过上图所示架构,我们可以以最小的代码量来部署一个模型服务,这部分以后有机会可以展开说明。

文生图大模型的人机对抗的实践应用

以上图片均为文生图大模型AI自动化生成,并在线上得到应用的场景

结语

人机验证码领域的图片生成的投入,主要解决的是“模型破解”和“人工打码”,这两种破解方式往往又不是独立进行,在特定情况下会产生人工标记训练后进行模型训练后进行自动对抗。所以,对于线上图片的更新,最后落脚之处还是在于图片的更新速度、图片的抗模型训练能力。

目前,极验每日API调用量高达数10亿次,在图片对抗的积累上,已经形成高标准的服务方案。极验按照线上所有图库资源进行每小时5万张、200个类别的自动更新的速率进行自动化更新,同时针对于瞬时要求比较高的客户,可以单独进行10分钟1万张、50个类别的速率自动化更新。现在,文生图大模型的进度,将会进一步加快更新速率,真正做到“世界上没有两片相同的树叶”,让黑产对抗的成本得到指数级的提升,从而放弃针对极验客户的攻击。

那么,前面介绍了我们在文生图大模型的投入,效果如何呢?我们将在下一期的文章中介绍:

1、文生图大模型的实际对抗数据分享2、文生图大模型的验证防破解优势

我们下期再见~

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

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

相关文章

4.AI人工智能大模型汇总:类GPT系列模型、模型中转站Auto-GPT、多模态大模型、视觉模型、自然语言模型

AI人工智能大模型汇总:类GPT系列模型、模型中转站Auto-GPT、多模态大模型、视觉模型、自然语言模型 模型名称发布方类型开源类型原始模型框架paddle版本模型能力模型语言模型参数简介模型链接体验链接paddle版本链接项目链接备注发布日期创建人模型星火认知大模型科大讯飞语言…

RecyclerView使用示例(瀑布流)

RecyclerView使用示例 效果图代码示例ShopFragment.java(显示RecyclerView的Fragment)fragment_shop.xml(相对应的xml文件)GoodsData.java(数据源)GoodsAdapter.java(适配器类)adapt…

WebGIS支持国内各地方坐标系数据展示的方案

在我们的实际项目开发过程中,会存在着很多的客户提供的数据是地方坐标系的数据,这些数据通常是一些类似于地块数据,点位数据等等的矢量数据。如何加载这些数据可能会让大家有些头疼。我们这篇文章来给大家提供几种解决方案。 首先要清楚一个基础的地理学知识,那就是地理坐…

springboot项目网站部署到服务器

用eclipse跟着教程做了一个网站,java语言,springboot项目。在本地电脑上运行成功后,想把它部署到线上,通过网络访问。下面是我自己作为新手自己摸索出来的一个方法,供读者参考。 目录 1. jar包 2. 服务器 3. jdk 和 T…

virtualbox ubuntu20.04集群网络配置

这个问题困扰我一年之久。 大三学期的课程,因为集群网络问题卡壳。当时查阅各种资料,百度几十篇文章,看博客,甚至是请教老师都没能解决,也因为这个问题导致Hadoop后面都没有实操学习。 今大四毕业之际,又…

react setState 中使用函数替代对象

遇到的问题&#xff1a; 调用很多次 setState, 最后的值并不是我想要的值 -偶现问题(60%) 修改前代码 const [data, setData] useState<T>((options?.initialValues || {}) as T);const resetForm (values: Partial<T>) > {// 常用写法 -此刻data&#xff0…

外链建设技巧,助你成为搜索引擎中的佼佼者!

终于&#xff0c;SEO 系列来到了正篇的终章&#xff0c;恭喜你&#xff0c;你很快就可以向更加专业的 SEO 专家再迈进一步了&#xff01; 今天&#xff0c;我们将和你一起&#xff0c;带上之前所学的知识、技巧&#xff0c;从实战出发&#xff0c;像手术台上的主刀医生那样&am…

16:00面试,16:08就出来了 ,问的实在是太...

从外包出来&#xff0c;没想到算法死在另一家厂子 自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有个兄弟内推我…

通过systemctl管理服务

文章目录 通过systemctl管理服务通过systemctl管理单一服务(service unit)使用案例服务启动/关闭/查看的练习关于systemctl命令启动/停止服务后面的后缀名是否加&#xff1f; 通过systemctl查看系统上所有的服务使用案例 通过systemctl管理不同的操作环境(target unit)使用案例…

面试京东失败,再看看2年前的面试题,根本不是一个难度···

刚从京东走出来&#xff0c;被二面难到了&#xff0c;我记得学长两年前去面试的时候&#xff0c;问的问题都特别简单&#xff0c;咋现在难度高了这么多。面试前我也刷过很多的题和看过很多资料&#xff0c;后来想想&#xff0c;这年头网上资料泛滥&#xff0c;测试面试文档更是…

JVM 方法区

栈、堆、方法区的交互关系 线程共享角度: 新建对象分配: 方法区的理解 方法区(Method Area) 与 Java 堆一样&#xff0c;是各个线程共享的内存区域方法区在 JVM 启动的时候被创建&#xff0c;并且它的实际物理内存空间中和 Java 堆区一样都可以不连续的方法区的大小&#xf…

08-02 底层数据设计策略 - 分库分表,热点热数据隔离

关系型数据库的伸缩 读写分离 缓存和搜索引擎本质上也是一种读写分离 商品是典型的读多写少的场景 分库分表 略知一二 分表 分库 业务量大的数据基本都得使用分库分表&#xff0c;不然单表的数据量大之后&#xff0c;性能太差 数据迁移和扩容 成倍扩容 直接…

centos搭建redis并配置redis主从复制

一、gcc环境搭建 1.检查是否有gcc环境&#xff1a; gcc -v#运行命令 gcc -v #如果显示:-bash: gcc: command not found # 表示没有该环境 #如果显示下文&#xff0c;代表有gcc环境 Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redha…

Java中ArrayList的三种构造方法

ArrayList的构造方法 //三种构造方法 ArrayList()// 无参构造 ArrayList(Collection<? extends E> c) //利用其他 Collection 构建 ArrayList ArrayList(int initialCapacity) //指定顺序表初始容量1.无参构造方法 其中elementData是一个成员数组&#xff0c;类型是Ob…

什么是敏捷开发?敏捷开发流程的8个步骤

文章目录 一、什么是敏捷开发&#xff1f;二、敏捷开发模式的分类三、SCRUM 的工作流程四、敏捷开发流程的8个步骤包括&#xff1a;五、敏捷开发模型 一、什么是敏捷开发&#xff1f; 敏捷开发&#xff08;Agile&#xff09;是一种以人为核心、迭代、循序渐进的开发方法。 在…

phpstorm 配置xdebug

目录 配置全局环境 phpstorm 项目xdebug配置 额外补充&#xff1a; 配置全局环境 本地运行命令 php -v, 看是否有Xdebug相关的信息若没有&#xff0c;安装xdebug&#xff0c;以下是mac相关方式&#xff1a; pecl search xdebug 查询&#xff0c;找到之后用 pecl install xdebug…

【企业信息化】第4集 免费开源ERP: Odoo 16 Rental租赁管理系统

文章目录 前言一、概览二、使用功能1.提高出租效率2.产品 & 价格3.销售订单4.跟进5.报告6.集成 三、总结 前言 唯一可以满足您所有需求的租赁软件 从时间安排到开具发票。 您的所有租赁流程都集中在一处。 一、概览 从租金报价到发票 从一处管理所有事务。 从一个视图创建您…

强力推荐,两款Excel插件,极致好用,让你秒变高手

Excel是我们日常生活工作中应用最多、业界最标准的表格软件。 由于Excel的用户数量非常庞大&#xff0c;在社区支持方面非常丰富&#xff0c;用户可以轻松地找到各种教程和解决方案。 虽然Excel很功能已经成熟&#xff0c;但自身也存在一定的局限性&#xff0c;很多用户在网上…

git仓库新建项目第一次推送代码流程记录

git仓库新建项目第一次推送代码流程记录 换了个坑之后,公司改用SVN管理代码,隔了好长时间没用git,突然又捡起来,有点懵逼,简单记录一下。 电脑安装git之后,在项目父文件夹处,右键选择“Git Bash Here”打开git小黑窗。 在gti后台创建新项目目录之后,如果是空的项目,…

洛谷P1909-买铅笔

洛谷P1909-买铅笔 大家来看一道简单的题&#xff0c;第一次写的时候我过了一半&#xff0c;看了半天自己的代码&#xff0c;还感觉没问题&#xff0c;还是学艺不精啊 先看题目 #include <iostream> using namespace std; int n;//要买的铅笔数 int n1,m1; int n2,m2; i…