incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Naveen Swamy <mnnav...@gmail.com>
Subject Re: [DISCUSS] Proposing MXNet for the Apache Incubator
Date Fri, 06 Jan 2017 18:59:34 GMT
Hello

Please sign me up as a committer for MXNet - I've been working with Mu at
work on MXNet (Amazon) and would love to get more involved in the project.

*GitHub ID: nswamy*


Thanks, Naveen



On 2017-01-05 21:12 (-0800), Henri Yandell <b...@apache.org> wrote:

> Hello Incubator,>

>

> I'd like to propose a new incubator Apache MXNet podling.>

>

> The existing MXNet project (http://mxnet.io - 1.5 years old, 15
committers,>

> 200 contributors) is very interested in joining Apache. MXNet is an>

> open-source deep learning framework that allows you to define, train,
and>

> deploy deep neural networks on a wide array of devices, from cloud>

> infrastructure to mobile devices.>

>

> The wiki proposal page is located here:>

>

>   https://wiki.apache.org/incubator/MXNetProposal>

>

> I've included the text below in case anyone wants to focus on parts of
it>

> in a reply.>

>

> Looking forward to your thoughts, and for lots of interested Apache
members>

> to volunteer to mentor the project in addition to Sebastian and myself.>

>

> Currently the list of committers is based on the current active coders,
so>

> we're also very interested in hearing from anyone else who is interested
in>

> working on the project, be they current or future contributor!>

>

> Thanks,>

>

> Hen>

> On behalf of the MXNet project>

>

> --------->

>

> = MXNet: Apache Incubator Proposal =>

>

> == Abstract ==>

>

> MXNet is a Flexible and Efficient Library for Deep Learning>

>

> == Proposal ==>

>

> MXNet is an open-source deep learning framework that allows you to
define,>

> train, and deploy deep neural networks on a wide array of devices, from>

> cloud infrastructure to mobile devices. It is highly scalable, allowing
for>

> fast model training, and supports a flexible programming model and
multiple>

> languages. MXNet allows you to mix symbolic and imperative programming>

> flavors to maximize both efficiency and productivity. MXNet is built on
a>

> dynamic dependency scheduler that automatically parallelizes both
symbolic>

> and imperative operations on the fly. A graph optimization layer on top
of>

> that makes symbolic execution fast and memory efficient. The MXNet
library>

> is portable and lightweight, and it scales to multiple GPUs and multiple>

> machines.>

>

> == Background ==>

>

> Deep learning is a subset of Machine learning and refers to a class of>

> algorithms that use a hierarchical approach with non-linearities to>

> discover and learn representations within data. Deep Learning has
recently>

> become very popular due to its applicability and advancement of domains>

> such as Computer Vision, Speech Recognition, Natural Language
Understanding>

> and Recommender Systems. With pervasive and cost effective cloud
computing,>

> large labeled datasets and continued algorithmic innovation, Deep
Learning>

> has become the one of the most popular classes of algorithms for machine>

> learning practitioners in recent years.>

>

> == Rational ==>

>

> The adoption of deep learning is quickly expanding from initial deep
domain>

> experts rooted in academia to data scientists and developers working to>

> deploy intelligent services and products. Deep learning however has many>

> challenges.  These include model training time (which can take days to>

> weeks), programmability (not everyone writes Python or C++ and like>

> symbolic programming) and balancing production readiness (support for>

> things like failover) with development flexibility (ability to program>

> different ways, support for new operators and model types) and speed of>

> execution (fast and scalable model training).  Other frameworks excel on>

> some but not all of these aspects.>

>

>

> == Initial Goals ==>

>

> MXNet is a fairly established project on GitHub with its first code>

> contribution in April 2015 and roughly 200 contributors. It is used by>

> several large companies and some of the top research institutions on the>

> planet. Initial goals would be the following:>

>

>  1. Move the existing codebase(s) to Apache>

>  1. Integrate with the Apache development process/sign CLAs>

>  1. Ensure all dependencies are compliant with Apache License version
2.0>

>  1. Incremental development and releases per Apache guidelines>

>  1. Establish engineering discipline and a predictable release cadence
of>

> high quality releases>

>  1. Expand the community beyond the current base of expert level users>

>  1. Improve usability and the overall developer/user experience>

>  1. Add additional functionality to address newer problem types and>

> algorithms>

>

>

> == Current Status ==>

>

> === Meritocracy ===>

>

> The MXNet project already operates on meritocratic principles. Today,
MXNet>

> has developers worldwide and has accepted multiple major patches from a>

> diverse set of contributors within both industry and academia. We would>

> like to follow ASF meritocratic principles to encourage more developers
to>

> contribute in this project. We know that only active and committed>

> developers from a diverse set of backgrounds can make MXNet a successful>

> project.  We are also improving the documentation and code to help new>

> developers get started quickly.>

>

> === Community ===>

>

> Acceptance into the Apache foundation would bolster the growing user and>

> developer community around MXNet. That community includes around 200>

> contributors from academia and industry. The core developers of our
project>

> are listed in our contributors below and are also represented by logos
on>

> the mxnet.io site including Amazon, Baidu, Carnegie Mellon University,>

> Turi, Intel, NYU, Nvidia, MIT, Microsoft, TuSimple, University of
Alberta,>

> University of Washington and Wolfram.>

>

> === Core Developers ===>

>

> (with GitHub logins)>

>

>  * Tianqi Chen (@tqchen)>

>  * Mu Li (@mli)>

>  * Junyuan Xie (@piiswrong)>

>  * Bing Xu (@antinucleon)>

>  * Chiyuan Zhang (@pluskid)>

>  * Minjie Wang (@jermainewang)>

>  * Naiyan Wang (@winstywang)>

>  * Yizhi Liu (@javelinjs)>

>  * Tong He (@hetong007)>

>  * Qiang Kou (@thirdwing)>

>  * Xingjian Shi (@sxjscience)>

>

> === Alignment ===>

>

> ASF is already the home of many distributed platforms, e.g., Hadoop,
Spark>

> and Mahout, each of which targets a different application domain. MXNet,>

> being a distributed platform for large-scale deep learning, focuses on>

> another important domain for which there still lacks a scalable,>

> programmable, flexible and super fast open-source platform. The recent>

> success of deep learning models especially for vision and speech>

> recognition tasks has generated interests in both applying existing deep>

> learning models and in developing new ones. Thus, an open-source
platform>

> for deep learning backed by some of the top industry and academic
players>

> will be able to attract a large community of users and developers. MXNet
is>

> a complex system needing many iterations of design, implementation and>

> testing. Apache's collaboration framework which encourages active>

> contribution from developers will inevitably help improve the quality of>

> the system, as shown in the success of Hadoop, Spark, etc. Equally>

> important is the community of users which helps identify real-life>

> applications of deep learning, and helps to evaluate the system's>

> performance and ease-of-use. We hope to leverage ASF for coordinating
and>

> promoting both communities, and in return benefit the communities with>

> another useful tool.>

>

> == Known Risks ==>

>

> === Orphaned products ===>

>

> Given the current level of investment in MXNet and the stakeholders
using>

> it - the risk of the project being abandoned is minimal. Amazon, for>

> example, is in active development to use MXNet in many of its services
and>

> many large corporations use it in their production applications.>

>

> === Inexperience with Open Source ===>

>

> MXNet has existed as a healthy open source project for more than a year.>

> During that time, the project has attracted 200+ contributors.>

>

> === Homogenous Developers ===>

>

> The initial list of committers and contributors includes developers from>

> several institutions and industry participants (see above).>

>

> === Reliance on Salaried Developers ===>

>

> Like most open source projects, MXNet receives a substantial support
from>

> salaried developers. A large fraction of MXNet development is supported
by>

> graduate students at various universities in the course of research
degrees>

> - this is more a %u201Cvolunteer%u201D relationship, since in most cases
students>

> contribute vastly more than is necessary to immediately support
research.>

> In addition, those working from within corporations are devoting>

> significant time and effort in the project - and these come from several>

> organizations.>

>

> === A Excessive Fascination with the Apache Brand ===>

>

> We choose Apache not for publicity. We have two purposes. First, we hope>

> that Apache's known best-practices for managing a mature open source>

> project can help guide us.  For example, we are feeling the growing
pains>

> of a successful open source project as we attempt a major refactor of
the>

> internals while customers are using the system in production. We seek>

> guidance in communicating breaking API changes and version revisions.>

> Also, as our involvement from major corporations increases, we want to>

> assure our users that MXNet will stay open and not favor any particular>

> platform or environment. These are some examples of the know-how and>

> discipline we're hoping Apache can bring to our project.>

>

> Second, we want to leverage Apache's reputation to recruit more
developers>

> to create a diverse community.>

>

> === Relationship with Other Apache Products ===>

>

> Apache Mahout and Apache Spark's MLlib are general machine learning>

> systems. Deep learning algorithms can thus be implemented on these two>

> platforms as well. However, in practice, the overlap will be
minimal.  Deep>

> learning is so computationally intensive that it often requires
specialized>

> GPU hardware to accomplish tasks of meaningful size.  Making efficient
use>

> of GPU hardware is complex because the hardware is so fast that the>

> supporting systems around it must be carefully optimized to keep the GPU>

> cores busy.  Extending this capability to distributed multi-GPU and>

> multi-host environments requires great care.  This is a critical>

> differentiator between MXNet and existing Apache machine learning
systems.>

>

> Mahout and Spark ML-LIB follow models where their nodes run
synchronously.>

> This is the fundamental difference to MXNet who follows the parameter>

> server framework. MXNet can run synchronously or asynchronously. In>

> addition, MXNet has optimizations for training a wide range of deep>

> learning models using a variety of approaches (e.g., model parallelism
and>

> data parallelism) which makes MXNet much more efficient (near-linear>

> speedup on state of the art models). MXNet also supports both imperative>

> and symbolic approaches providing ease of programming for deep learning>

> algorithms.>

>

> Other Apache projects that are potentially complimentary:>

>

> Apache Arrow - read data in Apache Arrow%u2018s internal format from
MXNet, that>

> would allow users to run ETL/preprocessing in Spark, save the results in>

> Arrow%u2019s format and then run DL algorithms on it.>

>

> Apache Singa - MXNet and Singa are both deep learning projects, and can>

> benefit from a larger deep learning community at Apache.>

>

> == Documentation ==>

>

> Documentation has recently migrated to http://mxnet.io.  We continue to>

> refine and improve the documentation.>

>

> == Initial Source ==>

>

> We currently use Github to maintain our source code,>

> https://github.com/MXNet>

>

> == Source and Intellectual Property Submission Plan ==>

>

> MXNet Code is available under Apache License, Version 2.0. We will work>

> with the committers to get CLAs signed and review previous
contributions.>

>

> == External Dependencies ==>

>

>  * required by the core code base: GCC or CLOM, Clang, any BLAS library>

> (ATLAS, OpenBLAS, MKL), dmlc-core, mshadow, ps-lite (which requires>

> lib-zeromq), TBB>

>  * required for GPU usage: cudnn, cuda>

>  * required for python usage: Python 2/3>

>  * required for R module: R, Rcpp (GPLv2 licensing)>

>  * optional for image preparation and preprocessing: opencv>

>  * optional dependencies for additional features: torch7, numba, cython
(in>

> NNVM branch)>

>

> Rcpt and lib-zeromq are expected to be licensing discussions.>

>

> == Cryptography ==>

>

> Not Applicable>

>

> == Required Resources ==>

>

> === Mailing Lists ===>

>

> There is currently no mailing list.>

>

> === Issue Tracking ===>

>

> Currently uses GitHub to track issues. Would like to continue to do so.>

>

> == Committers and Affiliations ==>

>

>  * Tianqi Chen (UW)>

>  * Mu Li (AWS)>

>  * Junyuan Xie (AWS)>

>  * Bing Xu (Apple)>

>  * Chiyuan Zhang (MIT)>

>  * Minjie Wang (UYU)>

>  * Naiyan Wang (Tusimple)>

>  * Yizhi Liu (Mediav)>

>  * Tong He (Simon Fraser University)>

>  * Qiang Kou (Indiana U)>

>  * Xingjian Shi (HKUST)>

>

> == Sponsors ==>

>

> === Champion ===>

>

> Henri Yandell (bayard at apache.org)>

>

> === Nominated Mentors ===>

>

> Sebastian Schelter (ssc@apache.org)>

>

>

> === Sponsoring Entity ===>

>

> We are requesting the Incubator to sponsor this project.>

>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message