flashlight/flashlight

A C++ standalone library for machine learning

What it solves

Flashlight は、高速、柔軟、かつ軽量なフレームワークを必要とする研究者のために設計された、C++ で完全に記述された高性能機械学習ライブラリです。C++ の効率性とスケーラビリティを維持しながら、新しい実験的なアルゴリズムやセットアップを迅速に反復試行できる能力を損なうことなく、そのようなツールのニーズに応えます。

How it works

Flashlight は、テープベースの自動微分システム (Variable 抽象化による) と、高性能なデフォルト設定と JIT カーネルコンパイルを実現するために ArrayFire 張量ライブラリに基づいたコア張量インターフェースを使用します。構造は、コアニューラルネットワークライブラリ (fl)、スタンドアロンユーティリティ (lib)、ドメイン固有パッケージ (pkg)、およびすぐに使えるアプリケーション (app) に分かれています。

Who it’s for

主に、最大限のパフォーマンス、小さなメモリフットプリント、および張量計算の内部 API を変更できる能力を必要とする AI 研究者や開発者向けです。

Highlights

  • C++ Native: C++ で完全に記述されており、完全な内部可変性を提供し、コアフットプリント (10 MB 未満) が非常に小さいです。
  • High Performance: ArrayFire を利用して JIT カーネルコンパイルを行い、CUDA と CPU バックエンドの両方をサポートしています。
  • Multi-Domain Support: 内蔵アプリケーションは、自動音声認識 (ASR)、画像分類、物体検出、および言語モデリングを含みます。
  • Automatic Differentiation: 勾配を計算するための、シンプルでテープベースの autograd システムを特徴としています。