Machine learning is all the rage these days at hyperscale companies, which are using them to drive key applications like search, image recognition, and language translation. Mostly these companies keep such proprietary technology under wraps, but occasionally the unwashed masses get a glimpse of the kind of software that is shaping their online lives.
Like this week. In a blog entry posted May 9 on Facebook’s Engineering website, software developer Jeffry Dunn talks about the company’s machine learning software platform, known as FBLearner Flow. First deployed on Facebook servers last year, the software is now being employed by a quarter of the company’s engineering teams and is being used to develop models for personalized news feeds, ranking search results, and filtering content, among other things.
According to Dunn, FBLearner Flow has trained more than a million models and its prediction engine is able to make more than 6 million predictions per second. In April alone, more than half a million workflows were executed on a cluster containing thousands of nodes. Dunn says some of the more computationally-demanding runs took days to complete.
As impressive as those numbers are, one of the main goals of FBLearner Flow was to provide a more generalized framework that would enable a lot of reusability and automation. For example, the software automatically allocates machine resources such as CPUs, GPUs, and memory for functions at run-time. The idea is to provide a productive environment for Facebook developers, allowing them to devote more time on feature engineering and less time on tweaking algorithms.
The post delves rather deeply into the inner workings of the software and its design rationale. To read Dunn’s entire blog, follow the link.