案例分享 | 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 以规划及扩展计算工作负载。下图所示,为这套解决方案的基本架构。
案例分享 | Amazon EC2助力Deepfake检测挑战赛_第1张图片
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 实例类型在处理单项推理作业时的成本效益:
案例分享 | Amazon EC2助力Deepfake检测挑战赛_第2张图片
主办团队分享称,大部分提交代码的评估完成时间要比预期更短。最初预测基于早期提交的模型,但该模型的体量要大于全部提交模型的平均大小。约有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

你可能感兴趣的