Skip to main content

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


Download files

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

Source Distribution

rapidfit-0.1.7.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

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

rapidfit-0.1.7-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file rapidfit-0.1.7.tar.gz.

File metadata

  • Download URL: rapidfit-0.1.7.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rapidfit-0.1.7.tar.gz
Algorithm Hash digest
SHA256 7a0a73fd6fc7af1facf36c0db171bf51ab825fbfb4894b6ea73a0a2d3d2dd596
MD5 5c4e71162653edd1d29660ca67ba119d
BLAKE2b-256 840b56a42249b194675303ed731bfd77d644e1b9c3e712bb9905340c2eb9af59

See more details on using hashes here.

File details

Details for the file rapidfit-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: rapidfit-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rapidfit-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0eaf11e61ab05b7ab0034462390c07f69429ded00e445b9053b09a2628328c7e
MD5 6831d5e78cce14c488c697b90336d25f
BLAKE2b-256 4dff17f69e28d53ed9c38e02b669e6c14d4c59794e41625a0645a5273cb3a27c

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