Build multi-task classifiers and augment classification datasets with ease
Project description
RapidFit
Turn a handful of labeled examples into a production-ready multi-task classifier.
RapidFit handles the two biggest pain points in text classification: not enough data and too many separate models. Give it a few examples per class, and it will generate more training data using LLMs, then train a single model that handles all your classification tasks at once.
Installation
pip install rapidfit
Augment Your Data
Start with just a few examples. RapidFit uses LLMs to expand your dataset while preserving label quality.
from rapidfit import LLMAugmenter
seed_data = {
"sentiment": [
{"text": "I love this product!", "label": "positive"},
{"text": "Terrible experience.", "label": "negative"},
],
"emotion": [
{"text": "This makes me so happy!", "label": "joy"},
{"text": "I can't believe they did this.", "label": "anger"},
],
}
augmenter = LLMAugmenter(api_key="your-api-key")
augmented = augmenter.augment(seed_data)
Configure generation with optional parameters:
| Parameter | Default | Description |
|---|---|---|
model_id |
gpt-4.1-mini |
LLM to use for generation |
max_samples_per_task |
128 |
Target samples per task |
batch_size |
8 |
Samples per generation call |
save_path |
./saved |
Output directory |
save_format |
json |
Format: json, jsonl, or csv |
write_mode |
overwrite |
overwrite or append to existing data |
When using append mode, RapidFit loads existing data from the save path and skips duplicate texts during generation.
Train a Classifier
One model, multiple tasks. The multihead architecture shares a single encoder across all your classification tasks, making it efficient and consistent.
from rapidfit import MultiheadClassifier
classifier = MultiheadClassifier()
classifier.train(augmented)
classifier.save("./model")
Or train directly from a saved data directory:
classifier = MultiheadClassifier()
classifier.train(data_save_dir="./saved")
classifier.save("./model")
Customize training:
from rapidfit import MultiheadConfig, TrainingConfig, LossConfig
config = MultiheadConfig(
training=TrainingConfig(epochs=10, learning_rate=2e-5),
loss=LossConfig(use_class_weights=True),
)
classifier = MultiheadClassifier(config)
For a complete guide on configuration options and use cases, see How the Multihead Classifier Works.
Predict
classifier = MultiheadClassifier()
classifier.load("./model")
# Single task
classifier.predict(["Great product!"], task="sentiment")
# [{"label": "positive", "confidence": 0.95}]
# All tasks
classifier.predict_all_tasks(["Great product!"])
Error Analysis
Understand where your model fails before deploying:
result = classifier.analyze() # Analyze test set
classifier.display(result) # Show confusion matrix, metrics, errors
Get per-class precision/recall, confusion matrices, and the actual samples that were misclassified. See Error Analysis Guide for details.
Production Deployment
Export to ONNX for faster inference:
pip install rapidfit[export]
# Export with INT8 quantization (3-4x faster, 4x smaller)
classifier.export_onnx("./onnx_models", quantize=True)
For deployment strategies, ONNX Runtime usage, and performance optimization, see Inference Guide.
Extend It
Build custom augmenters or classifiers by extending the base classes:
from rapidfit import BaseAugmenter, BaseClassifier
License
MIT
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 rapidfit-0.1.6.tar.gz.
File metadata
- Download URL: rapidfit-0.1.6.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5439d409203825236b4d4dfbeb9f79546625e6412afb5500b4c58dcd60946a6c
|
|
| MD5 |
4368f5cd28cef098b0dd29ef5b50924f
|
|
| BLAKE2b-256 |
9da58ba6987558e838f0e67f49c46aa0d93610a9f37bef6128998c8a9f46c4a3
|
File details
Details for the file rapidfit-0.1.6-py3-none-any.whl.
File metadata
- Download URL: rapidfit-0.1.6-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edbf4fd996b6f8cd27a031973eb42b525221c2fdb9c4525901e3586904b18dc8
|
|
| MD5 |
afd854fedcacf406bea89f92d512c365
|
|
| BLAKE2b-256 |
23af797f7cb77b6365bfba462a426e1482dcbd76e62847c44a46fd9ec659c54d
|