2016-07-14



Introducing Cloud Hosted Deep Learning Models

At Algorithmia, we believe in democratizing access to state-of-the-art algorithmic intelligence. That’s why we’re introducing a solution for hosting and distributing trained deep learning models on Algorithmia using GPUs in the cloud.

Today, researchers and developers can train their neural nets locally, and deploy them to Algorithmia’s scalable, cloud infrastructure, where they become smart API endpoints for other developers to use.

We’re excited to announce initial native support for the Caffe, Theano, and TensorFlow frameworks, and have added 16 open source deep learning models that run as microservices to start. Support for Torch and MxNet are coming soon.

Grab out developer guides for Caffe, TensorFlow, and Theano here.

Plus, we’ve created two demos to showcase how easy it is to build applications off of hosted models:

Automatically colorize black and white photos

Classify places and locations in images

We want Algorithmia to be the place for researchers and developers creating deep learning models to showcase their work, distribute it, and make it available for other developers to use.

We believe algorithms and models should be implemented once, reusable by developers anywhere, in any language.

You should train your model using the tools you’re comfortable with. And, when you’re ready, deploy it to our infrastructure, where your model will join a collection of more than 2,200 algorithmic microservices other developers can use to obtain real-time predictions, and build production-ready, machine intelligent apps.

Why Is Deep Learning So Important?



Thanks to an abundance of digital data, and powerful GPUs, we are now capable of teaching computers to read, see, and hear.

Just this year, a handful of high-profile experiments came into the spotlight, including Microsoft Tay, Google DeepMind AlphaGo, and Facebook M.

These experiments all relied on a technique known as deep learning, which attempts to mimic the layers of neurons in the brain’s neocortex. This idea – to create an artificial neural network by simulating how the neocortex works – has been around since the 1980s.

During the training process, the algorithm learns to discover useful patterns in the digital representation of data, like sounds and images. In a very real sense, we’re teaching machines to teach themselves.

As a result, it’s become clear that deep learning is the next frontier in machine learning and artificial intelligence.

Yet, despite plentiful data, and abundant computing power, deep learning is still very hard.

The bottleneck is the lack of developers trained to use these deep learning techniques. Machine learning is already a highly specialized domain, and those with the knowledge to train deep learning models are even more select.

For instance, Google can’t recruit enough developers with deep machine learning experience. Their solution? Teach their developers to use ML instead. When Facebook’s engineers were struggling to take advantage of machine learning, they created an internal tool for visualizing ML workflows.

But, where does that leave the other 99% of developers that don’t work at one of these top tech company?

Very few people in the world know how to use these tools.

“Machine learning is a complicated field,” S. Somasegar says, venture partner at Madrona Venture Group and the former head of Microsoft’s Developer Division. “If you look up the Wikipedia page on deep learning, you’ll see 18 subcategories underneath Deep Neural Network Architectures with names such as Convolutional Neural Networks, Spike-and-Slab RBMs, and LTSM-related differentiable memory structures.”

“These are not topics that a typical software developer will immediately understand.”

Yet, the number of companies that want to process unstructured data, like images or text, is rapidly increasing. The trend will continue, primarily because deep learning techniques are delivering impressive results. Which is why it’s important for the people capable of training neural nets are also able to share their work with as many people as possible.

“Algorithmia provides an effective way for developers to seamlessly use deep learning modules,” Somasegar says.

GPUs on-demand and running in the cloud, eliminate the manual work required for teams and organizations to experiment with cutting-edge deep learning algorithms and models, which allows them to get started for a fraction of the cost.

“Deep learning has proven remarkably powerful, but it is far from plug-n-play,” Oren Etzioni says, CEO of the Allen Institute for Artificial Intelligence. “That’s where Algorithmia’s technology comes in – to accelerate and streamline the use of deep learning.”

We have a unique perspective on using deep learning frameworks, having been forced to deal with the idiosyncrasies of deploying TensorFlow, Caffe, and Theano into highly scalable, cloud-based production environments.

While GPUs were originally used to accelerate graphics and video games, more recently they’ve found new life powering AI and deep learning tasks, like natural language understanding, and image recognition.

“We’ve had to build a lot of the technology and configure all of the components required to get GPUs to work with these deep learning frameworks in the cloud,” Kenny Daniel says, Algorithmia founder and CTO. “The GPU was never designed to be shared in a cloud service like this.”

Hosting deep learning models in the cloud can be especially challenging due to complex hardware and software dependencies. While using GPUs in the cloud is still nascent, they’re essential for making deep learning performant.

“For anybody trying to go down the road of deploying their deep learning model into a production environment, they’re going to run into problems pretty quickly,” Daniel says. “Using GPUs inside of containers is a challenge. There are driver issues, system dependencies, and configuration challenges. It’s a new space that’s not well-explored, yet. There’s not a lot of people out there trying to run multiple GPU jobs inside a Docker container.”

“We’re dealing with the coordination needed between the cloud providers, the hardware, and the dependencies to intelligently schedule work and share GPUs, so that users don’t have to.”

On Algorithmia, algorithms run as serverless microservices. And, our solution for hosting and distributing trained deep learning models using GPUs is one of the many building blocks developers can use to create, share, and remix algorithmic intelligence at scale.

By making algorithms composable, interoperable, and extensible, algorithms can be written in any supported language, reused, and made available to application developers where the code is always “on,” and available via a simple REST API.

We’re committed to making algorithms accessible and discoverable by everyone, and look forward to seeing what you build with Algorithmia.

Thanks,
– Diego M. Oppenheimer, Algorithmia founder and CEO

Let us know what you think

If you run into any issues with hosting your deep learning model, or want us to support a different framework, please reach out. Are you excited about turning your deep learning model into a microservice? Let us know @Algorithmia.

Useful Links: Developer Center | API Docs | Data Portal Guides

Facts and Figures

Application developers can access the API via our clients for Java, Scala, Python, JavaScript, Node.js, Ruby, Rust, CLI, and cURL. Our AWS Lambda blueprint is perfect for those working on event-driven and IoT projects.

Algorithmia is the largest algorithm marketplace in the world, with more than 19,000 developers leveraging more than 2,200 algorithms. Algorithms and models on Algorithmia include research from MIT, University of Washington, Carnegie Mellon University, University of California Berkeley, Caltech, University of Texas at Austin, University of Tokyo, University of Toronto, among others.

The post Turn Your Deep Learning Model into a Serverless Microservice appeared first on Algorithmia.

Show more