Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 998F3200BF4 for ; Fri, 6 Jan 2017 12:52:55 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 97F16160B37; Fri, 6 Jan 2017 11:52:55 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6FF6D160B1F for ; Fri, 6 Jan 2017 12:52:54 +0100 (CET) Received: (qmail 25520 invoked by uid 500); 6 Jan 2017 11:52:53 -0000 Mailing-List: contact general-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: general@incubator.apache.org Delivered-To: mailing list general@incubator.apache.org Received: (qmail 25508 invoked by uid 99); 6 Jan 2017 11:52:53 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jan 2017 11:52:53 +0000 Received: from mail-yw0-f181.google.com (mail-yw0-f181.google.com [209.85.161.181]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id C94EA1A0329 for ; Fri, 6 Jan 2017 11:52:52 +0000 (UTC) Received: by mail-yw0-f181.google.com with SMTP id v81so265671812ywb.2 for ; Fri, 06 Jan 2017 03:52:52 -0800 (PST) X-Gm-Message-State: AIkVDXJ+ez1ob+/6uTFtNSPCRwlj5isPJmiqAEi5g7TLWyUEWbsfWUa8DGyMRQT27xDNQKduVolaevjitufnCQ== X-Received: by 10.129.42.213 with SMTP id q204mr72974285ywq.342.1483703571830; Fri, 06 Jan 2017 03:52:51 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "John D. Ament" Date: Fri, 06 Jan 2017 11:52:41 +0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [DISCUSS] Proposing MXNet for the Apache Incubator To: general@incubator.apache.org Content-Type: multipart/alternative; boundary=001a1141e46859e1f705456ba841 archived-at: Fri, 06 Jan 2017 11:52:55 -0000 --001a1141e46859e1f705456ba841 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable There seem to be some discrepancies in the proposal vs what they currently have. That and some comments in line. On Fri, Jan 6, 2017 at 12:12 AM Henri Yandell 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. > This seems to be a broad gap between committers and contributors. Of the remaining 220 not included as committer, are they being considered? > > The wiki proposal page is located here: > > https://wiki.apache.org/incubator/MXNetProposal > > I've added it to the project proposals page. > 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 membe= rs > to volunteer to mentor the project in addition to Sebastian and myself. > > Currently the list of committers is based on the current active coders, s= o > 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 > > --------- > > =3D MXNet: Apache Incubator Proposal =3D > > =3D=3D Abstract =3D=3D > > MXNet is a Flexible and Efficient Library for Deep Learning > > =3D=3D Proposal =3D=3D > > 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 f= or > fast model training, and supports a flexible programming model and multip= le > 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 symboli= c > and imperative operations on the fly. A graph optimization layer on top o= f > that makes symbolic execution fast and memory efficient. The MXNet librar= y > is portable and lightweight, and it scales to multiple GPUs and multiple > machines. > > =3D=3D Background =3D=3D > > 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 recentl= y > become very popular due to its applicability and advancement of domains > such as Computer Vision, Speech Recognition, Natural Language Understandi= ng > and Recommender Systems. With pervasive and cost effective cloud computin= g, > large labeled datasets and continued algorithmic innovation, Deep Learnin= g > has become the one of the most popular classes of algorithms for machine > learning practitioners in recent years. > > =3D=3D Rational =3D=3D > > The adoption of deep learning is quickly expanding from initial deep doma= in > 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. > > > =3D=3D Initial Goals =3D=3D > > 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 > > > =3D=3D Current Status =3D=3D > > =3D=3D=3D Meritocracy =3D=3D=3D > > The MXNet project already operates on meritocratic principles. Today, MXN= et > 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 t= o > 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. > > =3D=3D=3D Community =3D=3D=3D > > 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 proje= ct > 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. > > =3D=3D=3D Core Developers =3D=3D=3D > > (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) > > AFAIK, we still expect email addresses, not github accounts. > =3D=3D=3D Alignment =3D=3D=3D > > ASF is already the home of many distributed platforms, e.g., Hadoop, Spar= k > 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. > > =3D=3D Known Risks =3D=3D > > =3D=3D=3D Orphaned products =3D=3D=3D > > 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 an= d > many large corporations use it in their production applications. > > =3D=3D=3D Inexperience with Open Source =3D=3D=3D > > MXNet has existed as a healthy open source project for more than a year. > During that time, the project has attracted 200+ contributors. > > =3D=3D=3D Homogenous Developers =3D=3D=3D > > The initial list of committers and contributors includes developers from > several institutions and industry participants (see above). > > =3D=3D=3D Reliance on Salaried Developers =3D=3D=3D > > Like most open source projects, MXNet receives a substantial support from > salaried developers. A large fraction of MXNet development is supported b= y > graduate students at various universities in the course of research degre= es > - this is more a =E2=80=9Cvolunteer=E2=80=9D 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. > > =3D=3D=3D A Excessive Fascination with the Apache Brand =3D=3D=3D > > 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 developer= s > to create a diverse community. > > =3D=3D=3D Relationship with Other Apache Products =3D=3D=3D > > 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. De= ep > learning is so computationally intensive that it often requires specializ= ed > GPU hardware to accomplish tasks of meaningful size. Making efficient us= e > 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 an= d > 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=E2=80=98s internal format from M= XNet, that > would allow users to run ETL/preprocessing in Spark, save the results in > Arrow=E2=80=99s 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. > > =3D=3D Documentation =3D=3D > > Documentation has recently migrated to http://mxnet.io. We continue to > refine and improve the documentation. > > =3D=3D Initial Source =3D=3D > > We currently use Github to maintain our source code, > https://github.com/MXNet This doesn't look right. This github organization has a single repo that contains a mobile app that appears to been 4 years old. The website points to https://github.com/dmlc/mxnet which looks more correct. Which is it? I'll also note that if it is the latter, there are git submodules in the codebase. Please include references to those modules as well. Please also include the website source code, if available. I'll point out that since the github name is taken, it may be cause to say that MXNet isn't a viable name. But that can be worked out later. > > > =3D=3D Source and Intellectual Property Submission Plan =3D=3D > > MXNet Code is available under Apache License, Version 2.0. We will work > with the committers to get CLAs signed and review previous contributions. > > =3D=3D External Dependencies =3D=3D > > * 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) > Before we go any further, I think we need to address the incompatible licenses. Knowing that R is a core component of MXNet, how will you replace it? > > Rcpt and lib-zeromq are expected to be licensing discussions. > > =3D=3D Cryptography =3D=3D > > Not Applicable > > =3D=3D Required Resources =3D=3D > > =3D=3D=3D Mailing Lists =3D=3D=3D > > There is currently no mailing list. > > =3D=3D=3D Issue Tracking =3D=3D=3D > > Currently uses GitHub to track issues. Would like to continue to do so. > > =3D=3D Committers and Affiliations =3D=3D > > * 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) > > This seems to go against the notion of reliance on salaried developers. You're in fact not reliant on salaries developers. > =3D=3D Sponsors =3D=3D > > =3D=3D=3D Champion =3D=3D=3D > > Henri Yandell (bayard at apache.org) > > =3D=3D=3D Nominated Mentors =3D=3D=3D > > Sebastian Schelter (ssc@apache.org) > > > =3D=3D=3D Sponsoring Entity =3D=3D=3D > > We are requesting the Incubator to sponsor this project. > --001a1141e46859e1f705456ba841--