Flashlight: Facebook Launches ML Library Built On C++

Deep and ML frameworks are good at what they do — but altering the internals of these frameworks has traditionally proved difficult.

Design by Mark Zuckerberg, founder and chief executive officer of Facebook Inc., speaks during the Facebook F8 Developers Conference in San Francisco, California, U.S., on Tuesday, April 12, 2016. Zuckerberg outlined a 10-year plan to alter the way people interact with each other and the brands that keep advertising dollars rolling at the world's largest social network. Photographer: Michael Short/Bloomberg via Getty Images

Earlier this month, Facebook AI launched an open-source machine learning library called Flashlight that lets developers and researchers execute AI/ML applications seamlessly via C++ API. The library is currently available on Github

Facebook AI said its machine learning library is intuitive and simple to use as it contains only the most basic building blocks needed for research. Further, it claimed that it takes seconds to rebuild the entire library and training machine learning pipelines.

“Deep and ML frameworks are good at what they do — but altering the internals of these frameworks has traditionally proved difficult. Finding the right code to change is time-consuming and error-prone, as low-level internals can be unintentionally obfuscated closed-source or hand-tuned for particular purposes. And once you have made changes, recompiling the framework afterwards is both time-and compute-intensive,” said Facebook Artificial Intelligence Research (FAIR) in its blog post.

Subscribe to our Newsletter

Join our editors every weekday evening as they steer you through the most significant news of the day, introduce you to fresh perspectives, and provide unexpected moments of joy
Your newsletter subscriptions are subject to AIM Privacy Policy and Terms and Conditions.

Like dlib, mlpack and Shogun, Flashlight is also written in modern C++. It has an incredibly low framework overhead, as modern C++ enables parallelism and speed. In addition to this, it also provides simple bridges to integrate code from low-level domain-specific languages and libraries.

Other packages C++ supports includes Tensorflow for deep learning, Microsoft Cognitive Toolkit (CNTK) for deep learning; OpenCV for computer vision; and DyNet and FANN for neural networks.

Tech experts believe C++ has its limitations as it is very syntax oriented. In comparison, Python or R, C++ are beginner-friendly, and there is plenty of library support.

Source: Facebook

While modern C++ eliminates the need for tasks like memory management for providing powerful tools for functional programming, Flashlight claims to support research in C++ with no external figures or bindings to perform tasks such as threading, memory mapping, or interoperating with low-level hardware. Ergo, integrating fast, parallel code becomes direct and straightforward.

Source: Facebook 

“We are open-sourcing Flashlight to make for the AI community to tinker with the low-level code underpinning deep and ML frameworks, taking better advantage of the hardware at hand and pushing the limits of performance,” said Jacob Kahn, a research engineer at FAIR.

Before this, Facebook AI has introduced a new dataset called Casual Conversations to check the robustness of AI models across four primary dimensions — age, gender, skin type and lighting. 

Under the hood

Facebook AI said Flashlight is developed on top of a shallow stack of basic abstractions that are modular and easy to use. For this, it has used an ArrayFire tensor library, which supports dynamic tensor shapes and types, thereby removing the need for rigid compile-time specifications and C++ templates. Besides this, ArrayFire helps in optimising operations with an efficient just-in-time compiler.

Flashlight also includes custom, tunable memory managers and APIs for distributed and mixed-precision training. In addition to this, Flashlight also features modular abstractions for working with data and training at scale, combined with a fast, lightweight Autograd. “These components are built to support general research directions, whether in deep learning or elsewhere,” said Kahn. 

Flashlight applications 

Flashlight-based lightweight domain applications (as shown below) support research across various modalities, including speech recognition, language modelling and image classification and image segmentation — all in one codebase.

Amit Raja Naik
Amit Raja Naik is a seasoned technology journalist who covers everything from data science to machine learning and artificial intelligence for Analytics India Magazine, where he examines the trends, challenges, ideas, and transformations across the industry.

Download our Mobile App

MachineHack | AI Hackathons, Coding & Learning

Host Hackathons & Recruit Great Data Talent!

AIMResearch Pioneering advanced AI market research

With a decade of experience under our belt, we are transforming how businesses use AI & data-driven insights to succeed.

The Gold Standard for Recognizing Excellence in Data Science and Tech Workplaces

With Best Firm Certification, you can effortlessly delve into the minds of your employees, unveil invaluable perspectives, and gain distinguished acclaim for fostering an exceptional company culture.

AIM Leaders Council

World’s Biggest Community Exclusively For Senior Executives In Data Science And Analytics.

3 Ways to Join our Community

Telegram group

Discover special offers, top stories, upcoming events, and more.

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Subscribe to our Daily newsletter

Get our daily awesome stories & videos in your inbox