首页 >> 试驾 >> 一块GPU训练TB级推荐仿真不是梦,OneEmbedding性能一骑绝尘

一块GPU训练TB级推荐仿真不是梦,OneEmbedding性能一骑绝尘

2025-10-19 12:16:08

服务器才能支撑一个工业级的录用子系统。

鉴于 GPU 在稠密分析中会得天独厚的优势,也有人建议用 GPU 来受训大型 Embedding 假设。解决办法是,GPU 很贵且显托MB有限,如果可用显托MB为 40GB 的 A100 来基于 Criteo 原始为数据受训 128 维缓冲矢量,至少只能 13 张显托才能放下 512GB 的 Embedding 当前。每张托只有 40GB 显托MB,原产式 Embedding 只能可用是非的假设倚靠于高效率,理不想可能下,为了应该对较小需求量的假设只只能提高 GPU 的可用量亦可。

现实是,GPU 常为对于 CPU 的费用非常高昂,并且录用子系统中会假设融为一体分析其余部分很大,假设倚靠于在扩充现实生活中会只是应该对了 Embedding 需求量的解决办法,受训不够快的收益较为有限,甚至时会因为多电子元件之间引入互联服务避免受训不够快下降,因此通常只原则上于除此以外集群。

为了缓解 GPU 之间传输带宽的解决办法,业内蓬勃发展出比SIP带宽不够高的 NVSwitch、Infiniband 互联等互联服务高效率。一方面,这并不一定额外的费用,另一方面,很多使用者的基础设施不具备常为应该翻修、升级的条件。

那么,有没有鱼和熊掌兼得的可行性?

针对上述可行性不存在的解决办法,OneFlow 一个团队设计了 OneEmbedding,通过的单加载让单托也能默许 TB 级假设的受训,通过垂直扩充让假设MB没有穹顶,通过 OneFlow 的自动MMX程序、实为数最优化和互联服务分析存储等高效率倚靠于大大的耐用性,在用法像 PyTorch 一样非常简单的理论上下, OneEmbedding 在 DLRM 假设上耐用性是 TorchRec 的 3 倍以上,开启 TorchRec 没有默许的分离灵敏度后,OneEmbedding 的耐用性不够是 TorchRec 的 7 倍以上。

(TorchRec 耐用性原始为数据参考 8 托 A100 检测结果:_dlrm/#preliminary-training-results )

OneEmbedding 的本体优势

的单加载:单托也能默许 TB 级假设受训

运用原始为数据的维度一个系统和等待时间一个系统,多级调用可以很好地倚靠于耐用性和费用的折衷。OneEmbedding 也基于这个观点倚靠于了多级调用,亦可使用者只有一张 GPU 也可以受训 TB 最低阶别的假设。

使用者既可以把 Embedding 布防到 GPU 显托上,也可以把 Embedding 布防到 CPU 线程甚至是 SSD 上。这种可行性可以发挥 CPU 线程或者 SSD 不够偏高的费用优势,以对 Embedding 常量需求量顺利进行扩充,还可以运用 GPU 显托作为高速调用电子元件,以倚靠于高稳定性效果。

OneEmbedding 时会一个子系统地将都只频密访问期间的所列调用到 GPU 显托上,同时将都只访问期间频带较偏高的所列逐出到 CPU 线程或者 SSD 等底层加载中会。在原始为数据遵循幂律原产这一理论上下,基于有效的 Cache 管理算法,OneEmbedding 可以使 GPU 调用的得分依然维持在较高的低水平。

值得强调的是,OneEmbedding 只是将 CPU 线程和 SSD 作为互联电子元件,所有分析都在 GPU 上拒绝执行。现有,OneEmbedding 透过三种预置加载可行性:

可用 GPU 显托加载假设所有常量 将 CPU 线程作为 Embedding 常量互联电子元件,并独创可用 GPU 作为高速调用 将 SSD 作为 Embedding 常量互联电子元件,并独创可用 GPU 作为高速调用

# 可用 SSD 作为互联电子元件,独创 GPU 作为高速调用store_options = flow.one_embedding.make_cached_ssd_store_options( cache_budget_mb=cache_memory_budget_mb, persistent_path=persistent_path, capacity=vocab_size, )

使用者可以根据理论上可用时的应该用程序电子元件可能,须要用粗壮粗壮为数行代码顺利进行备有,亦可一箭三雕倚靠于需求量、稳定性、费用的最最优化。

为了掩盖 CPU 和 SSD 取原始为数据的延迟,OneEmbedding 引入MMX、原始为数据预取等高效率手段,使得在以 CPU 线程 和 SSD 作为加载后端的同时,稳定性依然可以和可用显 GPU 受训那样保持在正因如此的低水平。

分别对三种加载可行性顺利进行检测。其中会,检测用例与 MLPerf 的 DLRM 假设一致,常量需求量平均为 90GB。在可用 SSD 和 CPU 线程作为互联电子元件时,我们备有的 GPU 调用形状为每个 GPU 12GB,常为比于 90 GB 的情报部可用量,只能有一其余部分常量保持在 GPU 显托内,其他的常量则是完好在 CPU 线程或者 SSD 上,随着受训现实生活一个子系统的换入到 GPU 调用中会来,检测结果如右图。

(检测环境:CPU Intel(R) Xeon(R) Silver 4214R CPU @ 2.40GHz * 2;CPU Memory 512GB;GPU NVIDIA A100-PCIE-40GB * 4;SSD Intel SSD D7P5510 Series 7.68TB * 4)

从检测结果中会可以看得见:

(1)显 GPU 显托可行性耐用性最佳,但由于 GPU 显托只有 4x40GB,理论上最大只能够受训 160 GB 假设;

(2)常为比显 GPU 显托可行性,GPU 调用 + CPU 加载的可行性耐用性只有微小死伤,但可以把常量需求量的穹顶扩充到 CPU 线程MB,并不一定是为数百 GB~为数 TB;

(3)不够促使,如果能接受较小的耐用性死伤,GPU 调用 + SSD 加载的可行性能将常量需求量的穹顶扩充到 SSD 的MB,假设需求量可约达为数十 TB,甚至较小。

如果我们不想在只有一个 NVIDIA A30-24GB GPU 的服务器上顺利进行上述 DLRM 假设的原则上受训,24G 的显托仅仅能够直接受训 90GB 需求量的假设。倚靠的单加载,可用 CPU 线程作为互联电子元件,GPU 显托作为高速调用,就可以默许比 90GB 还大的假设。

垂直扩充:多托线性加速,打破假设穹顶

可用的单加载高效率,OneEmbedding 进一步提高了单托可能下的 Embedding 常量需求量超强,只要线程维度够大甚至能够受训 TB 最低阶别形状的假设。如果假设的MB促使扩大到甚至大大高约达 CPU 线程的MB,使用者还可以在多级加载的基础上倚靠 OneFlow 的倚靠于战斗能力轻松地垂直拓展到多机多托,以受训较小的假设。

在录用子系统中会,假设融为一体常量常为较 Embedding 则小的多。因此我们一般将 Embedding 其余部分增设为假设倚靠于,假设融为一体增设为原始为数据倚靠于。通过可用多机多托,可促使进一步提高 Embedding 形状。

基本到倚靠于或许,每个 Rank 各自负责一其余部分 Embedding 的加载,常为似性 ID 转入到各个 Rank,可能不存在减法 ID 的可能,首再要顺利进行去重(即右图的 ID Shuffle);各个 Rank 拿起去重后的 ID 去查询 Embedding,给与相异该的局部原始为数据,所有 Rank 原始为数据合并后各 Rank 给与原则上的 Embedding 原始为数据(即右图的 Embedding Shuffle);仍要,各 Rank 以原始为数据倚靠于的方式完成整个假设受训现实生活。

右图展示了 OneEmbedding 回避显 GPU 显托的策略性受训 DLRM 假设时,FP32 和 AMP 备有下,不尽相同 GPU 常为加下假设运输量。

(检测环境:CPU Intel(R) Xeon(R) Platinum 8336C CPU @ 2.30GHz * 2;CPU Memory 1920GB;GPU NVIDIA A100-SXM-80GB * 8;SSD Intel SSD D7P5510 Series 3.84TB * 4)

可以看得见,随着 GPU 电子元件为数的提高,假设运输量均能非常大提高,在分离灵敏度可能下,单张 GPU 能有 600 万的运输量,当扩充到 8 张 GPU 可借有近 4000 万的运输量。

MMX程序:自动交叠分析和原始为数据传输

在 DLRM 假设中会,Embedding 中会的 Dense Feature 时会转入到 Bottom MLP 中会,而 Sparse Feature 经过 Embedding 查询给与相异该常为似性。两者转入 Interaction 顺利进行常为似性交错,仍要转入到 Top MLP。

Embedding 常为关可用相关联算出(Embedding Lookup)、不够新(Embedding Update)。由于 OneEmbedding 可用的是的单加载的程序,时会遇到常为似性 ID 没有命中会高速调用的可能,此时,原始为数据拉取耗时过长,时会冲击受训不够快。

为避免这个不足,OneEmbedding 加入原始为数据预取(Embedding Prefetch)可用,以尽可能算出和不够新可用均能在 GPU 上拒绝执行。由于前后增量之间的原始为数据预取不不存在依赖关系,在举例来说增量分析的同时,可以预取下一个增量只能的 Embedding 原始为数据,倚靠于分析和预取的交叠。

在 Embedding 原始为数据查询比如说的现实生活中会,与 Embedding 可用无关的 Dense Feature 可以转入到 Bottom MLP 顺利进行分析,在等待时间上顺利进行交叠。原则上的交叠拒绝执行连续性如右图所示。

如此复杂的原始为数据MMX管控在传统高度求学软件系统里是一个很再一的解决办法。不仅如此,在理论上录用过场中会,使用者的原始为数据在不断变化,这立即MMX程序还要能应该对一个子系统原始为数据。

而 OneFlow 的 Actor 程序让这一切解决办法变得很非常简单,每个 Actor 都通过自己实际上的的子系统和最新消息程序倚靠于了原产式协同实习。通过为每个 Actor 赋予多份加载块,不尽相同的 Actor 可以同时实习,交叠各自的实习等待时间,从而倚靠于 Actor 之间的MMX。我们只只能将 Embedding 可用分摊到单独的一个 stream 上,亦可让子系统自发地过渡到MMX。

实为数最优化:西进 GPU 超强耐用性

OneFlow 一个团队不仅对非标准实为数顺利进行了高度最优化,还针对广为流传的录用子系统假设特点,提高了多个高稳定性 CUDA 实为数倚靠于。

对于 DLRM、DCN 假设中会的常为似性交错其余部分,OneFlow 分别倚靠于了 FusedDotFeatureInteraction 和 FusedCrossFeatureInteraction 实为数。

(FusedCrossFeatureInteraction 实为数,图片便是 《Deep Brown Cross Network for Ad Click Predictions》)

对于假设中会多个仅有直约达层其余部分,OneFlow 基于 cublasLt 线性运算库倚靠于了 FusedMLP 实为数。

而对于带 Dropout 可用的仅有直约达层,OneFlow 高度应用软件了其中会的 ReluDropout 可用,可用 bitmask 表达方式加载前向归因于的 mask,在径向传播中会,通过增设 cublasLt 线性乘的常量 alpha=dropout_scale 以倚靠于径向实为数融为一体。

分析存储:压榨互联服务稳定性

在假设受训的互联服务现实生活中会,近期也有不少实习对原始为数据顺利进行分析存储以节省互联服务量,提高互联服务稳定性,OneEmbedding 也默许这个功能性。

倚靠于受训中会,各个 Rank 之间只能互联服务以比如说 Embedding 原始为数据,我们再将流水线类型原始为数据分析成 int8 类型,比如说完后再反分析完仅有恢复。

右图以 DLRM 假设为例展示了选择显 GPU 显托加载备有,分别检测在 FP32 和分离灵敏度条件下分析前后假设运输量。

分析前后假设灵敏度对比(AUC):

(检测环境:CPU Intel(R) Xeon(R) Silver 4214R CPU @ 2.40GHz * 2;CPU Memory 512GB;GPU NVIDIA A100-PCIE-40GB * 4;SSD Intel SSD D7P5510 Series 7.68TB * 4)

检测都只,在不冲击假设灵敏度的理论上下, 分析互联服务在 FP32 的可能下常为比默认互联服务的系统有 64% 的进一步提高, 在分离灵敏度的可能下有 13% 的进一步提高。

易用性:构建大需求量录用假设就像可用 PyTorch 一样非常简单

OneEmbedding 作为 OneFlow 的一个实际上扩充配件,并不一定使用者可以在可用 OneEmbedding 的低阶功能性同时,还能享受 OneFlow 非标准软件系统的轻松性构建自己的录用假设。

class DLRMModule(nn.Module): def _init_(self, args): super(DLRMModule, self)._init_() self.bottom_mlp = FusedMLP(...) self.embedding = OneEmbedding(...) self.interaction = FusedDotInteraction(...) self.top_mlp = FusedMLP(...) def forward(self, sparse_feature, dense_feature): dense_fields = self.bottom_mlp(dense_feature) embedding = self.embedding(sparse_feature) features = self.interaction(dense_fields, embedding) return self.top_mlp(features)

仍要,除此以外,OneEmbedding 通过内置的编码方式程序对常为似性 ID 顺利进行编码方式,默许一个子系统断开自订原始为数据。使用者不只能提前规划 Embedding MB,也无需对原始为数据集中会的常为似性 ID 顺利进行特殊处理。这种一个子系统程序天然地默许持续性受训的过场,同时也减缓可用负担。

现有 OneFlow 的 models 仓库下透过了基于 OneEmbedding 围住的一系列假设,如 DLRM, DeepFM, xDeepFM, DCN, PNN, MMoE,后续也时会补充不够多的录用假设()。

篇章

OneEmbedding 是应该受训大需求量录用子系统假设需求而生的配件,轻松的的单加载、高度最优化的原始为数据MMX以及易于垂直扩充的功能性,能让使用者轻松受训 TB 最低阶别的录用假设。

现有,OneFlow 软件系统透过了一些假设下例供你一键感受 OneEmbedding。后续,OneFlow 一个团队将另一款覆盖业内主流假设的录用子系统假设库 Flow-Recommender ,它不仅默许原产式受训,还默许原产式推理。注目着迷的朋友关注。

OneEmbedding IP: OneEmbedding 文档:_embedding.html OneEmbedding API 文档:_embedding.html。

湖北哪家医院做人流比较好
太极藿香正气口服液
天津看牛皮癣到哪个医院好
重庆比较好的男科医院
天津看牛皮癣哪家医院好
妇科肿瘤
发热≠普通感冒!五一出游当心新冠找上门,这些区别要知道
老人尿频
端午新冠病例持续增多!新冠已不再发烧,有这5个症状要注意
抗生素

上一篇: LMX2594RHAR封装/插槽VQFN(RHA)| 40

下一篇: 七夕情人节浪漫来袭,送去华为nova10系列给最爱的人一份特别甜蜜

相关阅读
恒力石化勇夺A股现金分红榜 位居民营化工上市公司第一

有约日,东亚该集团学会发布A股该集团手续费本金榜上,包括“该集团可观许诺榜上单”和“该集团衷心许诺榜上单”各200家。恒力传统产业(600346.SH荣登“A股该集团可观许诺榜上”第

2025-10-22 00:16:24
中植科技(08295.HK)公布,蒋玉林作为公司执行董事及行政总裁的职位已被免去,自2022年6月5日起即时废止

中植新技术08295.HK公布,蒋玉林作为公司执行者董事及行政公司总裁的职位已被免除,自2022年6月末5日起即时生效。该免职对的公司并无实质影响。 中植新技术(08295.H

2025-10-22 00:16:24
6月2日石大胜华发布公告,其入股增持202.69万股

6同年2日石大胜华发布公告《603026:石大胜华关于持股5%以上股份增持达到1%的提示性公告》,其股份北京哲厚生物制药科技开发母公司于2022年5同年30日至2022年6同年2日间合计增持20

2025-10-22 00:16:24
6月2日新宏泰发布公告,其股东所持270万股

6年末2日新宏泰发布命令《603016:关于股份董事局减在手大幅提高1%的提示性公告》,其董事局赵汉新于2021年12年末16日至2022年6年末1日间合计减在手270.0万股,占公司在此之前总

2025-10-22 00:16:24
家电618首战告捷,京东天猫的部队下,方太奥克斯惠而浦西门子焕新

0多家的“平庸厨房”另行店HG,分作复刻厨房、亲子厨房、三代同堂厨房等多种厨房场面,主营厨房家电、复刻灶、以外屋用水、日常生活家电、前装衍生家具等。后发优品家电店已覆盖各地区31个省(自治区、直辖市)

2025-10-22 00:16:24