Skip to main content

GitHub - License Docs - GitHub.io Tests Passing PyPI - Python Version PyPI - Package Version

Pr🥨mptzl

Turn state-of-the-art LLMs into zero+-shot PyTorch classifiers in just a few lines of code.

Promptzl offers:

  • 🤖 Zero+-shot classification with LLMs
  • 🤗 Turning causal and masked LMs into classifiers without any training
  • 📦 Batch processing on your device for efficiency
  • 🚀 Speed-up over calling an online API
  • 🔎 Transparency and accessibility by using the model locally
  • 📈 Distribution over labels
  • ✂️ No need to extract the predictions from the answer.

For more information, check out the official documentation.

Installation

pip install -U promptzl

Getting Started

In just a few lines of code, you can transform a LLM of choice into an old-school classifier with all it's desirable properties:

Set up the dataset:

from datasets import Dataset

dataset = Dataset.from_dict(
    {
        'text': [
            "The food was absolutely wonderful, from preparation to presentation, very pleasing.",
            "The service was a bit slow, but the food made up for it. Highly recommend the pasta!",
            "The restaurant was too noisy and the food was mediocre at best. Not worth the price.",
        ],
        'label': [1, 1, 0]
    }
)

Define a prompt for guiding the language model to the correct predictions:

from promptzl import FnVbzPair, Vbz
prompt = FnVbzPair(
    lambda e: f"""Restaurant review classification into categories 'positive' or 'negative'.

    'Best pretzls in town!'='positive'
    'Rude staff, horrible food.'='negative'

    '{e['text']}'=""",
    Vbz({0: ["negative"], 1: ["positive"]}))

Initialize a model:

from promptzl import CausalLM4Classification
model = CausalLM4Classification(
    'HuggingFaceTB/SmolLM2-1.7B',
    prompt=prompt)

Classify the data:

from sklearn.metrics import accuracy_score
output = model.classify(dataset, show_progress_bar=True, batch_size=1)
accuracy_score(dataset['label'], output.predictions)
1.0

For more detailed tutorials, check out the documentation!

Metadata

Release files for promptzl 1.0.0

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

Source distribution (sdist)

Source distribution for promptzl 1.0.0
File Size Uploaded
promptzl-1.0.0.tar.gz 25.4 kB Details

Built distribution (wheel)

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

Total release size: 45.9 kB

Release files / promptzl-1.0.0.tar.gz

Download URL promptzl-1.0.0.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
88687944e7a2f7e0cebae61d31e918c7d4d59d2d877d8382a275fa030951cf9f
BLAKE2b-256 checksum
How to use checksums
a4e70421bb579b961f189316658594b670412479220e6ddc30a363a9511b231f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.0 CPython/3.12.7

Release files / promptzl-1.0.0-py3-none-any.whl

Download URL promptzl-1.0.0-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
38fef5923093501dc852f7238e90d9f2e5c18aece27eea2ada183ab662498450
BLAKE2b-256 checksum
How to use checksums
15a0379ae2619a2afabaee69404f2e751cfe62f63512217030f781c7c9f2e493
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

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