Skip to main content

Loggetta

Plan the run. Train the model. Keep the evidence.

Loggetta checks your hardware, chooses a supported configuration for a Mixture-of-Experts (MoE) model, and runs QLoRA fine-tuning. It saves the plan and a JSON run report with memory use, timing, and checks that the selected optimizations actually ran. One install includes the runtime (experts4bit-qlora: https://pypi.org/project/experts4bit-qlora/) and the GPU kernels (grouped-nf4-gemm: https://pypi.org/project/grouped-nf4-gemm/).

Limits. Plans are estimates, not an out-of-memory guarantee. The released training path is single-GPU MoE training on Linux with a supported NVIDIA CUDA GPU. Dense models are planned but not yet supported for training. Dense plans assume identical decoder layers, and a model whose layers differ is refused. For a config that declares head_dim per layer, such as gemma4, the refusal names each difference (the per-layer head_dim, layers that reuse another layer's KV, linears whose shapes change). Dense training: https://github.com/pjordanandrsn/loggetta/blob/main/docs/DENSE.md

pip install loggetta
loggetta inspect
loggetta plan Qwen/Qwen3-30B-A3B --seq 2048

The plan shows where weights will live, estimated memory use, and why alternatives were rejected. It checks the budget before downloading model weights. Estimates can miss; they are not an out-of-memory guarantee.

New in 0.7.0

  • A first install ends trained or with a named refusal. loggetta inspect --torch-index names the torch build for your driver before torch is installed, and scripts/first_run.sh runs the whole first install. A machine with no working C compiler is refused before any download.
  • execute runs serve plans through experts4bit-qlora's paged engine and writes a receipt with the measured peaks and, at one sequence, the decode step.
  • MoE adapters record the quantized base they were trained on (backend-adapter/2, with an experts4bit-qlora that defines it), and load_adapter refuses a base that differs.
  • Receipts carry no local path and record the backend switches they ran under. A run whose device check took no driver sample reads UNMEASURED and exits 4, not OK.

New in 0.6.2

  • A CUDA plan the installed torch cannot run is refused, with the fix. When the torch build needs a newer NVIDIA driver than the machine has, plan names both and gives the install order that works, instead of letting execute fail; inspect shows the torch build and whether it can use the GPU.
  • The Alpaca demonstration runs past row 284. Training without --dataset skips Alpaca's 28 empty-output rows, counts them in the report, and is pinned to one dataset revision; a dataset you supply is still checked strictly.

New in 0.6.1

  • gemma4 is refused with its reasons instead of failing. On transformers 5.20, describing google/gemma-4-E2B-it raised; plan now refuses it by name, listing each layer difference the planner cannot price yet.
  • A model with no MoE layers is refused by the MoE backend at admission, so the dense backend owns it when it can describe it, and otherwise the plan gives each backend's own reason.

New in 0.6.0

  • An AMD GPU is found and refused by name. plan says "AMD GPU detected (…); not yet supported" instead of "no GPU", and inspect shows the gfx arch.
  • The grouped_nf4 MoE backward is priced once. With experts4bit-qlora 0.53.0 or later, the runtime's estimate prices it, and Loggetta adds no line of its own.
  • Dense training's frozen-parameter digest takes a rank-0 parameter; every existing digest is unchanged.
  • A held-out check on the RTX 5090 found one setup over its plan; every over-plan run used a setting the planner does not model (pad buckets off, or grouped-nf4-gemm before 0.42.0) (HO1, with addendum: https://github.com/pjordanandrsn/loggetta/blob/main/evidence/2026-10-10-heldout-cards/README.md).

Full list, the CHANGELOG: https://github.com/pjordanandrsn/loggetta/blob/main/CHANGELOG.md.

Train on your data

loggetta train Qwen/Qwen3-30B-A3B \
  --dataset ./data/train.jsonl --format text \
  --seq 512 --micro-batch 1 --steps 20 --seed 42 \
  --out runs/my-training --adapter-out adapters/my-adapter

Local JSONL, JSON, CSV, Parquet and TXT files, Hub datasets, Alpaca instructions and text-only chats are supported. Data is validated and tokenized before weights load. Chat data trains only the assistant turns by default. Reload the adapter with loggetta.load_adapter("adapters/my-adapter"). See the training guide: https://github.com/pjordanandrsn/loggetta/blob/main/docs/TRAINING.md.

To run a saved decision later: loggetta plan MODEL --out plan.json, then loggetta execute plan.json --out runs/. Pass earlier run reports back with --observations runs/ and later plans use those measurements.

Measured results

The included runtime and kernels do the compute; these are matched training runs, not planner benchmarks.

Workload Result
Qwen3-30B-A3B QLoRA · RTX 5090 Unsloth spends 1.92× e4b's GPU time per step, and 2.80× its wall-clock time on an AMD EPYC 7713 host. Comparable held-out loss; Unsloth peaked lower (24.27 vs 26.16 GB). Result: https://github.com/pjordanandrsn/experts4bit-qlora/blob/main/bench/h2h-2026-10-02/tc1/RESULTS-tc1-pos69.md
Why two numbers GPU time doesn't depend on the host. Unsloth runs about 14× e4b's CPU operations per step, so its wall-clock time grows on a slower host. Earlier wall-clock readings, before e4b's current defaults: 2.352× and 2.468×.
Planner memory check · Qwen3-30B-A3B · RTX 5090 24.54 GiB estimated process peak, 24.34 GiB measured, after calibration from earlier runs. One in-sample case, not a guarantee. In the MoE audit re-run with training plans no longer borrowing another model's reserve (evidence/2026-10-09-moe-plan-vs-driver-no-borrow), today's planner puts no RTX A2000 training plan under its measured peak, in sample (the replan section; older recorded plans were). Plan vs run: https://github.com/pjordanandrsn/loggetta/blob/main/docs/RESULTS.md · MoE audit: https://github.com/pjordanandrsn/loggetta/blob/main/evidence/2026-10-09-moe-plan-vs-driver-no-borrow/README.md

The comparison used torch 2.12.1+cu130 and transformers 5.5.0 for both frameworks, with matched adapters, initialization and tokens. Loggetta does not predict throughput.

Models

Model Tested in Loggetta
OLMoE-1B-7B-0924, Granite-3.1-3B-A800M training and serving run
Granite-4.0-H-tiny training run; serving refused (Mamba state)
Qwen3-30B-A3B, Qwen3.6-35B-A3B, ERNIE-4.5-21B-A3B planned; serving validated
LFM2-8B-A1B planned; serving refused (conv state)
Mixtral-8x7B-Instruct planned
Gemma-4-26B-A4B-it, Nemotron-3.5-Lightning-30B-A3B supported by the runtime; not yet in Loggetta's sweep

Every row is supported by the included runtime's QLoRA path. Hybrid models (Qwen3.6, Granite-4.0-H, LFM2, Nemotron-H) need --packing concat with chat or Alpaca data. The runtime's capability register is the authority: https://github.com/pjordanandrsn/experts4bit-qlora/blob/main/docs/capabilities.json

Scope

Single-GPU MoE planning and QLoRA training; serving placement is planned, not launched. Not yet: multi-GPU, throughput prediction. GPU runs need Linux, an NVIDIA CUDA GPU and a compatible PyTorch. Pre-1.0.

Dense models are not supported for training yet: their plans are estimates that missed a held-out check (a further reading is pending), and their training runs only behind --allow-development-executor until a 24 GB capacity reading.

GitHub: https://github.com/pjordanandrsn/loggetta · Results: https://github.com/pjordanandrsn/loggetta/blob/main/docs/RESULTS.md · Architecture: https://github.com/pjordanandrsn/loggetta/blob/main/docs/ARCHITECTURE.md · Research and releases: https://cerinamroth.com/ml/

Metadata

Release files for loggetta 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for loggetta 0.7.0
File Size Uploaded Provenance
loggetta-0.7.0.tar.gz 253.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for loggetta 0.7.0
File Interpreter ABI Platform
loggetta-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 395.5 kB

Release files / loggetta-0.7.0.tar.gz

Download URL loggetta-0.7.0.tar.gz
Size 253.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d4c3515f3349454baca048c0324a4989460726a40c40d19785134593257dbefa
BLAKE2b-256 checksum
How to use checksums
93b404d76ab196977b2182d3360c715f7ffb84773b441acc0f9bcdfdabd5a702
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / loggetta-0.7.0-py3-none-any.whl

Download URL loggetta-0.7.0-py3-none-any.whl
Size 142.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
297923018764e6beeb0c7e176f2a284742037540d944dd4a02eaddcc2aa3096d
BLAKE2b-256 checksum
How to use checksums
3ea50c35ca04d7a8d8c13d4577de6d37382518fa08f2be217523910bda95a101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for loggetta 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for loggetta-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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