Premise
Deep learning developers are beginning to adopt open modeling frameworks that mitigate the risks of being locked into any of the myriad of tools in this vigorously competitive field.
Analysis
Deep learning (DL) is infusing diverse applications in the cloud and at the network’s edge, especially in embedded, mobile, and Internet of Things & People (IoT&P) platforms.
DL can achieve algorithmically automated inferences of greater abstraction, sophistication, and in a wider range of use cases than “traditional” machine learning (ML). DL’s power rests in its ability to infer high-level data patterns through neural-net algorithms that are intricately hierarchical, massively parallel, and highly contextual. In addition to their use in distilling insights from alphanumeric data, DL models are especially useful for analyzing video, image, voice, and other unstructured and semi-structured content types.
For application developers, building DL-infused applications requires specialized frameworks, libraries, APIs, and back-end infrastructure. Most DL developers choose to work within open-source toolkits—such as TensorFlow, MXNet, and CNTK–that facilitate every step of this highly technical pipeline.
Developers should match DL tools with functional and technical requirements by:
- Identifying how DL complements your analytics strategy: Implement DL to add value and leverage existing enterprise investments in advanced analytics, machine learning, big data, real-time streaming, cloud services, and high-performance computing.
- Assessing your DL functional requirements: Place priority on DL development environments that enable programming in developers’ preferred languages; support access to DL functionality through simple APIs; allow DL models to be easily prototyped, built, and trained from rich algorithm libraries and pre-defined modular components; and accelerate DL-model compilation and deployment in execution formats that may be efficiently processed by back-end hardware platforms.
- Evolving your deep learning toolchain toward open frameworks: To mitigate developer risks and help them leverage the work done in two or more DL environments, more vendors are providing tool-agnostic DL platforms. In addition to exploring these, developers should also adopt DL tools that incorporate the growing range of higher-level APIs and abstractions, shared DL-model representations, cross-platform DL compilers, and heterogeneous DL-microservice decouplers.
Identify How Deep Learning Complements Your Analytics Strategy
DL rides on a stack of advanced analytics, machine learning, big data, real-time streaming, cloud services, high-performance computing, and other key IT investments. To the extent that you require DL, it will usually complement investments in tools and platforms associated with these enabling technologies.
For starters, you should evaluate DL tools as add-ons, extensions, or augmentations to your existing ML portfolio. A growing range of data science platforms support development of DL ad ML for execution in Spark, Hadoop, and other back-end platforms. Key commercial tools in this regard include those from IBM, Cloudera, Databricks, MapR, Microsoft, and RapidMiner.
To the extent that you’ve moved more of your data, analytics, and other applications to public clouds, you may be using the DL tools, libraries, and other capabilities that they offer to analyze that data. Public cloud proviers with strong DL capabilities include AWS, Microsoft, Google, and IBM.
Furthermore, DL may represent a deepening of your scientific computing portfolio. Several popular DL tools—including Torch and Theano—also offer comprehensive libraries of mathematical operations, statistical distributions, basic linear algebra operations, and numeric optimization routines.
If your company builds graphics or gaming applications, you may already be programming to the NVIDIA’s CUDA API and using that vendor’s graphical processing unit (GPU)-based hardware for DL training and inferencing associated with those and other applications. CUDA is a comprehensive programming framework for DL and these other applications, as well as scientific computing and numerical analytics.
If, like many users, you’ve made a significant investment in Intel’s CPUs, you may want to leverage those platforms to run DL applications. In this regard, Intel has rolled out a wide range of CPU-optimized DL capabilities for its Xeon SP family of CPUs. It has also released enhancements to its Math Kernel Library and Advanced Vector Extensions that enable optimized execution on Intel CPUs of DL models built in TensorFlow and other frameworks.
Assess your deep learning functional requirements
DL is the foundation of self-driving cars, drones, robotics, and many other frontiers in the 21st century. DL is also becoming ubiquitous in our daily lives, as the embedded artificial intelligence (AI) that infuses mobile, messaging, social, and other applications.
Developers are increasingly working projects that build DL for speech recognition, natural language processing, face recognition, conversational user interfaces, smart cameras, environmental awareness, augmented reality, photo manipulation, and much more. More DL-centric projects involve deploying these statistical models for embedding at the edge of the IoT&P. The chief trends in this regard include:
- Deployment of DL models in edge endpoints for multifactor authentication, computer vision, speech recognition, natural language processing, digital assistant/chatbot, emotion detection, face recognition, augmented reality, and environmental sense & avoid;
- Execution of DL models in three-tier edge architectures that span devices, hub/gateway nodes, and cloud tiers;
- Processing of real-time local inference, adaptive local learning, and federated training workloads by device-embedded DL models;
- Acceleration of DL at the edge through GPUs, CPUs, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), and various neuromorphic chipset architectures.
Considering the diversity of applications and environments within which they’re programming DL, developers should place priority on the following requirements when searching for the right productivity tool:
- Enable coding of DL models in their preferred languages;
- Support access to DL functionality through simple APIs;
- Allow composition of DL models from rich algorithm libraries and pre-defined modular components;
- Facilitate efficient training of DL models on top of the developer’s preferred data lakes and parallel computing clusters;
- Accelerate compilation of DL models to the most efficient execution formats for back-end hardware platforms;
- Support automatic packaging and deployment of DL models to target back-end application platforms; and
- Streamline management of ongoing DL model release, monitoring, governance, and administration through well-engineered toolchain and DevOps platforms
Evolve your deep learning toolchain toward open frameworks
DL developers usually do their work within a particular modeling tool, such as those discussed here. Typically, a developer has to adapt their own manual coding style to interfaces provided by a specific tool.
As enterprises proliferate DL initiatives, the range of tools in use is likely to expand. That trend may crimp developer productivity if launching into a new DL project requires cross-training on a different modeling tool. Recognizing this, more vendors, such as IBM and NVIDIA, provide tool-agnostic DL development platforms that bundle or interface to TensorFlow, MXNet, CNTK, and other popular tools, both on the front-end modeling capabilities and in the back-end compilation and deployment of built models.
The DL profession is beginning to recognize the need for an open, tool-agnostic modeling framework. Table 1 discusses industry efforts that, independently of each other, are building the various layers that will be essential elements of such a framework.
LEVEL | DISCUSSION |
Higher-level DL APIs and abstractions | Keras–which runs on top of the TensorFlow, CNTK, Theano, and DeepLearning4J back-ends–provides a high-level Python API for fast prototyping and programming of DL models. In addition, the recently announced Gluon framework, developed by AWS and Microsoft, defines a Python API for simplified DL programming on MXNet (currently), CNTK (soon), and potentially any DL back-end. Furthermore, the new PlaidML tool provides an open-source DL abstraction layer that runs on development platforms with OpenCL-capable GPUs from NVIDIA, AMD, or Intel. PlaidML builds on the Keras API and, according to its developer Vertex.AI, will be integrated with TensorFlow, PyTorch, and Deeplearning4j libraries and back-ends. |
Shared DL-model representations | The Keras API (which, as noted above, is supported on several DL tools) enables cross-tool sharing of computational graphs that were defined in that framework. Recently, Microsoft and Facebook teamed on Open Neural Network Exchange (ONNX), which provides a shared model representation that will be supported in CNTK, Caffe2, and PyTorch. AWS recently announced support for ONNX. In addition, AWS recently announced a tool for converting DL models created in MXNet so that they can be efficiently processed in Apple’s mobile-centric CoreML framework. |
Cross-platform DL model compilers | Already, we see several industry initiatives that enable a DL model created in one front-end tool to be automatically compiled for efficient execution on heterogeneous back-end platforms and chipsets. AWS has announced NNVM Compiler, Intel has NGraph, Google has XLA, and NVIDIA has TensorRT 3. |
Heterogeneous DL-microservice decouplers | As DL becomes yet another category of functions deployed as distributed microservices, we’ll see more tool-agnostic initiatives that enable decoupled multi-node interoperability of apps built in heterogeneous DL tools. In that regard, IBM Research’s recent announcement of its Distributed Deep Learning (DDL) software library is significant. Still in technical preview, it provides an API that enables TensorFlow, Caffe, Torch, and Chainer developers to scale-out DL model execution across PowerAI. Under the covers, DDL-enabled apps and PowerAI clusters speak a “multiring” algorithm that dynamically optimizes cross-node network paths to automatically balance latency and bandwidth utilization across a distributed DL cluster. |
Table 1: Industry Efforts Toward an Open Deep Learning Development Framework
Action Item
DL developers should adopt modeling tools that allow them to prototype and program these models in their preferred languages, through simple APIs, and with rich statistical and scientific computing libraries. There is an abundance of open-source DL distributions on the market, and the leading tools all support fast, efficient training and deployment of sophisticated DL for diverse applications running in disparate cloud, application, and accelerator-chipset architectures. Going forward, DL developers will need to ensure that the chosen tools integrate closely with their enterprises’ preferred cloud computing, big data analytics, and DevOps environments.