Instructions to use masahiroid/pyrite-stream with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use masahiroid/pyrite-stream with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # if on a CUDA device, also pip install mlx[cuda] # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("masahiroid/pyrite-stream") prompt = "Once upon a time in" text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use masahiroid/pyrite-stream with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Generate some text mlx_lm.generate --model "masahiroid/pyrite-stream" --prompt "Once upon a time"
- Atomic Chat
Download SPECIFICATION.md from masahiroid/pyrite-stream: direct link, hf CLI and curl.
- Browser
- Download file 5.81 kB
-
https://huggingface.co/masahiroid/pyrite-stream/resolve/main/SPECIFICATION.md
- Command line
-
hf download hf://masahiroid/pyrite-stream/SPECIFICATION.md
-
curl -L -o SPECIFICATION.md https://huggingface.co/masahiroid/pyrite-stream/resolve/main/SPECIFICATION.md
Project Pyrite Phase 2: MoE-Stream Engine ่จญ่จไปๆงๆธ
ใ 16GB Mac ใงใใซ็ฒพๅบฆ (BF16) MoE ใๅใใ NVMe-RAM ๅ้ขในใใชใผใใณใฐ ใ
่่
: ไธญๆดฅๅท ๆๅผ (Masahiro NAKATSUGAWA)
ๅฏพ่ฑกใขใใซ: deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct (15.7B / 2.36B active, 27 layers, 64 experts)
1. ็่ซ็ใใฌใคใฏในใซใผใฎๆฐๅญฆ็่จผๆ
ๅพๆฅใฎ AirLLM ็ญใฎใๅ จๅฑคใชใใญใผใใใ้ ใใฃใ็็ฑใฏใDense ใขใใซใงใฏๆฏใใผใฏใณใงๅ จใใฉใกใผใฟ๏ผ70GB๏ผใ่ชญใพใญใฐใชใใชใใฃใใใใงใใ ใใใใMoE ใขใผใญใใฏใใฃใฎๆฌ่ณชใฏใในใใผในๆง๏ผ็็ตๅๆง๏ผใ ใซใใใพใใ
DeepSeek-Coder-V2-Lite ใฎใใณใฝใซๆง้ ใๅฎๆฉ่งฃๆใใ็ตๆใไปฅไธใฎๆฐๅคใๅคๆใใพใใ๏ผ
ๅธธ้งใกใขใช (Resident Working Set in RAM):
- Embeddings (
embed_tokens) + LM Head (lm_head) - 27ๅฑคๅใฎ Attention ๆฉๆง (
self_attn: MLA) - 27ๅฑคๅใฎ LayerNorm
- 27ๅฑคๅใฎ Router Gate (
mlp.gate.weight: [64, 2048]) - 27ๅฑคๅใฎ ๅ
ฑๆใจใญในใใผใ (
mlp.shared_experts: 2 experts) ๐ ๅธธ้งๅฟ ้ ใตใคใบ: ใใใ็ด 2.5 GiB (16GB Mac ใฎใกใขใชใซไฝ่ฃใงๅใพใ๏ผ)
- Embeddings (
ๅ็ในใใชใผใใณใฐ (On-Demand Experts from NVMe SSD):
- ๅๅฑคใฎ
switch_mlpใซใฏ 64 ๅใฎใจใญในใใผใใๅญๅจ๏ผTensor shape:[64, 1408, ...]๏ผใ - 1 ๅใฎใใผใฏใณ็ๆใงใซใผใฟใผใ้ธใถใฎใฏ Top-6 ใจใญในใใผใใฎใฟ๏ผๆฎใ 58 ๅใฏๅฎๅ จใซไผ็ ๏ผใ
- 1 ใจใญในใใผใใใใใฎใตใคใบ (BF16ๆ): ็ด 15.8 MB
- 1 ใฌใคใคใผใใใใฎๅฟ ่ฆ่ปข้้: $6 \times 15.8\text{ MB} = \mathbf{94.8\text{ MB}}$
- ๅ จ 27 ใฌใคใคใผใ้ใใๅฟ ่ฆ่ปข้้: $26 \times 94.8\text{ MB} = \mathbf{2.46\text{ GB}}$
- ๅๅฑคใฎ
่ปข้ใฌใคใใณใทใจ้ๅบฆไบๆธฌ:
- Mac ใฎ NVMe SSD ้ฃ็ถ่ชญใฟๅบใ้ๅบฆ: ็ด 4,000 MB/s ใ 5,000 MB/s (4ใ5 GB/s)
- 1 ใใผใฏใณใใใใฎ SSD ่ปข้ๆ้: $2.46\text{ GB} \div 4.5\text{ GB/s} \approx \mathbf{0.54\text{ ็ง}}$
- LRU ใญใฃใใทใฅ๏ผ้ ปๅบใจใญในใใผใใฎ RAM ไฟๆ๏ผๅฐๅ ฅๆ: ใใญใฐใฉใใณใฐใณใผใ็ๆใงใฏๅใใจใญในใใผใใ็ด 40ใ60% ๅๅฉ็จใใใใใใๅฎๅน่ปข้้ใฏ ็ด 1.0ใ1.2 GB ใพใงๅๆธใ ๐ ๆๅพ ใใใๅฎๅน็ๆ้ๅบฆ: 2ใ5 tokens/sec๏ผใใซ็ฒพๅบฆ BF16ใใกใขใชๆถ่ฒป 5GB ไปฅๅ ๏ผ
- 8-bit / 4-bit ้ๅญๅใจใญในใใผใไฝต็จๆ: ่ปข้้ใใใใซ 1/2ใ1/4 ใซๆฟๆธใใ10ใ20 tokens/sec๏ผๅฎ็จ็้ใฌใใซ๏ผ ใซๅฐ้ๅฏ่ฝ๏ผ
2. ใทในใใ ใปใขใผใญใใฏใใฃๅณ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NVMe SSD Storage (2TB) โ
โ Layer 1ใ26: Switch MLP Experts 0ใ63 (BF16 / 31.4GB) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ On-Demand Streaming (Direct I/O / mmap)
โผ (Top-6 Experts only: ~95MB/layer)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RAM / Unified Memory (16GB Mac) โ
โ โ
โ [ๅธธ้งใพใผใณ (~2.5 GiB)] โ
โ ใปEmbedding & LM Head โ
โ ใปMulti-Head Latent Attention (MLA) โ
โ ใปLayerNorm & Router Gates โ
โ ใปShared Experts (2 experts) โ
โ โ
โ [ๅ็ใจใญในใใผใใปใญใฃใใทใฅๆ (~2.5 GiB)] โ
โ ใปActive Top-6 Experts Buffer (Ring Buffer) โ
โ ใปLRU Recent Experts Cache โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Zero-Copy
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Apple Silicon Metal 4 GPU Execution โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
3. ๅฎ่ฃ ่จ็ป
- Phase 1: ใจใญในใใผใใปในใใชใใฟใผ๏ผๅๅฒไฟๅญใใผใซ๏ผ
split_moe_experts.py: 31GB ใฎๅทจๅคง safetensors ใใใๅธธ้งใใผใน๏ผBase๏ผใใจใๅๅฑคใปๅใจใญในใใผใใฎ็ฌ็ซใใญใใฏ๏ผExpert Pack๏ผใใซๅๅฒใป้ซ้ใคใณใใใฏในๅใ - Phase 2: ในใใชใผใใณใฐ MoE ใฌใคใคใผ๏ผMLX ใซในใฟใ ใขใธใฅใผใซ๏ผ
StreamingMoE: ใซใผใฟใผใฒใผใใฎๅบๅ๏ผTop-K๏ผใ็ฃ่ฆใใใใใใใใจใญในใใผใใฎใฟใ SSD ใใmmapใพใใฏไบๅๅฒใๅฝใฆใใใใกใซ้ๅๆใงใญใผใใใฆ FFN ่จ็ฎใ่กใใ - Phase 3: LRU ใญใฃใใทใฅ & ใใคใใฉใคใณใปใใฌใใงใใ ใฌใคใคใผ $L$ ใฎ่จ็ฎไธญใซใใฌใคใคใผ $L+1$ ใฎใซใผใฟใผใๅ ่ชญใฟใใฆ SSD ใใใใชใใงใใใใ่ปข้ๅพ ใกๆ้ใ่จ็ฎๆ้ใง้ ่ฝ๏ผOverlap๏ผใ