Skip to main content

⚡ StreamTransformer (STR)


📖 What is StreamTransformer?

StreamTransformer (STR) is a universal PyTorch engine that breaks the VRAM Wall by decoupling neural network depth ($L$) from GPU memory capacity.

Instead of allocating memory for all transformer blocks simultaneously in VRAM, StreamTransformer executes temporal layer streaming: exactly one layer block resides in GPU memory at a time, while subsequent layers are prefetched asynchronously over PCIe into page-locked pinned memory.

🌟 Core Capabilities

  • $\mathcal{O}(1)$ Depth-Invariant Memory Scaling: Execute 12, 36, 100, or 1,000 layers with a constant peak GPU VRAM footprint (~297 MB).
  • 100% Lossless FP32 Precision: Preserves pristine 32-bit floating point weights with exact mathematical output ($\text{Cosine Similarity} = 1.00000012$, $\text{Max Error} = 0.00000000$).
  • Dual-Phase Support: Built-in engines for both $\mathcal{O}(1)$ Inference Streaming and $\mathcal{O}(1)$ Layer-Wise Backpropagation Pretraining.
  • Universal PyTorch Integration: Compatible with any sequential or decoder-only transformer architecture (LightLLM, GPT-2, LLaMA, Mistral, custom models).

🏎️ Architecture Diagram

┌─────────────────────────────────────────────────────────────────────────────┐
│                    STREAMTRANSFORMER (STR) RUNTIME ENGINE                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Input Tokens ──→ [ Resident Token Embeddings ] ──→ h₀                      │
│                                                      │                      │
│  [NVMe / Host RAM] ──→ Layer 1/100 ──→ GPU VRAM ──→ h₁ ──→ Reclaim VRAM     │
│  [Async Prefetch]  ──→ Layer 2/100 ──→ GPU VRAM ──→ h₂ ──→ Reclaim VRAM     │
│  ...                                                                        │
│  [Async Prefetch]  ──→ Layer 100/100 ─→ GPU VRAM ─→ h₁₀₀ ──→ Reclaim VRAM   │
│                                                      │                      │
│  Output Logits ←── [ Resident LM Head ] ←── [ Resident Final Norm ]         │
│                                                                             │
│  Peak GPU VRAM: CONSTANT ~297.50 MB across 100 Layers!                      │
└─────────────────────────────────────────────────────────────────────────────┘

📊 Empirical Benchmarks (100 Layers on NVIDIA Tesla T4)

===========================================================================
 100-LAYER TRANSFORMER BENCHMARK (~746M Parameters, FP32)
===========================================================================
• Layer   1/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
• Layer  20/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
• Layer  40/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
• Layer  60/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
• Layer  80/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
• Layer 100/100: Active VRAM = 214.16 MB | Peak VRAM = 297.50 MB
---------------------------------------------------------------------------
• Status:           ✅ SUCCESS (All 100 Layers Computed with 0 Errors)
• Peak GPU VRAM:    297.50 MB (Monolithic Expected: ~12,500 MB)
• VRAM Savings:     🔥 97.62% Reduction!
• Numerical Check:  Contains NaN: False | Contains Inf: False
===========================================================================

📦 Installation

git clone https://github.com/RABNEER/stream-transformer.git
cd stream-transformer
pip install -e .

🚀 Quick Start (Inference in 4 Lines)

import torch
from stream_transformer import StreamEngine

# 1. Initialize StreamEngine with your model's layers
engine = StreamEngine(
    resident_modules=resident_dict,
    layer_constructor=lambda: YourTransformerBlock(),
    shard_dir="model_shards",
    num_layers=100,
    device="cuda"
)

# 2. Forward pass with O(1) constant VRAM!
output = engine(input_tensor)

🛠️ Layer-Streaming Training (Pretraining with O(1) VRAM)

from stream_transformer import StreamTrainer

trainer = StreamTrainer(
    resident_modules=resident_dict,
    layer_constructor=lambda: YourTransformerBlock(),
    shard_dir="train_shards",
    num_layers=36,
    device="cuda",
    lr=6e-4
)

# Executes layer-wise forward pass + reverse on-the-fly backward pass
loss = trainer.train_step(x, y, embed_fn, head_fn)
print(f"Training Step Loss: {loss:.4f} (Peak VRAM: < 600 MB!)")

📜 Official Research Paper

For the full theoretical proofs, systems engineering chronicles, and hardware scaling studies, read our research monograph:

📄 Monograph: LightLLM: A Depth-Invariant Layer-Streaming Causal Transformer Architecture for Lossless Full-Precision Pretraining and Inference on Constrained Hardware (Ranveer Kumar, 2026).

@article{kumar2026streamtransformer,
  title={StreamTransformer: A Depth-Invariant Layer-Streaming Architecture for Lossless Full-Precision Neural Execution},
  author={Kumar, Ranveer},
  journal={arXiv preprint},
  year={2026},
  url={https://github.com/RABNEER/stream-transformer}
}

👨‍💻 Author

Ranveer Kumar
Independent AI Researcher
GitHub: @RABNEER | Model: LightLLM

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stream_transformer-0.1.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stream_transformer-0.1.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file stream_transformer-0.1.0.tar.gz.

File metadata

  • Download URL: stream_transformer-0.1.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for stream_transformer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8b27bdf4069a82e0ef358a73e239caab3d4f9e18d2dacb93f3e7ab5b527ed6a0
MD5 cf720cbc98da65399817383cda063731
BLAKE2b-256 109ada475a5e88763a06f2f303841b1521cf260a70310e488bbb48c90e750df9

See more details on using hashes here.

File details

Details for the file stream_transformer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for stream_transformer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab10eb86d04a7808d7ac42a40e35b20a6b409e91bc386c4cefa67562e269f65b
MD5 71a27d3794abb78be6b8eb0fc0fc183f
BLAKE2b-256 9fc7e7c01116dc221d060989dcb9164a7d5e3628b0d862c42206ef810ce62f7b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.2

2 files

0.2.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page