← 开源
mni-ml

framework

A machine learning library with a TypeScript API and Rust backend. CUDA and WebGPU compatibility. Built to understand how ML frameworks and models work internally.

Model DevelopmentDeep Learning FrameworksRust
在 GitHub 打开
增长势头
+124 小时新增 Star+0.1%
1.02k
Star
131
Fork
+2
本周
2
贡献者
创建于 2026-01-08 · 更新于 2026-10-15 · 今日第 5928 名
主要开发者

mni-ml/framework 排名第 5,928,有 1,017 个星标。

同类别比较

mni-ml/framework 排名第 5,928,此处有 8 个同类条目;graspologic-org/graspologic 排名第 5,927。

同类别比较
名称排名指标
videoflow/videoflow5,896
语言:
Python
星标数:
1,044
分叉数:
90
简介:
Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.
graspnet/graspnet-baseline5,905
语言:
Python
星标数:
1,037
分叉数:
236
简介:
Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020)
maximeraafat/BlenderNeRF5,926
语言:
Python
星标数:
1,018
分叉数:
76
简介:
Easy NeRF synthetic dataset creation within Blender
graspologic-org/graspologic5,927
语言:
Python
星标数:
1,017
分叉数:
174
简介:
Python package for graph statistics
LeCAR-Lab/dial-mpc5,932
语言:
Python
星标数:
1,011
分叉数:
104
简介:
Official implementation for the paper "Full-Order Sampling-Based MPC for Torque-Level Locomotion Control via Diffusion-Style Annealing". DIAL-MPC is a novel sampling-based MPC framework for legged robot full-order torque-level control with both precision and agility in a training-free manner.
TinyLLaVA/TinyLLaVA_Factory5,935
语言:
Python
星标数:
1,010
分叉数:
100
简介:
A Framework of Small-scale Large Multimodal Models
pjlab-sys4nlp/llama-moe5,940
语言:
Python
星标数:
1,005
分叉数:
60
简介:
⛷️ LLaMA-MoE: Building Mixture-of-Experts from LLaMA with Continual Pre-training (EMNLP 2024)
havakv/pycox5,947
语言:
Python
星标数:
1,000
分叉数:
205
简介:
Survival analysis with PyTorch
关键参数与规格
关键参数与规格
参数值
语言Rust
类别Model Development
子类别Deep Learning Frameworks
关键词Coding, CUDA programming, Deep Research, Kernel
星标数1,017
分叉数131
贡献者2
创建日期2026-01-08
更新日期2026-10-15
1 天星标数1
7 天星标数2
排名5,928
上次排名11,987
排名变化6,059
7 天星标排名8,306
上次 7 天星标排名10,345
7 天星标排名变化2,039
总星标排名11,020
上次总星标排名11,009
总星标排名变化-11
常见问题

记录了多少星标和分叉?

mni-ml/framework 有 1,017 个星标和 131 个分叉。

仓库排名是多少?

mni-ml/framework 排名第 5,928。

记录的语言和类别是什么?

mni-ml/framework 有 1,017 个星标,语言为 Rust,类别为 Model Development。

哪个仓库排名最接近?

mni-ml/framework 与 graspologic-org/graspologic 比较,后者排名第 5,927,有 1,017 个星标。

README

@mni-ml/framework

A TypeScript ML framework with Rust native backends (CPU, CUDA, WebGPU) providing autograd, tensor operations, and neural network training at GPU speed.

Features

  • Automatic differentiation -- full backward pass through an autograd tape
  • GPU acceleration -- CUDA (NVIDIA) and WebGPU (Metal/Vulkan/DX12) backends
  • PyTorch-like API -- familiar Tensor, Module, Parameter, optimizer classes
  • Comprehensive ops -- elementwise, matmul, conv1d/conv2d, pooling, reductions, activations
  • Built-in modules -- Linear, Conv1d, Conv2d, Embedding, ReLU, Sigmoid, Tanh
  • Optimizers -- SGD and Adam (AdamW) with learning rate scheduling

Installation

npm install @mni-ml/framework

Quick Start

import { Tensor, Linear, Adam, Parameter, softmax, crossEntropyLoss } from '@mni-ml/framework';

// Create tensors
const x = Tensor.rand([32, 10]);
const targets = [[0], [1], [2], /* ... */];

// Build a model
const layer1 = new Linear(10, 64);
const layer2 = new Linear(64, 3);

// Forward pass
let h = layer1.forward(x).relu();
let logits = layer2.forward(h);
let loss = crossEntropyLoss(logits, targets);

// Backward pass
loss.backward();

// Optimize
const params = [...layer1.parameters(), ...layer2.parameters()];
const optimizer = new Adam(params, 0.001);
optimizer.step();
optimizer.zeroGrad();

API Reference

Tensor

// Creation
Tensor.zeros([2, 3])           // zero-filled
Tensor.ones([2, 3])            // one-filled
Tensor.rand([2, 3])            // uniform [0, 1)
Tensor.randn([2, 3])           // normal distribution
Tensor.fromFloat32(data, shape) // from Float32Array

// Arithmetic (with autograd)
a.add(b)       a.add(2.0)     // addition
a.sub(b)                       // subtraction
a.mul(b)       a.mul(2.0)     // multiplication
a.div(b)       a.div(2.0)     // division
a.neg()                        // negation
a.exp()        a.log()        // exponentials
a.pow(2)                       // power

// Activations
a.relu()       a.sigmoid()

// Reductions
a.sum(dim)     a.sum()        // sum along dim or all
a.mean(dim)    a.mean()       // mean along dim or all
a.max(dim)                     // max along dim

// Comparisons (returns 0/1 tensor, no gradient)
a.lt(b)        a.gt(b)        a.eq(b)
a.isClose(b, tol)

// Layout
a.view(2, 3)                   // reshape
a.permute(1, 0)                // transpose
a.contiguous()                 // ensure contiguous memory

// Linear algebra
a.matmul(b)                    // matrix multiplication

// Convolution
a.conv1d(weight, stride, padding)
a.conv2d(weight, stride, padding)

// Utilities
a.clone()      a.detach()     // copy / detach from graph
a.toString()                   // debug string
a.backward()                   // run backward pass
a.setRequiresGrad(true)        // enable gradient tracking

Neural Network Modules

import { Linear, Conv1d, Conv2d, ReLU, Sigmoid, Embedding } from '@mni-ml/framework';

const linear = new Linear(inputSize, outputSize);
const conv1d = new Conv1d(inChannels, outChannels, kernelSize, stride, padding);
const conv2d = new Conv2d(inChannels, outChannels, kernelSize, stride, padding);
const embedding = new Embedding(vocabSize, embeddingDim);

// Use in forward pass
const out = linear.forward(input);

Functional Operations

import { softmax, gelu, layerNorm, crossEntropyLoss, dropout,
         avgpool2d, maxpool2d, tile } from '@mni-ml/framework';

const sm = softmax(logits, dim);
const g = gelu(x);
const ln = layerNorm(x, gamma, beta, eps);
const loss = crossEntropyLoss(logits, targets);
const dropped = dropout(x, rate, training);
const pooled = avgpool2d(x, kernelH, kernelW);
const maxPooled = maxpool2d(x, kernelH, kernelW);
const tiled = tile(x, [2, 1]);

Optimizers

import { Adam, SGD } from '@mni-ml/framework';

const optimizer = new Adam(parameters, lr, beta1, beta2, eps, weightDecay);
// or
const optimizer = new SGD(parameters, lr);

optimizer.step();      // update parameters
optimizer.zeroGrad();  // clear gradients

Backend Architecture

TypeScript API (tensor.ts, nn.ts, optimizer.ts)
    │
    └─→ N-API Bridge (lib.rs)
            │
            ├─→ CPU Backend (Vec, pure Rust)
            ├─→ CUDA Backend (cudarc + .cu kernels)
            └─→ WebGPU Backend (wgpu + .wgsl shaders)

All three backends share the same autograd tape and tensor store. Feature flags are mutually exclusive at compile time:

  • cpu -- default, no GPU required
  • cuda -- NVIDIA GPU via CUDA
  • webgpu -- any GPU via wgpu (Metal, Vulkan, DX12)

Building from source

Only needed if you are contributing or want a custom build. Requires Rust.

# CPU (default)
npm run build:native

# CUDA (requires CUDA toolkit)
npm run build:native:cuda

# WebGPU
npm run build:native:webgpu

# Build TypeScript
npm run build

License

MIT

排名相邻
同类项目