flashlight/flashlight

A C++ standalone library for machine learning

What it solves

Flashlight 是一個高性能機器學習函式庫,專為需要快速、靈活且輕量級框架的開發者設計,該框架完全由 C++ 編寫。它解決了在不犧牲快速迭代新實驗性演算法與設定的能力下,同時提供 C++ 的效率與規模的需求。

How it works

Flashlight 使用基於 tape-based 的自動微分系統(透過 Variable 抽象層)以及基於 ArrayFire 張量函式庫構建的核心張量介面,以實現高性能預設值與即時 (JIT) 核心編譯。其結構分為核心神經網路函式庫 (fl)、獨立工具 (lib)、特定領域套件 (pkg) 與即用型應用程式 (app)。

Who it’s for

它主要針對需要原生 C++ 支援以獲得最大效能、較小的記憶體佔用,以及能夠修改張量運算內部 API 的 AI 研究人員與開發者。

Highlights

  • C++ Native: 完全由 C++ 編寫,提供完全的內部可修改性與極小的核心佔用 (低於 10 MB)。
  • High Performance: 利用 ArrayFire 進行 JIT 核心編譯,並支援 CUDA 與 CPU 後端。
  • Multi-Domain Support: 包含用於自動語音辨識 (ASR)、圖像分類、物件偵測與語言模型建構的內建應用程式。
  • Automatic Differentiation: 提供一個簡單、基於 tape-based 的 autograd 系統來計算梯度。