Flashlight is a new open-source machine learning (ML) toolkit that aims to solve all the problems
While deep learning and machine learning ML frameworks perform well, customizing their underlying components has always been challenging. Low-level internals can be mistakenly obfuscated, closed-source, or hand-tuned for specific purposes, making it difficult and time-consuming to find the proper code to alter. To fuel ground-breaking research, FAIR developed Flashlight, a new open-source machine learning (ML) toolkit based in C++ that allows teams to quickly and efficiently change deep and ML frameworks to better suit their needs.
Flashlight was built from the ground up to be fully adjustable by the user. It’s easy to use because it includes the fundamental elements of a study environment. Because of its basic design and lack of language bindings, rebuilding the whole Flashlight library and its training pipelines takes only a few seconds whenever its essential components are modified. Since current C++ allows for first-class parallelism and out-of-the-box speed, Flashlight has extremely low framework overhead. Low-level domain-specific languages and libraries can be easily integrated with Flashlight, thanks to its easy bridges.
Flashlight is based on a simple stack of modular, easily-understood abstractions. For this reason, the team first installed the ArrayFire tensor library, which allows for dynamic tensor shapes and types and does away with the requirement for strict compile-time specifications and C++ templates. As an added bonus, ArrayFire’s efficient just-in-time compiler allows operations to be optimized on the fly.
Flashlight extends these fundamentals by providing specialized memory managers and application programming interfaces (APIs) for distributed and mixed-precision training. Flashlight combines modular abstractions for working with data and training at scale with a fast, lightweight autograd. This deep learning standard automatically computes derivatives of chained operations every day in deep neural networks. Whether your focus is on deep learning or any other field of study, you’ll find these components helpful.
Lightweight domain applications in Flashlight’s single codebase facilitate study in areas as diverse as speech recognition, language modeling, image classification, and segmentation. Because of its clever layout, Flashlight can reduce multimodal research by eliminating the need to join numerous independent domain-specific libraries. This just necessitates a single incremental rebuild instead of making modifications and rebuilding for each upstream domain-specific framework.
Flashlight allows researchers to work in C++ without requiring them to configure external fixtures or bindings and without requiring adapters to handle threading, memory mapping, or low-level hardware interoperability. This makes it straightforward to incorporate high-performance code written in parallel.
The team hopes their work will encourage the AI community to optimize deep and ML frameworks for the available hardware and explore the performance limits.
Source: analyticsinsight.net