「论文笔记」HET-GMP: A Graph-based System Approach to Scaling Large Embedding Model Training
简要
Problem:
更新和检索共享的大规模embedding参数通常主导分布式训练周期,这是一个主要的embedding模型训练的阻碍,这将到严重的可拓展性(scalability)的问题
现有的分布式机器学习系统使用参数服务器(PS)或基于AllReduce的方法来拓展模型。其中,通过有限的带宽链路对共享嵌入参数的系数读取和更新是这种方法最低效的部分。
从图中可以看出,90%的训练时间花费在获取和更新嵌入参数上,这在训练中期中占主导地位。
HET-GMP的数据建模方式:
假设有左边的一个嵌入表,然后每一行表示一个数据,一行中的每一个元素表示样本在每一个field的embedding 向量。其构造二分图的模式,两边的节点分别表示embedding向量和数据样本每一个embedding指向对应的样本。
从图中可以看出ab,cdef,ghi分别存储在不同分区中(或者说不同的节点上),embedding的使用可能存在一定的局部性和偏度。这就给出了两个优化思路
通过有意识的位置布局优化,大多数的embedding可以放置在少数worker上,并在本地执行以减少通信。
在每个worke ...
「论文笔记」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 UDFs不能被容易地编译成机器码。
在Spark中使用UDF,则会有一部分代码执行Spark的操作符,然后一部分UDF代码则会使用Python的操作符,这就需要在python的解释器和JVM之间进行数据传输,阻止了跨UDF生成端到端优化的代码。
生成本机代 ...
「论文笔记」User-Defined Operators: Efficiently Integrating Custom Algorithms into Modern Databases
论文名称:User-Defined Operators: Efficiently Integrating Custom Algorithms into Modern Databases
作者:Moritz Sichert, Thomas Neumann
时间:2022
期刊或会议:PVLDB2022
代码:https://github.com/tum-db/user-defined-operators
文章要解决什么问题?
本文要解决的问题就是在RDBMS上有效率地进行数据分析,如何在数据库中直接设计相应的数据分析算法,以更加高效地进行数据分析。
文章为什么要解决这个问题?
现在有很多数据分析系统用于处理数量日益增长的数据,并使用其解决各种各样的问题。现有的数据分析系统存在下面的问题:
这样的数据分析系统大都是脱离数据源自主架构并自主运行的。用于数据分析的数据大都存储在RDBMS中,要想给数据分析系统直接使用则需要从RDBMS中导出数据形成CSV文件,再将CSV文件导入到数据分析系统中。这样导入导出的操作是非常耗时的。
此外数据从RDBMS中提取之后,系统的许多有益特征也随之消失 ...
「书籍阅读」分布式计算系统(二)
这种框的部分一般是自己衍生出来的疑问与解答(当然有的问题可能暂时没有解答)
(ps:本文只是粗略记录,想了解具体细节还是建议要看原书)
流计算系统Storm
与批处理系统处理静态数据不同,这种大量、快速、时变并持续到达的数据称为流数据(stream data),针对流数据的计算称为流计算。实时性需求是流计算的显著特征,需要设计相应的流计算系统。
设计思想
Storm流计算系统需要处理的数据以流的形式存在,理论上是无界,并且计算要持续进行。Storm系统将流数据抽象为无界的元组序列,并使用拓扑抽象计算过程。
连续处理
批处理系统在获取全部要处理的数据时,就开始计算这批数据,计算结束后就自动结束进程。而流计算系统的输入数据是无界的,任务本身需要长期运行在计算节点上,简单来说,就是负责执行计算任务的现成或进程需要长期驻留在系统中。
连续处理是执行流计算的一种直观的方式,输入的流数据记录不断地进入系统,计算任务长期驻留在计算节点并且更新自身的状态。其中,状态是一种特殊的数据,用于保存从流计算开始到目前为止得到的计算结果,对于流计算系统而言非常重要。
数据模型
Storm将流数据看做一个无界 ...
「书籍阅读」分布式计算系统(一)
这种框的部分一般是自己衍生出来的疑问与解答(当然有的问题可能暂时没有解答)
(ps:本文只是粗略记录,想了解具体细节还是建议要看原书)
分布式系统:若干独立计算机的集合,这些计算机对于用户来说就像是一个单机系统。
分布式系统{分布式计算系统——利用分布式技术支持高性能计算和大规模数据处理分布式信息系统——利用分布式系统技术构建信息管理分布式系统\begin{cases}
分布式计算系统——利用分布式技术支持高性能计算和大规模数据处理\\
分布式信息系统——利用分布式系统技术构建信息管理
\end{cases}
分布式系统{分布式计算系统——利用分布式技术支持高性能计算和大规模数据处理分布式信息系统——利用分布式系统技术构建信息管理
大数据的5个特征:
数量(volume):数据量大
种类(variety):数据类型多
速度(velocity):数据生产速度快
价值(value):数据中存在很多的潜在价值
质量(veracity):自动采集的数据通常质量比较低
数据库系统的主要功能模块:
数据存储
数据组织模型与访问
查询处理
事务管理
计算密集型应用:计算机在处理时,CP ...
「书籍阅读」数据密集型应用系统设计
可靠、可拓展与可维护的应用系统
应用系统的组成模块:
数据库:存储数据
高速缓存:缓存复杂或操作代价昂贵的结果
索引:用户可以按关键字搜索并支持各种过滤
流式处理:持续发送消息至另一进程(异步)
批处理:定期处理大量的累积数据
数据软件系统重视的三个问题:
可靠性(Reliability):硬件、软件故障、人为失误等,系统仍然可以正常运转。
可拓展性(Scalability):数据量和复杂度是可变的
可维护性(Maintainability):新人员可以参与到系统开发和运维,维护现有功能或适配新的场景,系统都能够高效运作。
可靠性
可能出错的事情称为错误(faults)或故障,系统可应对错误称为容错(fault-tolerant)。与失效(failure)不完全一致,前者表示与预期目的偏离,后者表示整个系统完全停止工作。
硬件故障: 硬盘崩溃、内存崩溃、电网停电、误拔网线。
软件错误:软件错误导致当输入特定值时应用服务器崩溃;应用程序使用某些共享资源时不行失控跑飞;依赖的服务变慢甚至无响应;小组件故障触发相关组件故障。设计时需要考虑很多细节,认真检查依赖的假设条件与系统之间的交 ...
「书籍阅读」智能计算系统
这篇博客用于记录《智能计算系统》一书中的一些关键内容,由于前4章都是深度学习相关知识,我已经基本了解,所以不需要记录太多内容
第5章
TF1的设计原则
{高性能:调度器更具网络结构特点,并发运行没有数据依赖的节点,异步发射满足依赖关系的多个节点而不同步等待每个节点的中间结果易开发:提取出大量的共性运算,并将这些运算成TF1中的各种算子可移植性:定义不同设备的抽象,其要实现如下方法{1.设备上执行算的启动方法2.输入输出数据地址空间的分配方法3.主机端与设备端的数据传输方法\begin{cases}
高性能:调度器更具网络结构特点,并发运行没有数据依赖的节点,异步发射满足依赖关系的多个节点而不同步等待每个节点的中间结果\\
易开发:提取出大量的共性运算,并将这些运算成TF1中的各种算子\\
可移植性:定义不同设备的抽象,其要实现如下方法\begin{cases}
1. 设备上执行算的启动方法\\
2. 输入输出数据地址空间的分配方法\\
3. 主机端与设备端的数据传输方法\\
\end{cases}
\end{cases}
⎩⎨⎧高性能:调度器更具网络结构特点,并发运行没有数据依赖 ...
「论文阅读」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 cas ...
「论文阅读」Dual Contrastive Prediction for Incomplete Multi-View Representation Learning
论文名称:Dual Contrastive Prediction for Incomplete Multi-View Representation Learning
作者:Yijie Lin; Yuanbiao Gou; Xiaotian Liu; Jinfeng Bai; Jiancheng Lv; Xi Peng
期刊:IEEE Transactions on Pattern Analysis and Machine Intelligence
时间:2022-8
原文摘要
In this article, we propose a unifified framework to solve the following two challenging problems in incomplete multi-view representation learning: i) how to learn a consistent representation unifying different views, and ii) how to recover the missing vi ...
「论文阅读」View-Consistency Learning for Incomplete Multiview Clustering
论文:View-Consistency Learning for Incomplete Multiview Clustering
作者:Ziyu Lv; Quanxue Gao; Xiangdong Zhang; Qin Li; Ming Yang
期刊:IEEE Transactions on Image Processing
时间:2022-7
原文摘要
In this article, we present a novel general framework for incomplete multi-view clustering by integrating graph learning and spectral clustering. In our model, a tensor low-rank constraint are introduced to learn a stable low-dimensional representation, which encodes the complementary information and takes into ac ...