随笔分类 -  011_分布式机器学习

分布式机器学习
摘要:前文中我们介绍了反向传播引擎的动态逻辑,因为具体反向传播算法是在设备线程中完成的,所以我们单独用一章来讲解。 阅读全文
posted @ 2021-11-01 08:47 罗西的思考 阅读(1493) 评论(0) 推荐(1) 编辑
摘要:前文我们提到了 autograd 引擎的静态架构,本文开始我们从动态角度看看引擎是如何运作的。 阅读全文
posted @ 2021-10-29 16:48 罗西的思考 阅读(1716) 评论(1) 推荐(2) 编辑
摘要:前文最终我们提到了如下代码就是调用引擎来进行反向传播,本文我们首先从静态角度来看引擎,就是看看其数据结构和静态性质。 阅读全文
posted @ 2021-10-27 20:02 罗西的思考 阅读(1938) 评论(0) 推荐(1) 编辑
摘要:本系列将通过大概十篇左右文章来分析 PyTorch 的自动微分功能如何实现。本文是后向传播的第一篇,介绍调用流程:如何从 Python 代码进入到 C++ autograd 引擎。 阅读全文
posted @ 2021-10-25 19:29 罗西的思考 阅读(3043) 评论(0) 推荐(1) 编辑
摘要:本系列将通过大概十篇左右文章来分析 PyTorch 的自动微分功能如何实现。本文是前向传播的第三篇,介绍具体实现机制。 阅读全文
posted @ 2021-10-23 09:57 罗西的思考 阅读(3398) 评论(1) 推荐(2) 编辑
摘要:本系列将通过大概十篇左右文章来分析 PyTorch 的自动微分功能如何实现。本文是前向传播的第二篇,介绍自动微分(梯度计算)所涉及的部分 PyTorch 基础类。因为字数太多(1万两千字),所以拆分成上下两篇。 阅读全文
posted @ 2021-10-20 07:12 罗西的思考 阅读(2252) 评论(0) 推荐(1) 编辑
摘要:本系列将通过大概十篇左右文章来分析 PyTorch 的自动微分功能如何实现。本文是前向传播的第一篇,介绍自动微分(梯度计算)所涉及的部分 PyTorch 基础类。因为字数太多(1万两千字),所以拆分成上下两篇。 阅读全文
posted @ 2021-10-18 17:30 罗西的思考 阅读(5144) 评论(0) 推荐(1) 编辑
摘要:本文从 PyTorch 两篇官方文档开始为大家解读两个示例。本文不会逐句翻译,而是选取重点并且试图加入自己的理解。 阅读全文
posted @ 2021-10-16 10:01 罗西的思考 阅读(1993) 评论(0) 推荐(2) 编辑
摘要:本文和上文以 [Automatic Differentiation in Machine Learning: a Survey](https://arxiv.org/pdf/1502.05767.pdf )为基础,逐步分析自动微分这个机器学习的基础利器。 阅读全文
posted @ 2021-10-14 17:21 罗西的思考 阅读(5032) 评论(0) 推荐(5) 编辑
摘要:本文和下文以 Automatic Differentiation in Machine Learning: a Survey 这篇论文为基础,逐步分析自动微分这个机器学习的基础利器。 阅读全文
posted @ 2021-10-12 17:25 罗西的思考 阅读(6538) 评论(3) 推荐(7) 编辑
摘要:前几篇文章我们介绍了 PyTorch 流水线并行的基本知识,自动平衡机制和切分数据等,本文我们结合论文内容来看看如何实现流水线依赖,核心就是如何建立这些小批次之间的跨设备依赖关系。 阅读全文
posted @ 2021-10-07 10:54 罗西的思考 阅读(2508) 评论(4) 推荐(3) 编辑
摘要:前几篇文章我们介绍了 PyTorch 流水线并行的基本知识,自动平衡机制和切分数据,本文我们结合论文内容来看看如何保证前向计算执行顺序。 阅读全文
posted @ 2021-09-28 21:24 罗西的思考 阅读(1362) 评论(0) 推荐(0) 编辑
摘要:前几篇文章我们介绍了 PyTorch 流水线并行的基本知识和自动平衡机制,本文我们介绍如何切分数据和运行时系统。 阅读全文
posted @ 2021-09-26 20:38 罗西的思考 阅读(1393) 评论(2) 推荐(0) 编辑
摘要:上一篇文章我们介绍了 PyTorch 流水线并行的基本知识,本文我们介绍其自动平衡机制和模型分割。 阅读全文
posted @ 2021-09-24 16:24 罗西的思考 阅读(1791) 评论(0) 推荐(0) 编辑
摘要:本系列开始介绍PyTorch的流水线并行实现。实质上,PyTorch就是 GPipe 的PyTorch版本。 阅读全文
posted @ 2021-09-22 08:45 罗西的思考 阅读(3940) 评论(0) 推荐(0) 编辑
摘要:本文以 PyTorch on Horovod 为切入点,分析一下 Horovod 弹性训练的恢复流程,具体涉及知识点有:ElasticSampler与PyTorch 原生DistributedSampler 的区别,Horovod 弹性训练如何恢复等。 阅读全文
posted @ 2021-09-18 15:47 罗西的思考 阅读(648) 评论(0) 推荐(0) 编辑
摘要:在前文中,我们介绍了PipeDream的总体架构,Profile阶段,计算分区阶段,模型转换阶段,运行时引擎和通信模块,本文是 PipeDream 系列最后一篇,介绍 1F1B 策略,这是 PipeDream 最大的贡献。 阅读全文
posted @ 2021-09-15 16:46 罗西的思考 阅读(5438) 评论(0) 推荐(2) 编辑
摘要:在前文中,我们介绍了PipeDream的总体架构,Profile阶段,计算分区阶段,模型转换阶段和运行时引擎,本文我们介绍PipeDream 的通信模块,通信模块是引擎的基础,同时也是PyTorch DDP,P2P 如何使用的一个万花筒和完美示例。 阅读全文
posted @ 2021-09-13 10:13 罗西的思考 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:在前文中,我们介绍了PipeDream的总体架构,Profile阶段,计算分区阶段和模型转换阶段,本文我们介绍运行时执行引擎,这是一个统一基础设施层。 阅读全文
posted @ 2021-09-11 09:39 罗西的思考 阅读(952) 评论(0) 推荐(0) 编辑
摘要:在前文中,我们介绍了PipeDream的总体架构,Profile阶段和计算分区阶段。本文我们介绍模型转换阶段。 阅读全文
posted @ 2021-09-07 20:27 罗西的思考 阅读(1164) 评论(0) 推荐(0) 编辑