hfai datasets | 运转数据入萤火训练的不二法门

High-Flyer    August 29, 2022

幻方 AI 发布了其沉淀多年的深度学习套件 hfai ,吸引了众多同行研究员和开发者们咨询试用。整个套件的功能较多,而熟悉掌握了这套规则,是能够轻松地调用起平台的算力资源,从而高效完成训练任务的。

为此,我们专门创建了 “hfai 使用心法” 系列专辑,陆续为大家介绍 hfai 一些功能的设计思路和原理,帮助大家更好更快地习得心法,带着 hfai 这套“神功”游刃有余的应对深度学习作业的各项挑战,举重若轻、例不虚发。

之前的文章为大家介绍了如何上传项目代码,构建运行环境和执行任务,一切准备就绪,就差训练数据了。对于大规模的训练数据,上传、管理和部署都是不小的挑战,幻方 AI 研发提供了一套专门为数据集量身定制的“神功”,帮助大家更好的运行大规模的数据,训练出惊艳的模型。

Studio 数据管理页

在萤火集群上的训练数据集,我们都可以通过 Studio 数据管理页 进行浏览与使用。如下图所示:

studio

可以看到,幻方 AI 收纳整理了数十种常用的大规模公开数据集,并持续更新中。如果您所需要的数据集在其中,通过 hfai.datasets 方法就可以轻松获取高性能存储支持下的训练数据,进行快速训练。

当然,这些数据不可能满足所有的研究场景。如果您需要上传您自己的数据,可以点击 创建私有数据集

create self

私有数据集

私有数据集在幻方萤火集群中进行账号级的隔离,您的数据只有您的账号下可以进行访问。

上传的数据需要满足如下条件

  1. 每个文件不小于 256MB (512 x 512KB)
  2. 满足条件1的情况下,文件数量尽可能大于100,小于200

这里需要特别注意的是,大量的小文件构成的数据集会对集群存储性能造成严重影响,因此,如果您的数据是这种大量的小文件,我们建议您将数据转化为幻方 AI 自研的 FFRecord 数据格式。

为什么要转换为 FFRecord ?

幻方 AI 自研了一套适合深度学习模型训练场景的文件读写系统 3FS,和一般的文件系统不同,3FS 文件系统有如下的一些特点:

  • 大量打开、关闭小文件的开销比较大
  • 支持高吞吐的随机批量读取

FFRecord 能够充分利用 3FS 文件系统的高效读取性能,其包括如下优势:

  • 合并多个小文件,减少了训练时打开大量小文件的开销,对存储后端更加友好
  • 支持随机批量读取,提升读取速度
  • 包含数据校验,保证读取的数据完整可靠

因此,我们建议用户将训练数据尽可能都转换成 FFRecord 格式,以利用萤火集群的高性能存储,获得极致的训练加速体验。转换指引和案例代码可以阅读这里

数据上传

用户上传数据的完整流程如下:

  1. Studio 中点击 【创建私有数据集】,填写数据信息;
  2. 幻方管理员沟通,审核数据内容;
  3. 审核通过,点击 【更新授权】 获取上传 token;
  4. 使用阿里云OSS工具,通过授权的token,将符合条件的数据上传;
  5. 幻方管理员审核,数据流转到萤火集群;
  6. 数据在萤火集群准备好后,用户可以在Studio 中获得数据在集群中的地址

更详细的操作请阅读 Studio 中的私有数据集创建指引

private

由上述过程描述中可以了解到,用户数据到萤火集群采用如下方式流转:

用户端 —> 阿里云对象存储 —> 萤火集群

幻方 AI 采用特定的阿里云对象存储(OSS)进行用户数据上传的中转,其上传速度取决于用户自己的网络环境。萤火集群和 OSS 之间有专线连接,保证数据的快速流转。

如果您的数据规模巨大,或网络条件有限,可以联系幻方管理员采用其他方式来上传。


本文作者: High-Flyer


您可以转载、不违背作品原意地摘录及引用本技术博客的内容,但必须遵守以下条款: 署名 — 您应当署名原作者,但不得以任何方式暗示幻方为您背书,亦不会对幻方的权利造成任何负面影响。 非商业性使用 — 您不得将本技术博客内容用于商业目的。 禁止演绎 — 如果基于该内容改编、转换、或者再创作,您不得公开或分发被修改内容,该内容仅可供个人使用。