Deskripsi
Shumai adalah pustaka tensor yang dapat dibedakan yang dirancang untuk JavaScript dan TypeScript, memanfaatkan kecepatan Bun dan kekuatan Flashlight. Tujuannya adalah untuk membuat manipulasi data, pelatihan model, dan logika inferensi lanjutan lebih mudah diakses dan efisien bagi pengembang dalam ekosistem JavaScript. Dengan memanfaatkan array bertipe asli dan kompiler Just-In-Time (JIT) Bun, Shumai menawarkan solusi berkinerja untuk tugas-tugas mulai dari pembuatan kumpulan data hingga pelatihan model pembelajaran mesin kecil.
Pustaka ini menyediakan operasi tensor inti, diferensiasi otomatis untuk komputasi gradien, dan konversi mulus ke dan dari array asli JavaScript. Ini memungkinkan pengembang untuk bekerja dengan data langsung di JavaScript, mempersiapkannya untuk array yang kompatibel dengan GPU, dan kemudian melatih model tanpa meninggalkan lingkungan. Arsitektur Shumai dibangun untuk meminimalkan overhead, memungkinkan JavaScript untuk tidak menghalangi selama pelatihan dan inferensi, terutama untuk model yang lebih kecil.
Kemampuan utama meliputi utilitas array standar, pembuatan tensor, operasi matematika, dan pelacakan gradien. Pengguna dapat mengaktifkan komputasi gradien untuk tensor, melakukan operasi, dan kemudian mengakses gradien yang dihitung. Pustaka ini juga menawarkan fitur untuk penyetelan manajemen memori, memungkinkan pengguna untuk menyesuaikan parameter pengumpulan sampah untuk mengoptimalkan kinerja berdasarkan kemampuan perangkat keras. Selain itu, Shumai menyertakan sistem pengumpulan statistik yang dapat mencatat kinerja operasi ke konsol atau melalui HTTP, dengan opsi untuk pemrofilan terlingkup dan pengumpulan jejak tumpukan.
Shumai sangat bermanfaat bagi para insinyur perangkat lunak dan peneliti yang sudah bekerja dalam ekosistem JavaScript dan ingin menggabungkan kemampuan pembelajaran mesin tanpa kurva belajar yang curam yang terkait dengan bahasa atau kerangka kerja lain. Tolok ukur kinerjanya menunjukkan keunggulan yang signifikan dibandingkan pustaka seperti TensorFlow.js dalam berbagai operasi, terutama pada GPU Apple M1 Pro dan Nvidia. Proyek ini bersifat eksperimental, dan kontribusi disambut untuk meningkatkan fungsionalitas dan stabilitasnya.
Fitur Inti Shumai
Pustaka tensor yang cepat dan dapat dibedakan untuk JavaScript dan TypeScript
Dibangun dengan Bun dan Flashlight untuk kinerja tinggi
Mendukung diferensiasi otomatis untuk komputasi gradien
Konversi mulus antara tensor dan array asli JavaScript
Dioptimalkan untuk melatih model kecil dan logika inferensi lanjutan
Memanfaatkan array bertipe asli dan kompilasi JIT
Penyetelan penggunaan memori untuk optimasi kinerja
Pengumpulan statistik bawaan untuk pemrofilan operasi
Pengumpulan statistik terlingkup untuk pemrofilan terisolasi
Perangkat lunak eksperimental dengan pengembangan aktif
Mendukung komputasi GPU melalui backend ArrayFire (CUDA di Linux, CPU di macOS)
Pencatatan statistik yang dapat diperluas dengan opsi Konsol dan HTTP
Memulai dengan Shumai
Instal Bun dan ArrayFire: Ikuti instruksi spesifik platform untuk macOS dan Linux.
Instal Shumai: Jalankan `bun install @shumai/shumai`.
Impor Shumai: Gunakan `import * as sm from '@shumai/shumai'` dalam kode TypeScript/JavaScript Anda.
Buat Tensor: Gunakan fungsi seperti `sm.randn()` atau `sm.tensor()` untuk membuat tensor.
Lakukan Operasi: Terapkan operasi matematika seperti `matmul()`, `mul()`, dan `sum()`.
Aktifkan Gradien: Atur `tensor.requires_grad = true` untuk tensor yang memerlukan pelacakan gradien.
Hitung Gradien: Panggil `.backward()` pada tensor kerugian untuk mengisi gradien.
Atur Memori: Sesuaikan opsi memori menggunakan `util.memoryOptions()` untuk kinerja.
Kasus Penggunaan Shumai
- Pembuatan Kumpulan Data
- Pelatihan Model
- Logika Inferensi
- Pra-pemrosesan Data
- Prototipe Penelitian
- Pengembangan Aplikasi








