机器之心|36万类别、1800万图像,国内机构创建全球最大人脸数据集( 二 )
本文插图
研究者发现 , 即使类别数和GPU个数同时增长 , logits 占用的显存与总的批次大小 kN 相关 , 随着GPU个数的增加 , logits 占用的显存是持续增加的 。 假设100w类别需要用一台8卡RTX2080Ti , 则1000w类别需要10台8卡RTX2080Ti , 设特征维度为512 , 每张GPU的批次大小为64 , 则在训练1000w类别的任务时 , 每个GPU logits 占用的显存为 w的十倍 。 在这个例子中 , 混合并行解决了 w 占用的显存 , 却增加了 logits 占用的显存 。
高效分布式采样算法:Partial-FC
在人脸识别中 , CosineSoftmax的作用是拉近特征与其相应「正类中心」的距离 , 对其他的「负类中心」则保持距离 。 这点其实和最近很热的自监督表征学习非常类似 , Moco通过队列保存更多的历史负样本 , SimCLR则使用多机多卡、超大的batchsize来增加负样本的个数 , 而SimCLR在很大batchsize的时候提升有限 。 那么在人脸识别大规模分类任务中 , 每个特征的负类中心是所有的类中心 , 把这些负类中心减少一些是不是也能取得一样的效果?
答案是肯定的 , 具体实现方式还是要结合混合并行一起做 。 该研究采取的做法很简单:「正类必采 , 负类随机」 , 即在采样类中心的时候 , 保证正类中心必须采到 , 所以首先会把正类中心都拿出来 , 其次会随机采样一些负类中心 , 补齐到约定的采样率即可 。
在混合并行的实现中 , 数据会随机地出现在不同的GPU上 , 而它的「正类中心」则会根据其类别按照顺序存放在一个固定的GPU上 , 这就会出现样本和「正类中心」不在同一张GPU上的问题 。
该研究对此提出了一个简单的解决方案:在实现混合并行时 , 不仅同步每张卡的特征 , 同时也同步每张卡的标签 , 这样每张卡都具备所有卡的完整特征和标签 。 假设总的批次大小为 kN , 则至多会有 kN 个正类中心随机分布在所有的GPU中 , 让每个正类中心所属的GPU将该正类采样出来即可 , 每张GPU正类采出来后 , 再随机用负类补齐到约定的采样率 。 这样每张GPU采样到的类中心一样多 , 实现负载均衡 。 后续的过程就是分类层的模型并行部分了 , 需要注意的是 , 只有采样出来的类中心的权重和动量会更新 。
实验
性能
该研究在内部业务和FRVT竞赛上验证了这个方法 , 在学术界的测试集IJB-C和Megaface上 , 使用Glint360K的Full softmax和10%采样都有着相当不错的结果 。
本文插图
效率
在64块2080Ti、类别数1000w的实验条件下 , Partial FC 的速度是混合并行的3倍 , 占用的显存也更低 , 并且最大支持的类别数也有了一个数量级的飞跃 , 成功训练了一亿id的分类任务 。
本文插图
【机器之心|36万类别、1800万图像,国内机构创建全球最大人脸数据集】目前 , Glint360K数据集已公开 。
推荐阅读
- 机器人|梅卡曼德机器人获得近亿元人民币B+轮融资
- 中年|最终幻想14:关于獭獭机器人,qqbot的一个疑问
- 融资并购,智能机器人|软银拟将机器人公司波士顿动力卖给现代汽车
- 智能机器人,虚拟现实|为汉科技VR(虚拟)焊接+真实焊枪+焊接仿真+VR(虚拟)机器人
- 中年|上游?互动丨“开放两江、智慧之城与区域价值”主题征丨致敬,机器人(外一首)- 张天国
- 智能机器人,黑科技|航天技术育种,机器人当农夫,农业生产尽显“科技范”
- AI人工智能|赋能百科之——华为机器视觉如何开启“创视纪”?
- 云计算|ModelArts平台加持,华为云在机器学习领域领先
- 南方都市报|会变色的玻璃,能止血的手术刀,萌萌哒消毒机器人……宝安企业讲述“爆款神器”背后故事
- 新知科技|韩国Edtech公司Probo在中国推出Probo Connect机器人课程