説明
Shumaiは、JavaScriptおよびTypeScript向けに設計された微分可能なテンソルライブラリであり、Bunの速度とFlashlightのパワーを活用しています。JavaScriptエコシステム内の開発者にとって、データ操作、モデルトレーニング、高度な推論ロジックをよりアクセスしやすく効率的にすることを目指しています。ネイティブ型配列とBunのJust-In-Time(JIT)コンパイラを利用することで、Shumaiはデータセット作成から小規模な機械学習モデルのトレーニングまで、さまざまなタスクに対してパフォーマンスの高いソリューションを提供します。
このライブラリは、コアとなるテンソル操作、勾配計算のための自動微分、およびJavaScriptネイティブ配列とのシームレスな変換を提供します。これにより、開発者はJavaScriptで直接データを操作し、GPU互換配列用に準備してから、環境を離れることなくモデルをトレーニングできます。Shumaiのアーキテクチャは、オーバーヘッドを最小限に抑えるように構築されており、特に小規模なモデルの場合、トレーニングおよび推論中にJavaScriptが邪魔にならないようにします。
主な機能には、標準的な配列ユーティリティ、テンソル作成、数学演算、勾配追跡が含まれます。ユーザーはテンソルに対して勾配計算を有効にし、操作を実行してから、計算された勾配にアクセスできます。このライブラリは、メモリ管理チューニング機能も提供しており、ユーザーはハードウェア機能に基づいてパフォーマンスを最適化するためにガベージコレクションパラメータを調整できます。さらに、Shumaiには、スコープ付きプロファイリングとスタックトレース収集のオプションとともに、コンソールまたはHTTP経由で操作パフォーマンスをログに記録できる統計収集システムが含まれています。
Shumaiは、特にJavaScriptエコシステム内で既に作業しており、他の言語やフレームワークに関連する急な学習曲線なしに機械学習機能を組み込みたいソフトウェアエンジニアや研究者にとって有益です。そのパフォーマンスベンチマークは、特にApple M1 ProおよびNvidia GPUにおいて、TensorFlow.jsのようなライブラリと比較してさまざまな操作で顕著な利点を示しています。このプロジェクトは実験的なものであり、機能性と安定性を向上させるための貢献を歓迎します。
Shumaiの主要機能
JavaScriptおよびTypeScript向けの高速で微分可能なテンソルライブラリ
高性能のためにBunとFlashlightで構築
勾配計算のための自動微分をサポート
テンソルとJavaScriptネイティブ配列間のシームレスな変換
小規模モデルのトレーニングと高度な推論ロジックに最適化
ネイティブ型配列とJITコンパイルを活用
パフォーマンス最適化のためのメモリ使用量チューニング
操作プロファイリングのための組み込み統計収集
分離されたプロファイリングのためのスコープ付き統計収集
アクティブ開発中の実験的なソフトウェア
ArrayFireバックエンド(Linux上のCUDA、macOS上のCPU)を介したGPU計算をサポート
コンソールおよびHTTPオプションによる拡張可能な統計ロギング
Shumaiをはじめる
BunとArrayFireをインストールする: macOSおよびLinuxのプラットフォーム固有の手順に従ってください。
Shumaiをインストールする: `bun install @shumai/shumai` を実行します。
Shumaiをインポートする: TypeScript/JavaScriptコードで `import * as sm from '@shumai/shumai'` を使用します。
テンソルを作成する: `sm.randn()` や `sm.tensor()` のような関数を使用してテンソルを作成します。
操作を実行する: `matmul()`, `mul()`, `sum()` のような数学演算を適用します。
勾配を有効にする: 勾配追跡が必要なテンソルに対して `tensor.requires_grad = true` を設定します。
勾配を計算する: ロステンソルで `.backward()` を呼び出して勾配を格納します。
メモリをチューニングする: パフォーマンスのために `util.memoryOptions()` を使用してメモリオプションを調整します。
Shumaiの使用例
- データセット作成
- モデルトレーニング
- 推論ロジック
- データ前処理
- 研究プロトタイピング
- アプリケーション開発








