FusionStitching系统概述

屏幕快照 2019-11-25 13.56.40

输入HloModule,经过以下三个阶段,最终输出LLVM IR。

  • Computation Fusion
  • Schedule Planning
  • Code Generation

论文主要针对XLA Fusion算法进行了改进,提出了实现Block合并策略的Schedule和Shared Memory Planning技术,以及实现对应的IR Emitter。

Read More

Regularization of Neural Networks using DropConnect

  • DropConnect主要是用来解决全连接过拟合问题的,是Dropout的通用实现。随着神经网络参数量越来越大,过拟合的风险越来越高,之前的一些经验是使用L1/L2以及Dropout。Dropout随机地将激活函数输出置0,导致每次参与训练的参数量变少,由于随机drop的关系,每次训练的网络都可能不一样,因此实际上我们训练的是多个子模型组成的混合模型。

Read More

seq2seq

主要学习的是论文Neural machine translation by jointly learning to align and translate (Dzmitry Bahdanau、Yoshua Bengio等,2016.05)和Neural machine translation (Minh-ThangLuong,2016.12)。

神经机器翻译的目的是将一门语言的文本序列翻译成另一门语言的文本序列,因此机器翻译的训练语料一般是源语言和目标语言组成的一对文本,也叫做平行语料(parallel corpus)。我们通常将输入和输出都是序列的模型叫做seq2seq,seq2seq不仅应用在机器翻译领域,也用于当前热门的自动问答系统以及文本摘要的自动生成等领域。

Read More

KunPeng是阿里最新公布的一个大规模机器学习框架,不仅包括了数据/模型并行、负载均衡、模型同步、稀疏表达、工业级容错等特性,而且还提供了易于使用的接口,在很多机器学习算法上都带来了非常大的性能提升。 原始论文 KunPeng: Parameter Server based Distributed Learning Systems and Its Applications in Alibaba and Ant Financial。

Read More

由于需要在组内新开发的一套机器学习框架上开发一个强化学习的demo,但目前开源的一些游戏环境都只提供了python接口,比如Gym。如果要使用Gym去做在线训练的话,就需要在C++代码中调用Python接口,因此找了些例子学习了一下如何使用Python C API。当然Python C API不是唯一的方式,也可以使用boost的Python模块,有时间再研究。

Read More

这几天的主要工作是将caffe移植到组内新开发的某个计算框架,在验证正确性时遇到一个问题。由于计算框架只支持异步更新的方式,因此采用全异步SGD算法训练Alexnet时非常容易发散。另外调研了一下近期发布的异步更新算法DC-ASGD,实验结果只能说对收敛有些正向效果,仍无法解决训练发散的问题。在另外一个DNN的网络上发现在多机时momentum对收敛结果有较大影响,momentum会导致收敛出现较大波动。

Read More

DQN

前面我们讲到TD算法结合了动态规划和蒙特卡洛算法的优点,不依赖具体的环境模型,并且更新时采用滑动平均的方式,因此单步就能更新,而不需要生成整个episode,在非episode情况下仍然适用。TD算法又分为on policy的sarsa算法和off policy的Q learning算法,其中Q learning算法直接使用下一状态的最大动作值函数进行更新,加快了算法收敛速度,因此Q learning算法在实际应用中更加普遍。

Read More

前言

近几年,由于DeepMind成功地将强化学习(reinforcement learning)运用在AlphaGo上,机器首次在复杂任务上取得了超过人类的表现,使得强化学习成为目前机器学习研究的前沿方向之一。强化学习由来已久,Sutton等在1979年就已经开始研究强化学习,1998年出版了强化学习介绍一书,并于2012年发布第二版,本文前几部分内容主要参考该书。

Read More