Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MOLT AI Infrastructure

Local model training. Hardware-aware execution. Measurable results.

License: MIT Python: 3.12 Status: Alpha Tests PyPI publishing

MOLT is a Windows-first training runtime for developers and researchers working on consumer NVIDIA laptops and workstations. It brings small-model pretraining, QLoRA fine-tuning, thermal pacing, checkpoint recovery, and experiment reporting into one command-line workflow.

Current release: 0.10.0a1 · Open-source research alpha. Suitable for evaluation and controlled experiments. Production use requires workload-specific validation; MOLT does not currently offer a commercial support SLA or certified reliability.

Install · Quick start · Documentation · Contribute

Install in one command

Run in Windows Command Prompt, from a directory where you want a new MOLT folder:

git clone https://github.com/PraveenNimilka/MOLT.git && cd MOLT && powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

Prerequisites: Git, Windows 10/11 x64, a supported NVIDIA GPU with a compatible driver, internet access, and several GB of free disk space. Repository access is required. Stop existing training before installation or updates.

The installer provisions a project-local .venv, obtains uv if needed, and installs the locked CUDA PyTorch, QLoRA, and Windows Triton dependencies. It then checks dependency imports, CUDA backward computation, and a small compiled backward pass against eager results. A failed check stops setup with an error.

No administrator rights are required by the MOLT script. It does not install GPU drivers, change Defender settings, suspend applications, or adjust power limits. Review install.ps1 before running it; the execution-policy override applies only to that PowerShell invocation.

Already downloaded the repository? Open its folder and run:

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

Use -EagerOnly to omit Triton and compilation checks, or -Plan to preview setup without installing anything. Full prerequisites and troubleshooting are in the installation guide.

For an isolated Python environment, the tagged source can also be installed with pip. Install CUDA PyTorch from its official index first; otherwise pip can resolve the CPU-only wheel on Windows:

py -m pip install torch==2.8.0 --index-url https://download.pytorch.org/whl/cu128; if ($?) { py -m pip install "moltengine[qlora,data,windows-fusion] @ git+https://github.com/PraveenNimilka/MOLT.git@v0.10.0-alpha.1" }

After the first PyPI release is published, the second command becomes:

py -m pip install "moltengine[qlora,data,windows-fusion]==0.10.0a1"

Maintainer publishing and supply-chain instructions are in docs/PUBLISHING.md.

Quick start

From the repository folder, launch the guided interface:

.venv\Scripts\molt.exe

Or inspect the environment directly:

.venv\Scripts\molt.exe --ui inspect

The explicit executable path works without activating a virtual environment or adding MOLT to your global PATH. If uv is available on PATH, you can also use uv run molt.

Recommended workflow

Install → doctor → prepare → fit test → train → evaluate → export.

molt doctor identifies exactly which Python environment and source checkout you are running. molt config --init creates a workspace manifest. info and inspect remain supported aliases for their older diagnostic views.

Text, JSONL, and Parquet preparation and text generation are available. Use molt prepare --help and molt generate --help; use molt research --help for experimental benchmarks. Legacy top-level research commands remain compatible.

Train with your own data

MOLT does not download model weights or datasets during setup. A common local fine-tuning flow is now three commands:

.venv\Scripts\molt.exe prepare data\examples.jsonl --model models\Qwen --output molt-workspace\datasets\examples
.venv\Scripts\molt.exe fit-test --config molt-workspace\datasets\examples\training.json
.venv\Scripts\molt.exe --ui train --config molt-workspace\datasets\examples\training.json

Preparation accepts UTF-8 .txt, line-delimited JSON objects (.jsonl), and .parquet. Common text, chat messages, and prompt/completion records are recognized. JSONL and Parquet are streamed and split at record boundaries; they are not advertised as supporting every possible third-party schema.

  1. Choose a profile from configs/ and update its data, model, and artifact paths. Example paths are not bundled datasets.
  2. Validate the configuration before allocating training resources.
  3. Start training, then inspect the resulting run artifacts.

For example, after adapting configs/molt-stream-production.json:

.venv\Scripts\molt.exe train --config configs\molt-stream-production.json --dry-run
.venv\Scripts\molt.exe --ui train --config configs\molt-stream-production.json

A dry run validates the specification and referenced data paths. It does not prove that the model fits in VRAM or that a full run will complete.

Use the guided resume command to select a saved run:

.venv\Scripts\molt.exe --ui resume

See the CLI reference for profiles, run reports, and automation.

Interchange formats

Stage MOLT format Compatibility boundary
Input .txt, .jsonl, .parquet Common text/chat/prompt-completion schemas; custom columns are configurable.
Training data little-endian int32 memory-mapped .bin MOLT's documented flat-token format; not claimed to be Megatron indexed-dataset format.
QLoRA export PEFT adapter_model.safetensors Hugging Face Transformers/PEFT and compatible serving stacks; base weights remain required.
Consumer export LoRA .gguf through an official llama.cpp checkout llama.cpp-compatible architectures; requires a compatible GGUF base model.
MOLT recovery verified atomic .pt bundle Exact MOLT resume state, including optimizer/RNG state; not a serving format.
rem Auto selects PEFT safetensors for QLoRA and a MOLT bundle for scratch training
.venv\Scripts\molt.exe export --run RUN_DIRECTORY --output-dir exported-adapter

rem Optional consumer adapter conversion; llama.cpp is deliberately not bundled
.venv\Scripts\molt.exe export --run RUN_DIRECTORY --format gguf --llama-cpp C:\src\llama.cpp --output-dir exported-gguf

What MOLT provides

Capability Purpose
Small-model pretraining Train supported causal language models from scratch.
Resident NF4 QLoRA Adapt supported pretrained models using quantized base weights and LoRA.
Memory-mapped datasets Read token batches without eagerly loading the complete dataset.
Thermal pacing Adjust compute duty cycle using sampled GPU temperature and configured limits.
Hardware telemetry Record GPU board power, energy, temperature, and memory where supported.
Atomic checkpoints Stage and hash checkpoint files before publication; validate saved state on load.
Experiment reporting Preserve configuration and measured outcomes for workload comparisons.
Guided and scriptable CLI Use interactive workflows or structured JSON output.

Experimental layer streaming and optimization components remain research paths. They should not be interpreted as universal support for streaming arbitrary Hugging Face models or as validated improvements over tuned baselines.

Verified single-machine endurance result

One preregistered engineering run used Windows 11 and an RTX 4060 Laptop GPU to train all 28 Qwen2.5-1.5B decoder layers with 9,232,384 active LoRA parameters, context 512, batch 1, accumulation 4, and fused FP32 AdamW. Graphics clocks were temporarily constrained to 1,500-1,650 MHz and restored afterward.

Metric Measured result
Duration / tokens 3,725.7 s / 4,915,200
End-to-end throughput 1,319.3 tokens/s
Training-loop / compute throughput 1,320.6 / 1,399.5 tokens/s
Peak GPU temperature 71 C
Early-to-late rate ratio 97.3%
Board energy 0.03625 J/token
Cooling recoveries / discarded tokens 0 / 0
Held-out NLL 1.6635 to 1.1045
PyTorch allocation / total NVML use 2.956 / 3.75 GiB

This is a single-machine, single-seed result, not an official comparison with Unsloth, a universal throughput claim, or proof of a novel algorithm. Independent reproduction and the registered multi-seed AB/BA comparison remain open evidence gates.

Safe endurance profile

On supported NVIDIA Windows systems, an Administrator can explicitly authorize MOLT's measured endurance clock range. MOLT restores automatic clocks in a finally block on completion, error, Ctrl+C, or thermal stop:

.venv\Scripts\molt.exe optimize-gpu --profile endurance --config YOUR_CONFIG.json

The command never changes clocks without interactive confirmation (or an explicit -y for automation), refuses non-elevated execution, and verifies the clock range recorded by run telemetry. It does not change firmware, fan curves, Defender, other applications, or unsupported laptop power limits.

See the all-layer thermal frontier and negative results register for full methodology, limitations, and rejected experiments.

Readiness, performance, and safety

MOLT distinguishes installed dependencies, successful runtime checks, and validated training workloads. They are not interchangeable.

  • Model fit is workload-dependent. An 8B dependency-readiness flag does not guarantee an 8B model fits in 8 GB of VRAM.
  • Memory mapping is not zero-RAM. Mapped pages, OS caches, batches, model weights, and optimizer state still consume memory.
  • Pacing is software control, not hardware protection. It cannot guarantee flat temperatures or prevent every throttle, OOM, or power shutdown.
  • Checkpoints reduce recovery risk, not all data loss. Unsaved steps can be lost; checksums and atomic publication do not guarantee survival of every filesystem or hardware failure.
  • Optional tools may remain unavailable. Liger and native MSVC/nvcc development tooling are not required for every training path and are not included in the default installer.
  • Prioritized mode affects only MOLT. Its temporary process priority is restored after normal completion or a training exception. Batch geometry, thermal settings, other applications, and Defender are not silently changed.

Historical measurements and methodology are retained in the benchmarking guide. Results with different validation quality are not proof of an equal-quality speed or energy advantage. This release does not claim a universal throughput target or a new training-algorithm breakthrough.

See the release verification notes for automated tests and physical runtime checks. Fresh-machine bootstrap and sustained workload behavior still require broader reproduction. The live CI badge represents the latest GitHub test status.

Update an existing installation

From your existing checkout, with training stopped:

git status
git pull --ff-only origin main
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

If Git reports local changes or diverged history, resolve them before updating; do not force-reset your work. Setup does not delete model weights, datasets, or run artifacts. Back up important checkpoints before changing environments.

Older MOLT versions could add Defender exclusions. These are not removed automatically because ownership cannot be inferred safely. Review unwanted entries manually in Windows Security; see the 0.9.1 release notes.

Documentation

License and feedback

MOLT is distributed under the MIT License, which permits commercial use subject to its terms. Model weights, datasets, and dependencies retain their own licenses.

Report reproducible bugs through GitHub Issues. Include the commit, Python/PyTorch versions, relevant configuration, and error traceback. Remove credentials, private data, and sensitive paths before sharing.

Download files

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

Source Distribution

moltengine-0.10.0a1.tar.gz (309.9 kB view details)

Uploaded Source

Built Distribution

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

moltengine-0.10.0a1-py3-none-any.whl (139.4 kB view details)

Uploaded Python 3

File details

Details for the file moltengine-0.10.0a1.tar.gz.

File metadata

  • Download URL: moltengine-0.10.0a1.tar.gz
  • Upload date:
  • Size: 309.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for moltengine-0.10.0a1.tar.gz
Algorithm Hash digest
SHA256 cc36455dc541ac85113626d6fac2233308967b09a76ce76251dd414bca19d1b8
MD5 e0c1c6bbc04baa57830afeeef3bd787d
BLAKE2b-256 c47cbbc9251d8d5a8a5623ac11e6f471ae8d86269533be82291a9d377f369997

See more details on using hashes here.

Provenance

The following attestation bundles were made for moltengine-0.10.0a1.tar.gz:

Publisher: publish.yml on PraveenNimilka/MOLT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file moltengine-0.10.0a1-py3-none-any.whl.

File metadata

  • Download URL: moltengine-0.10.0a1-py3-none-any.whl
  • Upload date:
  • Size: 139.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for moltengine-0.10.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 dbc595f28e34c5153eb1959c1674db40b0cc2cfc318092145da97c957587caa1
MD5 1834e2385247ce1cbb798be3e8b62f80
BLAKE2b-256 4635b8d8b73f5b0b9ff593641c7adef363df40e0229ead0a6b6b7f7a860abf85

See more details on using hashes here.

Provenance

The following attestation bundles were made for moltengine-0.10.0a1-py3-none-any.whl:

Publisher: publish.yml on PraveenNimilka/MOLT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.10.0a1 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