Skip to main content

🚀 Ellora

The Automated Hyperparameter Optimization Platform for Efficient LLM Fine-Tuning.

PyPI version License: MIT Python 3.10+

Ellora is a powerful, scientific framework designed to take the guesswork out of Large Language Model (LLM) fine-tuning. By combining Bayesian Optimization (via Optuna) with High-Performance Training Engines (via Unsloth and PEFT), Ellora automatically identifies the optimal LoRA (Low-Rank Adaptation) configurations for your specific dataset and hardware constraints.


🌟 Key Features

🎯 Intelligent Hyperparameter Tuning

Stop guessing ranks and learning rates. Ellora uses Optuna to search for the best combination of:

  • LoRA Rank (r) and Alpha
  • Learning Rate and Scheduler
  • Dropout Rates
  • Target Modules

⚡ Unsloth Integration

Built-in support for Unsloth, providing:

  • 2x–5x faster training speeds.
  • 70% less VRAM usage.
  • Automatic fallback to standard PEFT if hardware is incompatible.

📊 Scientific Metric Suite

Move beyond simple loss curves. Ellora generates journal-grade reports including:

  • NLP Quality: ROUGE-L, BLEU, and Semantic Similarity (via Sentence-Transformers).
  • Inference Efficiency: Tokens Per Second (TPS), Latency (ms).
  • Hardware Profile: Peak VRAM usage, System VRAM efficiency.

📈 Dynamic Visualization

Generate stunning HTML dashboards and publication-quality Matplotlib charts with a single command.


🚀 Quick Start

Installation

Standard Installation (Recommended)

pip install ellora

From Source (For Developers)

git clone https://github.com/shrey1720/ellora.git
cd ellora
pip install -e ".[dev]"

Recommended for NVIDIA GPUs

pip install unsloth xformers

🛠 Usage Guide

1. System Health Check

Ensure your GPU and VRAM are ready for training.

ellora doctor

2. Basic Training

Train with default settings and automatic tuning.

ellora train --model "meta-llama/Llama-3.2-1B" --data "my_dataset.json" --max-trials 5

3. Using Expert Presets

Ellora comes with pre-configured settings for specific domains:

  • --preset chatbot: Optimized for conversational flow.
  • --preset coding: Lower learning rate, optimized for logic.
  • --preset summarization: Focuses on context retention.

4. Safe Carry-Forward Training

Tune as usual, then continue the best trial for extra epochs from its checkpoint.

ellora train --model "meta-llama/Llama-3.2-1B" --data "my_dataset.json" --max-trials 3 --continue-best-epochs 2

5. Scientific Benchmarking

Compare your trained adapter against ground truth answers to get a technical profile.

ellora benchmark --run <run_id> --references test_set.json

📂 Project Architecture

The system is modularly designed for extensibility:

ellora/
├── tuner/        # Bayesian optimization and search spaces
├── trainer/      # LoRA/QLoRA engine (Unsloth & PEFT)
├── dataset/      # Dynamic loading and scientific validation
├── hardware/     # VRAM analysis and hardware-aware strategy
├── metrics/      # Scorer engine (NLP & Performance)
├── reports/      # HTML Exporters and Chart Generators
├── db/           # SQLite persistence for all runs/trials
└── cli/          # Typer-powered command interface

🛠 Detailed Command Reference

Command Description
ellora init Initialize project structure in the current directory.
ellora doctor Run hardware and dependency health checks.
ellora train Start HPO training (see options below).
ellora export Export the best adapter for deployment.
ellora report Generate an HTML performance dashboard.
ellora benchmark Run scientific NLP and throughput evaluations.
ellora runs list View training history and best scores.

🚀 Training Options (ellora train)

Option Shorthand Default Description
--model -m - HuggingFace model name (Required).
--data -d - Dataset path (.json, .jsonl, .txt) (Required).
--max-trials -t 10 Maximum tuning iterations.
--epochs -e 3 Training epochs per trial.
--unsloth - True Use Unsloth for 2x faster training.
--wandb - False Enable Weights & Biases logging.

🧩 Key Terminology

  • HPO: Hyperparameter Optimization — automatically finding the best settings.
  • LoRA: Low-Rank Adaptation — efficient fine-tuning by only training a small adapter.
  • Trial: A single training attempt with one hyperparameter set.
  • Run: A complete experiment containing multiple trials.
  • Adapter: The learned weights, typically saved as a small file.
  • Throughput: Training speed measured in Tokens Per Second (TPS).

🔬 Technical Roadmap

  • Multi-GPU Support: DDP and FSDP integration.
  • DPO Tuning: Direct Preference Optimization tuning loop.
  • Custom Scoring Functions: User-defined success metrics.
  • HuggingFace Hub Integration: Direct upload of tuned adapters.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for ellora 0.2.14

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

Source distribution (sdist)

Source distribution for ellora 0.2.14
File Size Uploaded
ellora-0.2.14.tar.gz 69.6 kB Details

Built distribution (wheel)

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

Total release size: 148.3 kB

Release files / ellora-0.2.14.tar.gz

Download URL ellora-0.2.14.tar.gz
Size 69.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b231c7556a699358d5cf565a6ee78d2b7cae3ceb1463dac1d759fb7a6861cb2b
BLAKE2b-256 checksum
How to use checksums
73603e4494e12fc8dffec1af9396d44323a9f4a34bed9c7ad33f94ae3ef98f56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / ellora-0.2.14-py3-none-any.whl

Download URL ellora-0.2.14-py3-none-any.whl
Size 78.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98f734c3a40da03be162621c2a28b0d77b79b23de692c25516cd694d6e07b7d7
BLAKE2b-256 checksum
How to use checksums
1359f1b62fc3e519b01a5b952cc8d211970c9602c9c0d0a405e5fc1c8a7646d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.2.14 This release

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.11

1 release file

0.2.10

1 release file

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release 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