Kickass Orchestration System for Training, Yielding & Logging
Project description
Kostyl Toolkit
Kickass Orchestration System for Training, Yielding & Logging — a batteries-included toolbox that glues PyTorch Lightning, Hugging Face Transformers, and ClearML into a single workflow.
Overview
- Rapidly bootstrap Lightning experiments with opinionated defaults (
KostylLightningModule, custom schedulers, grad clipping and metric formatting). - Keep model configs source-controlled via Pydantic mixins, with ClearML syncing out of the box (
ConfigLoadingMixin,ClearMLConfigMixin). - Reuse Lightning checkpoints directly inside Transformers models through
LightningCheckpointLoaderMixin. - Ship distributed-friendly utilities (deterministic logging, FSDP helpers, LR scaling, ClearML tag management).
Installation
# Latest release from PyPI
pip install kostyl-toolkit
# or with uv
uv pip install kostyl-toolkit
Development setup:
uv sync # creates the virtualenv declared in pyproject.toml
source .venv/bin/activate.fish
pre-commit install # optional but recommended
Quick Start
from lightning import Trainer
from transformers import AutoModelForSequenceClassification
from kostyl.ml_core.configs.hyperparams import HyperparamsConfig
from kostyl.ml_core.configs.training_params import TrainingParams
from kostyl.ml_core.lightning.extenstions.custom_module import KostylLightningModule
class TextClassifier(KostylLightningModule):
def __init__(self, hyperparams: HyperparamsConfig):
super().__init__()
self.hyperparams = hyperparams # grad clipping + scheduler knobs
self.model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased",
num_labels=2,
)
def training_step(self, batch, batch_idx):
outputs = self.model(**batch)
self.log("train/loss", outputs.loss)
return outputs.loss
train_cfg = TrainingParams.from_file("configs/training.yaml")
hyperparams = HyperparamsConfig.from_file("configs/hyperparams.yaml")
module = TextClassifier(hyperparams)
trainer = Trainer(**train_cfg.trainer.model_dump())
trainer.fit(module)
Restoring a plain Transformers model from a Lightning checkpoint:
from kostyl.ml_core.lightning.extenstions.pretrained_model import LightningCheckpointLoaderMixin
model = LightningCheckpointLoaderMixin.from_lighting_checkpoint(
"checkpoints/epoch=03-step=500.ckpt",
config_key="config",
weights_prefix="model.",
)
Components
- Configurations (
kostyl/ml_core/configs): strongly-typed training, optimizer, and scheduler configs with ClearML syncing helpers. - Lightning Extensions (
kostyl/ml_core/lightning): custom LightningModule base class, callbacks, logging bridges, and the checkpoint loader mixin. - Schedulers (
kostyl/ml_core/schedulers): extensible LR schedulers (base/composite/cosine) with serialization helpers and on-step logging. - ClearML Utilities (
kostyl/ml_core/clearml): tag/version helpers and logging bridges for ClearML Tasks. - Distributed + Metrics Utils (
kostyl/ml_core/dist_utils.py,metrics_formatting.py): world-size-aware LR scaling, rank-aware metric naming, and per-class formatting. - Logging Helpers (
kostyl/utils/logging.py): rank-aware Loguru setup and uniform handling of incompatible checkpoint keys.
Project Layout
kostyl/
ml_core/
configs/ # Pydantic configs + ClearML mixins
lightning/ # Lightning module, callbacks, loggers, extensions
schedulers/ # Base + composite/cosine schedulers
clearml/ # Logging + pulling utilities
utils/ # Dict helpers, logging utilities
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kostyl_toolkit-0.1.27.tar.gz.
File metadata
- Download URL: kostyl_toolkit-0.1.27.tar.gz
- Upload date:
- Size: 25.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f31173326b6cba3e2c7fabccf32e7c64c5a90787d7d4fa1be41523adee90523
|
|
| MD5 |
d00ef986c02f84a3f9a5aaf22de86045
|
|
| BLAKE2b-256 |
8c8a4682ac42e1fe4db5c047ca1d5ab6b4f8c74e4b9cd080b7cc4d2d081aea3d
|
File details
Details for the file kostyl_toolkit-0.1.27-py3-none-any.whl.
File metadata
- Download URL: kostyl_toolkit-0.1.27-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54e83a5f568cfaa26fbbd9f1f97e9a1d8555eb310764b10fba3b7117bd889a5a
|
|
| MD5 |
16388ef1ef9bd64875d1e568d4a9698c
|
|
| BLAKE2b-256 |
eda057510b6c7acf5e234553cb0faacf84c55fb365089b37471038d9c84a68ed
|