Skip to main content

The fastest LLM fine-tuning engine on Earth

Project description

Uzombie v1 — The fastest single-GPU LLM fine-tuning engine

Hybrid research stack (GaLore grad projection + LoRA-FA activation caching + Universal Subspaces + DoRA) on top of Unsloth fused kernels, with exact-time scheduling, zero-config CLI, and safe Hugging Face uploads.

Install

pip install -e .

Requires Python 3.10+, CUDA 12.4 wheels (see requirements.txt).

Quickstart

python -m uzombie \
  --model unsloth/tinyllama-chat-bnb-4bit \
  --dataset yahma/alpaca-cleaned \
  --time 10m \
  --goal balanced \
  --style sft

Key features

  • Unsloth fused kernels (4-bit, Flash/xFormers) for 3.5–4× over vanilla HF.
  • Hybrid projector: GaLore (arXiv:2403.03507), LoRA-FA (arXiv:2305.14314), Universal Subspaces (arXiv:2512.05117), DoRA (arXiv:2402.09353).
  • Exact-time scheduler (Goyal scaling).
  • Torch.compile (reduce-overhead) by default.
  • Safe HF upload with merge_and_unload + safe serialization.
  • Dynamic VRAM-aware batch/accum/LR scaling (16/24/40 GB tiers).
  • Optional MT-Bench run via lm-eval.
  • Optional Accelerate/DeepSpeed passthrough.

CLI flags (new/important)

  • --use_dora : force DoRA on; default is on for balanced/best, off for fast.
  • --mt-bench : run MT-Bench via lm-eval after training (slow; requires lm-eval installed).
  • --accelerate-config : path to an Accelerate config to enable multi-GPU/DeepSpeed.
  • --deepspeed : path to a DeepSpeed config JSON (passed through TRL/Transformers).
  • --push-to-hub <repo> : auto-upload; performs merge_and_unload when available, safe serialization.

Behavior notes

  • VRAM scaling: batch/accum and LR are adjusted by detected VRAM (≈1.5× for 16 GB, 2× for 24 GB, 4× for 40 GB; capped to keep stability).
  • Callbacks are registered after trainer construction to avoid scope errors.
  • Upload path uses merge_and_unload when supported; tokenizer is always pushed.

Testing

Light sanity tests live in tests/:

pytest tests/test_cli.py

(Integration/MT-Bench and heavy speed benchmarks are optional and not run in CI.)

Benchmark script

run_all_tests.sh runs syntax/import checks, unit tests, projector SVD smoke, a 1-minute fine-tune, and a speed check.

Quick reference

  • UzombieProjector: src/uzombie/core/hybrid_projector.py
  • CLI entry: src/uzombie/cli.py
  • Safe upload: src/uzombie/utils/upload.py

Project details


Download files

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

Source Distribution

uzombie-1.0.2.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

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

uzombie-1.0.2-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file uzombie-1.0.2.tar.gz.

File metadata

  • Download URL: uzombie-1.0.2.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for uzombie-1.0.2.tar.gz
Algorithm Hash digest
SHA256 2670897552b3c8ed2d72b51a953a44a98c47140a26afcf1fa39eb3b96b210bda
MD5 80b32b08ce261fefb0e7c46e24a217c2
BLAKE2b-256 43ef51d1b4b196b6197c45408007e2c1eab3f3ec53ed62536ec6eb4238ec3bf5

See more details on using hashes here.

File details

Details for the file uzombie-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: uzombie-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for uzombie-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 38e6f87716eff5ffc30559e9e90e2f4a57abc6f79fbdfffc9d537f30078ab4ef
MD5 4cadda51d0bfa04410b9443515ac7046
BLAKE2b-256 e4a05bff840b240ef7db6bb87b122ba136b0a10b903ed109407644543129a01f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page