案例分享 | Amazon EC2助力Deepfake检测挑战赛

image

2019年10月,AWS 宣布将与 Facebook、微软以及 Patnership on AI 共同组织首届 Deepfake 检测挑战赛。算法

Deepfake 算法所使用的底层技术,与电影及主机游戏中为咱们带来逼真动画效果的方法彻底相同。遗憾的是,恶意人士使用这些无辜的算法模糊了现实与虚假之间的区别。Deepfake 视频的本质,在于使用人工智能操纵音频与视频,致使最终结果呈现出人物作出或说出了客观上并不存在的行为或语言。关于 Deepfake 的更多详细信息,请参阅 Partnership on AI 指导委员会关于 AI 及媒体完整性的说明安全

在机器学习(ML)领域,生成对抗网络(GAN)算法已经成为构建 Deepfake 的最流行算法。GAN 中包含两套神经网络:一套为生成网络,经过向原始数据中添加噪声以生成候选对象;另外一套为判断网络,负责对数据进行评估直到创建起强大的合成/伪造识别能力。GAN 以对抗方式将两套网络匹配起来,借今生成能够传递至实际数据的新的合成数据实例。这意味着最终得出的 Deepfake 数据,将拥有与普通数据集没法区分的吻合性。服务器

本次挑战赛的目标,在于激励世界各的研究人员创建起可以帮助检测 Deepfake 以及媒体操纵行为的创新方法。本轮竞赛于2020年3月31日结束,并在 Kaggle 数据科学社区中大受欢迎。竞赛结束后,Facebook 团队在 AWS 上托管了 Deepfake 挑战赛数据并面向全世界发布,鼓励更多研究人员继续尝试解决这一难题。网络

全球2300多支参赛队伍总计提交了4200多种解决方案。参赛做品将由如下记录丢失函数进行评分,分数越高表明效果越好(关于得分的更多详细信息,请参阅竞赛规则)。
image
下面来看本次竞赛中使用的四组数据集:架构

  • 训练数据集:各参与队伍使用此数据集训练本身的模型。数据集中包含470GB 视频文件,全部视频皆附有真实与伪造标签。
  • 公开验证数据集:包含来自测试数据集的400段视频样本。
  • 公开测试数据集:供 Kaggle 平台用于计算公开排行榜
  • 内部测试数据集:由Kaggle竞赛平台以外的 Facebook 团队主办方用于为比赛结果打分。使用内部测试数据集评估得出的结果,将显示在竞赛的内部排行榜上。这套视频中包含在格式与属性方面,同训练、公共验证以及测试数据集极为类似的视频素材,且同时涵盖真实天然视频与伪造视频两大类别。

在竞赛截止日期以后,Kaggle 各个团队的两份最终提交代码交付给竞赛主办方。主办团队将在内部数据集上从新运行这些提交代码,并将预测结果提交至 Kaggle 以计算最终内部排行榜得分。提供代码将匹配两种类型的计算虚拟机(VM):基于 GPU 型与基于 CPU 型。大部分提交代码由基于 GPU 型虚拟机处理。并发

Facebook 的比赛主办团队很快发现,远超计划的竞赛参与规模给评估工做带来了很多挑战。在使用 p3.2xlarge Amazon Elastic Compute Cloud(Amazon EC2)P3实例的状况下,每项提交代码须要9个 GPU 小时才能处理完成,而竞赛总计迎来4200多项提交代码。换言之,他们大概须要42000个 GPU 小时(将近5年)的计算时间才能给出竞赛评估结果。但这无疑会令比赛失去意义。为此,他们须要想办法在3周以内完成5年的总 GPU 计算量。机器学习

鉴于时间紧迫,主办团队必须克服制约因素,努力在指定的时间与预算范围内完成评估。函数

运营效率

因为团队规模较小,为了知足紧张的比赛时间并提升工做效率,实际解决方案必须具有较低的代码要求。为此,Facebook 主办团队决定使用 AWS Batch 以规划及扩展计算工做负载。下图所示,为这套解决方案的基本架构。
image
AWS Batch 的最初设计主要面向开发人员、科学家以及工程师们的实际需求,帮助他们在不具有代码编写或云基础设施架构经验的前提下,在 AWS 之上高效管理大量批处理计算做业。无需安装及管理批处理计算软件或服务器集群,用户将能够专一于分析并解决问题。AWS Batch 还提供计划调度与向外扩展选项,可以将批处理计算工做负载分发至多种 AWS 计算服务(例如 Amazon EC2 与竞价实例)当中。另外,AWS Batch 提供的集群资源管理方案无需额外成本。在本用例中,主办团队直接提交4200项计算做业,每项做业各自注册为单一 Kaggle 提交容器,且各自运行9个小时。使用这样的实例集群,所有做业都得以在三周时间以内快速处理完成。性能

弹性

竞赛时间紧迫,也就表明各实例的运行周期不会太长,所以要求计算资源具有出色的弹性。例如,主办团队可能估计至少须要全天候并行运行85个 Amazon EC2 P3 GPU 才能完成提交代码评估。为了解决从新启动及其余可能致使时间浪费的意外情况,可能还须要额外增长50%的冗余容量。为了实现这些目标,Facebook 必须有能力迅速扩大评估时所使用的 GPU 与 CPU 数量,并在做业完成后及时收缩规模,且仅按实际资源使用量支付费用。单从预算及运营角度出发,这种方式的实际效率要远远高于在本地获取、安装与配置计算资源。学习

安全性

安全性又是另外一个重要问题。面对如此众多的竞赛参与者,提交内容当中可能包含病毒、恶意软件、僵尸程序或者 Rootkit。在沙箱云环境中运行这些容器可以有效避免相关风险。若是评估环境受到各种感染因素的影响,则能够终止该环境并轻松完成重建,而不致令任何生产系统遭遇停机或数据丢失等问题。

隐私与保密

隐私与保密都属于同安全问题密切相关的重要因素。为了解决这些问题,全部提交代码及数据都被保存在具有虚拟私有云(VPC)且使用 AWS 身份与访问管理(AWS Identity and Access Management,简称IAM)权限限制机制的 AWS帐户当中。为了保证所提交模型的保密性以及评分的公平性,将由一位专门的工程师负责执行评估工做,且其不会触及各团队提交的任何Docker镜像。

成本

主办团队须要考虑的另外一项重要因素,正是成本。根据初步估算,42000个小时的 Amazon EC2 P3 实例运行周期将花费约125000美圆。

为了下降 GPU 计算成本,主办团队经过评估意识到 Amazon EC2 G4(采用英伟达 Tesla T4 GPU)实例类型相较于P3实例(采用 Volta 100 GPU)在处理此工做负载方面更具成本效益。在云端 GPU 实例当中,Amazon EC2 G4 也是一类适合用于部署机器学习模型的高效通用 GPU 实例。

这些实例针对机器学习应用程序部署(推理)进行了优化,优化范围涵盖图像分类、对象检测、推荐引擎、自动语音识别以及语言翻译等等,经过多个层面推进 AI 创新、优化延迟水平。

主办团队使用 G4 实例类型进行了一系列测试运行,并发现单次代码提交测试的运行时间为 P3 实例运行时间的两倍以上,所以总计算时长将增长到约90000个小时。然而,G4 实例每小时的使用成本要比 P3 实例低83%。尽管使用 G4 实例的状况下各项做业的运行时间更长,但整体计算成本仍然从125000美圆快速下降至不足50000美圆。下表所示,为 G4 实例类型在处理单项推理做业时的成本效益:
image
主办团队分享称,大部分提交代码的评估完成时间要比预期更短。最初预测基于早期提交的模型,但该模型的体量要大于所有提交模型的平均大小。约有80%的运行采用 G4 实例类型,但也有部分运行必须在 P3 实例上实现 —— 这是由于两种实例类型的可用 GPU 内存略有差异。最终数字为:25000个 G4(GPU)计算小时、5000个 C4(CPU)计算小时以及800个P3(GPU)计算小时,整体计算成本为20000美圆。通过约两周的全天候评估,主办团队成功完成了这项极具挑战性的任务,且在预期时间段内只花掉50000美圆初期预算的一半不到。

总结

主办团队最终在极短期内完成了对4200多项提交代码的全面评估,并在充分知足公平性标准的前提下将预算控制在合理范围内。主办团队还成功复制了评估环境,成功率为94%,从而充分知足了双轮赛制提出的实际需求。

因为技术的不肯定性,软件项目每每极易产生风险;种种内在复杂性与约束条件的存在,更是令软件项目雪上加霜。凭借 Amazon EC2 上极具深度与广度的 AWS 服务选项,你们能够显著减小技术不肯定性以解决您所面对的独特挑战。以此为基础,Facebook 团队在单独一位软件工程师的帮助下,按时在预算范围内完成了 Deepfake 评估挑战。工程师首先选择了低代码解决方案 AWS Batch(丰富的案例证实,其可以从容处理更大规模的高性能计算类工做负载),然后经过 AI 推理优化型 EC2 G4 实例类型将评估成本下降达三分之二。

AWS 一直认为,不存在百试百灵的单一解决方案。任何最佳解决方案都是由多个构建单元所灵活构成,咱们能够借此组织起既知足实际需求、又符合优先级排序的解决方案。

image