Algorithmia is an AI startup that offers access to a catalog of 3,500 algorithms, functions and machine-learning models in a widespread bid to change how algorithms are used. The startup has received funding from Google; Anna Patterson, VP of Engineering for AI at Google, led a Series A funding round last year that saw Algorithmia take in $10.5M. Other participants in the round included WorkBench, Madrona Venture Group, Rakuten Ventures and Osage University Partners.
“As someone who has spent years designing and deploying machine learning systems, I’m impressed by Algorithmia’s serverless microservice architecture – it’s a great solution for organizations that want to deploy AI at any scale,” said Anna Patterson, vice president of engineering for artificial intelligence at Google at the time.
Algorithmia’s goal is to act as a service for companies wanting to leverage recent machine learning (ML) advances. Founder and CEO Diego Oppenheimer told TechCrunch, “There are a lot of people coming to VCs and saying: We are AI for this — and we are AI for that,” he said. “But there aren’t that many that are enabling this. The back-end operations, the scaling. Everybody believes that toolset is necessary.”
When Rachel Metz wrote about the company for Technology Review several years ago close to its founding, she described the platform as offering “a new twist on online matchmaking… Its website is a place for businesses with piles of data to find researchers with a dreamboat algorithm that could extract insights–and profits–from it all”.
The company is Seattle based and as of last year had 13 employees, mainly engineers. It has since expanded to 23 and opened a second office in New York City with a sales team and solutions engineering team.
Algorithmia offers solutions for engineering, data science and enterprise. Its overall services focus on three different areas:
- Automating DevOps for ML (including rapid deployment of models, advanced monitoring ability, autoscaling “to match any demand”)
- Accelerating Teamwork (aimed at empowering data scientists, encouraging collaboration across organization and zero-lag model iteration)
- Optimizing Hardware (offering serverless microservices built on a serverless infrastructure, optimized GPU usage and advanced scheduling capabilities)
At the heart of the service is its algorithms library, or algorithms-as-a-service functionality..
The algorithms the site provides through its catalog come from university researchers and individual developers worldwide. Oppenheimer set it up to make better use of the algorithms developed in academia then left to languish after their initial publication in research papers. In addition to hosting and distributing trained deep learning models using a cloud-based platform, the service makes these lines of code simpler to integrate and accessible to anyone by seamlessly uniting everything across a straightforward REST API. If Algorithmia succeeds in making a good match, the researcher is paid a fee for the algorithm’s use and the company takes a small cut.
“Engineers develop new algorithms on a daily basis, but what normally happens is that they write a paper about it, get it published and move on,” Algorithmia co-founder and Chief Technology Officer Kenny Daniel told USC News. “These algorithms don’t make it out into the world, where they could actually benefit people. There’s a huge supply of algorithms and a huge demand for them; they just aren’t meeting. I saw this as a perfect opportunity to build a market.”
One reason that academic papers have tended to languish previously is that academic papers are written for academic use, not allowing laypeople and people from industry to easily discover (and understand) their ideas. Once a company finds an idea it likes, it takes time and financial resources to interpret the academic style and make it something testable. To prevent this, Algorithmia asks that all algorithms submitted to its site use a standardized application programming interface, which makes them simpler to use and compare.
The company hosts and distributes trained deep learning models using GPUs in the cloud. It natively supports the Caffe, Theano, and TensorFlow deep learning frameworks with support for Torch and MxNet under development.
“Algorithms solve a problem. So when you have a collection of algorithms, you essentially have a collection of problem-solving things,” says Oppenheimer.
Algorithms, at their essence, are the foundational sets of instructions that computers follow to perform tasks, process information or solve a problem. They underpin search engines, music and film recommendations, and even help machines learn how to learn.
Algorithmia currently has 45,000 developers on the platform, and offers its customers the ability to run their workloads in private, secured clouds; that has grown business in the enterprise field as well as more unusual customer bases, such as intelligence agencies. All algorithms on the platform are live so that users can immediately try them out, see results, and explore using other algorithms at the same time.
Algorithmia’s CODEX platform (aka Algorithmia Enterprise) was designed to be portable, and it runs on AWS, Azure and the Google Cloud Platform. It also supports private deployments on OpenStack – a response to requests from customers in the financial and telecom sector.
The site allows users the opportunity to vote and comment on how useful different algorithms are and displays how many times each one has been used. Algorithmia encourages developers who submit their work to allow others to see the code behind their algorithms so that they can see errors or find ways to improve on their efficiency.
Algorithmia AI Layer
The Algorithmia AI Layer is targeted at companies that want to construct large AI and ML portfolios, but whose developers don’t have the specialized infrastructure necessary to run AI technologies. The software allows developers to automate their software development processes and deploy models written in their programming language of choice via an API in a very short period of time: when organized and implemented on a manual basis, the process via Algorithmia takes minutes as opposed to weeks. Manual deployment can additionally involve many hours of work in updates; and in non-automated solutions, developers are often bound by a lack of AI infrastructure, which can keep AI projects from reaching completion.
“Tensorflow is open-source, but scaling it is not,” Kenny Daniel, co-founder and CTO of Algorithmia, said. “Almost all R&D has focused on collecting and cleaning data, and building models. Algorithmia has spent the last five years building the infrastructure that will put those models to work.”
Algorithmia believes the best solution to these developer challenges is a dedicated AI Layer, which works as a host to the AI and ML models and easily fits inside companies’ existing infrastructure stacks. Algorithmia introduced the new service last year as a way of helping data scientists focus on their work instead of infrastructure.
AI and ML models are defined as mathematical models constructed as a result of algorithms using a particular data set during training. Data is used for training that contains the correct answer to a problem (defined as the “target”), in addition to multiple incorrect answers. The algorithm then “learns” the answer to the problem and a new model is built that can be used to make inferences on new data, which doesn’t contain a target.
“[The] models are usually modeled around past behavior in an effort to predict a future classification,” Diego Oppenheimer said. “This could be anything from looking for anomalies in a time series to finding objects in an image.”
The new AI Layer product lets AI experts use Algorithmia to deploy their models on the infrastructure of their choice, potentially solving what Oppenheimer called “the last mile” problem in AI research in an interview with GeekWire. He sees AI Layer as something data scientists at large enterprises can deploy to get their models up and running faster than if they were just sent to operations, or that smaller companies can benefit from by avoiding wasting the time of expensive AI researchers on troubleshooting computing infrastructure.
“The people who are typically doing machine learning and data science are typically not the people who have been doing production internet-type systems,” Oppenheimer said. “It’s a mismatch of skillsets” and it works both ways; production operators sometimes need to rewrite code to make it work on their infrastructure, and that can mess up sensitive AI research models, he said.
The company offers two options for developers: a serverless and an enterprise version of the AI Layer:
Serverless AI Layer – The serverless edition is essentially a cloud-based version accessed via the company’s website. Users log into the platform, choose their models, then host them on Algorithmia’s cloud via an API.
Enterprise AI Layer – The enterprise layer can be set up on a public cloud (of the customer’s choice) or private cloud with models added via GitHub and utilized via an API call.
Algorithms as a Microservice
Algorithmia’s approach containerizes algorithms, packaging them as microservices, which are hosted on their scalable and serverless cloud infrastructure, and are called up through their API, via a few lines of code.
“By containerizing algorithms, we ensure that code is always ‘on’, and always available, as well as being able to auto-scale to meet the needs of the application, without ever having to configure, manage, or maintain servers and infrastructure,” says Algorithmia co-founder and CEO Diego Oppenheimer in a recent blog post. “Containerized algorithms shorten the time for any development team to go from concept to prototype, to production-ready app. This structure makes software development more agile and efficient. It reduces the infrastructure needed, and abstracts an application’s various functions into microservices to make the entire system more resilient.”
Use Cases & Demos
Colorful Image Colorization microservice
One of Algorithmia’s recently released microservices tool offers a computer vision deep learning algorithm, which was trained on a million images from the Imagenet database to automatically colorize black-and-white photographs. This demo of the Colorful Image Colorization microservice allows you to try it out.
Places365 Classifier microservice
This microservices tool uses deep learning to identify places in imagery. The Places365 Classifier microservice is a computer vision algorithm, which was trained on 1.8 million images to recognize 365 scene categories. A demo here allows you to trial it.
The algorithm economy has been slowly emerging; it represents a place in which developers can produce, distribute and commercialize code via online marketplaces, and in which other developers, enterprises and organizations can easily find, choose and stack different algorithms to create different applications. Algorithmia is at the heart of this.
The company is quick to admit that there have been challenges along the way; hosting deep learning models using GPUs in the cloud is not easy. “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. The GPU was never designed to be shared in a cloud service like this”, says Daniel. “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.”
Another potential challenge is that it is not always clear who owns the IP for an algorithm – whether it is a professor or a graduate student at a university. Co-founder Diego Oppenheimer says it is different from school to school, although several make theirs open source. Algorithmia itself takes no ownership stake in the algorithms posted on its site.
Angel investor Oren Etzioni believes that eventually Algorithmia will go further than simply matching up buyers and sellers as its algorithms library grows. Etzioni envisions it leading to a new, more efficient way of composing software, in which developers gather together various different algorithms from the selection on offer.