An algorithm-focused interface for common language model training, continual learning, and reinforcement learning techniques
Project description
training_hub
An algorithm-focused interface for common llm training, continual learning, and reinforcement learning techniques.
Support Matrix
| Algorithm | InstructLab-Training | RHAI Innovation Mini-Trainer | PEFT | VERL | Status |
|---|---|---|---|---|---|
| Supervised Fine-tuning (SFT) | ✅ | - | - | - | Implemented |
| Continual Learning (OSFT) | 🔄 | ✅ | 🔄 | - | Implemented |
| Direct Preference Optimization (DPO) | - | - | - | 🔄 | Planned |
| Low-Rank Adaptation (LoRA) | 🔄 | - | 🔄 | - | Planned |
| Group Relative Policy Optimization (GRPO) | - | - | - | 🔄 | Planned |
Legend:
- ✅ Implemented and tested
- 🔄 Planned for future implementation
- - Not applicable or not planned
Implemented Algorithms
Supervised Fine-tuning (SFT)
Fine-tune language models on supervised datasets with support for:
- Single-node and multi-node distributed training
- Configurable training parameters (epochs, batch size, learning rate, etc.)
- InstructLab-Training backend integration
from training_hub import sft
result = sft(
model_path="/path/to/model",
data_path="/path/to/data",
ckpt_output_dir="/path/to/checkpoints",
num_epochs=3,
learning_rate=1e-5
)
Orthogonal Subspace Fine-Tuning (OSFT)
OSFT allows you to fine-tune models while controlling how much of its existing behavior to preserve. Currently we have support for:
- Single-node and multi-node distributed training
- Configurable training parameters (epochs, batch size, learning rate, etc.)
- RHAI Innovation Mini-Trainer backend integration
Here's a quick and minimal way to get started with OSFT:
from training_hub import osft
result = osft(
model_path="/path/to/model",
data_path="/path/to/data.jsonl",
ckpt_output_dir="/path/to/outputs",
unfreeze_rank_ratio=0.25,
effective_batch_size=16,
max_tokens_per_gpu=2048,
max_seq_len=1024,
learning_rate=5e-6,
)
Installation
Basic Installation
pip install training-hub
Development Installation
git clone https://github.com/Red-Hat-AI-Innovation-Team/training_hub
cd training_hub
pip install -e .
CUDA Support
For GPU training with CUDA support:
pip install training-hub[cuda]
# or for development
pip install -e .[cuda]
Note: If you encounter build issues with flash-attn, install the base package first:
# Install base package (provides torch, packaging, wheel, ninja)
pip install training-hub
# Then install with CUDA extras
pip install training-hub[cuda]
# For development installation:
pip install -e .
pip install -e .[cuda]
For uv users: You may need the --no-build-isolation flag:
uv pip install training-hub
uv pip install training-hub[cuda] --no-build-isolation
# For development:
uv pip install -e .
uv pip install -e .[cuda] --no-build-isolation
Getting Started
For comprehensive tutorials, examples, and documentation, see the examples directory.
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 training_hub-0.2.0.tar.gz.
File metadata
- Download URL: training_hub-0.2.0.tar.gz
- Upload date:
- Size: 152.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10a5947a215dbdbadc349f047a69d5f2d23aca235cfcf57c428de57e217906ac
|
|
| MD5 |
9d24f4960945d6ad10c163702b61afbe
|
|
| BLAKE2b-256 |
897bacfc3893b3562db8838a385182592bcae0438ad2658ad25f758e4de843db
|
Provenance
The following attestation bundles were made for training_hub-0.2.0.tar.gz:
Publisher:
pypi.yaml on Red-Hat-AI-Innovation-Team/training_hub
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
training_hub-0.2.0.tar.gz -
Subject digest:
10a5947a215dbdbadc349f047a69d5f2d23aca235cfcf57c428de57e217906ac - Sigstore transparency entry: 530501926
- Sigstore integration time:
-
Permalink:
Red-Hat-AI-Innovation-Team/training_hub@8164824934771385f36687a03cb338068628953d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Red-Hat-AI-Innovation-Team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@8164824934771385f36687a03cb338068628953d -
Trigger Event:
release
-
Statement type:
File details
Details for the file training_hub-0.2.0-py3-none-any.whl.
File metadata
- Download URL: training_hub-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b63c405cf8b9bec54b263c088aca422c0fe3c74c90e6f88e1f24c847eaed8cc
|
|
| MD5 |
ecc3ed28f5414a70d26a5c5dfb8df2a4
|
|
| BLAKE2b-256 |
1d8da300ae2cbdb772176a2513a7f68d3d1f02605e8591aed7483eea4fbb1592
|
Provenance
The following attestation bundles were made for training_hub-0.2.0-py3-none-any.whl:
Publisher:
pypi.yaml on Red-Hat-AI-Innovation-Team/training_hub
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
training_hub-0.2.0-py3-none-any.whl -
Subject digest:
3b63c405cf8b9bec54b263c088aca422c0fe3c74c90e6f88e1f24c847eaed8cc - Sigstore transparency entry: 530501941
- Sigstore integration time:
-
Permalink:
Red-Hat-AI-Innovation-Team/training_hub@8164824934771385f36687a03cb338068628953d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Red-Hat-AI-Innovation-Team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@8164824934771385f36687a03cb338068628953d -
Trigger Event:
release
-
Statement type: