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_dimper 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-indexnames the torch build for your driver before torch is installed, andscripts/first_run.shruns the whole first install. A machine with no working C compiler is refused before any download. executeruns 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), andload_adapterrefuses 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
UNMEASUREDand exits 4, notOK.
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,
plannames both and gives the install order that works, instead of lettingexecutefail;inspectshows the torch build and whether it can use the GPU. - The Alpaca demonstration runs past row 284. Training without
--datasetskips 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-itraised;plannow 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.
plansays "AMD GPU detected (…); not yet supported" instead of "no GPU", andinspectshows 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| loggetta-0.7.0.tar.gz | 253.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.