「论文笔记」PICASSO: Unleashing the Potential of GPU-centric Training for Wide-and-deep Recommender Systems
简要 针对的问题: 训练推荐系统中的GPU设备没有得到充分的利用,他们不能像CV和NLP领域那样实现预期的吞吐量提高。这个问题主要由两个特征引起 推荐模型包含了多达1000多个输入特征域,这引入了碎片化和内存密集型的操作 多组成特征交互子模块引入了大量的小型计算核 虽然定制的硬件能够对特定的WDL(Wide-and-Deep...
「论文笔记」AutoShard: Automated Embedding Table Sharding for Recommender Systems
简要 problem:大规模的embedding表参数会影响到推荐系统embedding模型的训练过程,这些大规模的embedding表如果使用不平衡的分布式存储方式,会严重影响模型的执行效率。这就涉及到一个挑战:embedding表分片问题(embedding table sharding) 如上图所示,蓝色的框表示一个embedding表,然后框内的数字表示执行操作执行时间的成本。紫色的框表示一个分片(sharding)旁边的数字表示这个分片的执行时间成本。 如果在分片过程中没有考虑到分片的平衡(图左边),就可能会导致GPU之间的不平衡,其中所有的GPU必须强制等待最慢的GPU(图中的bottleneck)。相反,如果分片是平衡的(图右边),就可以通过减小等待时间来显著加速embedding的操作。 因为sharding内部是并行执行的,所以sharding内部的执行时间是显著小于所有embedding表的执行时间之和的,比如...
「论文笔记」HET-GMP: A Graph-based System Approach to Scaling Large Embedding Model Training
简要 Problem: 更新和检索共享的大规模embedding参数通常主导分布式训练周期,这是一个主要的embedding模型训练的阻碍,这将到严重的可拓展性(scalability)的问题 现有的分布式机器学习系统使用参数服务器(PS)或基于AllReduce的方法来拓展模型。其中,通过有限的带宽链路对共享嵌入参数的系数读取和更新是这种方法最低效的部分。 从图中可以看出,90%的训练时间花费在获取和更新嵌入参数上,这在训练中期中占主导地位。 HET-GMP的数据建模方式: 假设有左边的一个嵌入表,然后每一行表示一个数据,一行中的每一个元素表示样本在每一个field的embedding...
「论文笔记」Tuplex: Data Science in Python at Native Code Speed
论文名称:Tuplex: Data Science in Python at Native Code Speed 作者:Leonhard Spiegelberg / Rahul Yesantharao / Malte Schwarzkopf / Tim Kraska 时间:2021 期刊或会议:SIGMOD2021 代码:https://tuplex.cs.brown.edu/ Introduction 使用Python编写的UDF:如今的数据科学pipelines通常依赖于用易于使用的Python编写的UDF(user-defined function,用户定义函数)。但是也有下面一些问题: 但是Python代码在字节码解释器中执行,它解释指令跟踪对象类型,管理内存和处理异常。这种基础设施带来了较大的开销。并且Python...
「论文笔记」User-Defined Operators: Efficiently Integrating Custom Algorithms into Modern Databases
论文名称:User-Defined Operators: Efficiently Integrating Custom Algorithms into Modern Databases 作者:Moritz Sichert, Thomas...
「书籍阅读」分布式计算系统(二)
这种框的部分一般是自己衍生出来的疑问与解答(当然有的问题可能暂时没有解答) (ps:本文只是粗略记录,想了解具体细节还是建议要看原书) 流计算系统Storm 与批处理系统处理静态数据不同,这种大量、快速、时变并持续到达的数据称为流数据(stream...
「书籍阅读」数据密集型应用系统设计
可靠、可拓展与可维护的应用系统 应用系统的组成模块: 数据库:存储数据 高速缓存:缓存复杂或操作代价昂贵的结果 索引:用户可以按关键字搜索并支持各种过滤 流式处理:持续发送消息至另一进程(异步) 批处理:定期处理大量的累积数据 数据软件系统重视的三个问题: 可靠性(Reliability):硬件、软件故障、人为失误等,系统仍然可以正常运转。 可拓展性(Scalability):数据量和复杂度是可变的 可维护性(Maintainability):新人员可以参与到系统开发和运维,维护现有功能或适配新的场景,系统都能够高效运作。 可靠性 可能出错的事情称为错误(faults)或故障,系统可应对错误称为容错(fault-tolerant)。与失效(failure)不完全一致,前者表示与预期目的偏离,后者表示整个系统完全停止工作。 硬件故障:...
「书籍阅读」智能计算系统
这篇博客用于记录《智能计算系统》一书中的一些关键内容,由于前4章都是深度学习相关知识,我已经基本了解,所以不需要记录太多内容 第5章 TF1的设计原则 {高性能:调度器更具网络结构特点,并发运行没有数据依赖的节点,异步发射满足依赖关系的多个节点而不同步等待每个节点的中间结果易开发:提取出大量的共性运算,并将这些运算成TF1中的各种算子可移植性:定义不同设备的抽象,其要实现如下方法{1.设备上执行算的启动方法2.输入输出数据地址空间的分配方法3.主机端与设备端的数据传输方法\begin{cases} 高性能:调度器更具网络结构特点,并发运行没有数据依赖的节点,异步发射满足依赖关系的多个节点而不同步等待每个节点的中间结果\\ 易开发:提取出大量的共性运算,并将这些运算成TF1中的各种算子\\ 可移植性:定义不同设备的抽象,其要实现如下方法\begin{cases} 1. 设备上执行算的启动方法\\ 2. 输入输出数据地址空间的分配方法\\ 3....
「论文阅读」NetRL: Task-aware Network Denoising via Deep Reinforcement Learning
论文:NetRL: Task-aware Network Denoising via Deep Reinforcement Learning 作者:Jiarong Xu; Yang Yang; Shiliang Pu; Yao Fu; Jun Feng; Weihao Jiang; Jiangang Lu; Chunping Wang 时间:2022-7 期刊:IEEE Transactions on Knowledge and Data Engineering 代码:https://github.com/galina0217/NetRL 原文摘要 Network data is mostly hard to obtain and error-prone. However, most existing works assume that the studied network represents a perfect and complete picture of topological structure; nevertheless, it is rarely the...