gomlx/gomlx

GoMLX: An Accelerated Machine Learning Framework For Go

何を解決するか

GoMLX は Go 言語向けの包括的な機械学習および数学フレームワークを提供し、PyTorch、JAX、TensorFlow などの人気フレームワークの Go ネイティブな代替品として機能します。開発者は Go エコシステム内で機械学習モデルの学習、微調整、実行が可能になり、ML 開発や本番環境で Python に依存する必要がなくなります。

動作方法

GoMLX は、交換可能なバックエンドを介して実行する ML レイヤーとツールのライブラリを提供する中間 API として機能します。

  • XLA バックエンド:OpenXLA を使用して、CPU、GPU(Nvidia、AMD ROCm、Intel、Mac)および TPU への高パフォーマンス JIT コンパイルを実現。複数のアクセラレータ間での分散実行をサポート。
  • Go バックエンド:純粋な Go 実装で、非常にポータブルであり、ブラウザベースの実行に WASM をサポート。特定のアーキテクチャでは SIMD で最適化。
  • ONNX バックエンド:ONNX Runtime を活用して計算を実行し、モデルを .onnx 形式で保存可能。

フレームワークには自動微分(autodiff)、変数管理(Store と Scope)のシステム、および幅広い微分可能な演算子と ML レイヤーが含まれます。

対象ユーザー

Go エコシステムから離れることなく、機械学習モデルの構築、実験、本番化をしたい Go 開発者、および非伝統的な最適化手法や正則化のアイデアを実験する研究者に最適です。

主な特徴

  • HuggingFace インテグレーションgo-huggingface との互換性により、モデル、トークナイザー、データセットのダウンロード、GGUF や safetensors からのパラメータ読み込みが可能。
  • 多様なレイヤー対応:FFN、畳み込み、Multi-Head-Attention、LSTM に加え、KAN(コルモゴロフ・アルノルドネットワーク)や VNN(ベクトルニューラルネットワーク)など特殊レイヤーもサポート。
  • 柔軟な実行:XLA を通じて多様なハードウェアターゲットをサポート。マルチ GPU/TPU 分散実行も可能。
  • 開発者ツール:チェックポイントの検査やプロット生成のためのコマンドラインツール、JupyterLab との統合(GoNB による)。
  • 高度な学習機能:大規模モデルの学習時にメモリと再計算のトレードオフを実現する勾配チェックポイント機能をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト