A PLT-5 model fine-tuned from allegro/plt5-base which can generate paraphrases in Polish.

Original model:

https://huggingface.co/allegro/plt5-base

Datasets used:

https://huggingface.co/datasets/allegro/klej-cdsc-e

https://huggingface.co/datasets/sdadas/ppc

https://huggingface.co/datasets/Wojtekb30/Polish-paraphrases-12K-synthetic

The first 2 were created by Allegro and Sławomir Dadas (sdadas) respectively and have Creative Commons Attribution Non Commercial Share Alike 4.0 licence. The last one was created by me (Wojtekb30) using ChatGPT and Gemini and has Creative Commons Attribution 4.0 licence.

Inference code example:

Important note: inputs must start with "Parafrazuj: ", for example "Parafrazuj: Dzisiaj jest ładna pogoda.".

import torch
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

MODEL_NAME = "Wojtekb30/plt5-paraphraser-pl"
#MODEL_NAME = "plt5-paraphraser-pl"

print("Loading model...")
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME)

# Use GPU if available
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
model.eval()

def paraphrase(text, num_return_sequences=3):
    """
    Generate paraphrases for a given Polish input sentence.
    """

    # The model requires this prefix
    input_text = f"Parafrazuj: {text}"

    inputs = tokenizer(
        input_text,
        return_tensors="pt",
        max_length=256,
        truncation=True
    ).to(device)

    outputs = model.generate(
        **inputs,
        max_length=256,
        num_return_sequences=num_return_sequences,
        num_beams=5,
        do_sample=True,
        temperature=1.0,
        top_k=50,
        top_p=0.95,
    )

    paraphrases = [
        tokenizer.decode(output, skip_special_tokens=True)
        for output in outputs
    ]

    return paraphrases


if __name__ == "__main__":

    test_sentences = [
        "W nocy zapowiadane są bardzo silne opady deszczu, dlatego lepiej nie wychodzić z domu.",
        "Pomimo zmęczenia po ciężkim dniu pracy, Janek zdecydował się pójść na długi spacer z psem do lasu."
    ]

    for sentence in test_sentences:
        print("\nOriginal:", sentence)
        print("Paraphrases:")
        for i, p in enumerate(paraphrase(sentence), 1):
            print(f"{i}. {p}")

Model PLT-5 fine-tuned z allegro/plt5-base, który może generować parafrazy w języku polskim.

Oryginalny model:

https://huggingface.co/allegro/plt5-base

Wykorzystane zbiory danych:

https://huggingface.co/datasets/allegro/klej-cdsc-e

https://huggingface.co/datasets/sdadas/ppc

https://huggingface.co/datasets/Wojtekb30/Polish-paraphrases-12K-synthetic

Pierwsze dwa zostały stworzone kolejno przez Allegro i Sławomira Dadasa (sdadas) i są objęte licencją Creative Commons Attribution Non Commercial Share Alike 4.0. Ostatni został stworzony przeze mnie (Wojtekb30) przy użyciu ChatGPT i Gemini i jest objęty licencją Creative Commons Attribution 4.0.

Przykładowy kod:

Ważna uwaga: wejście musi się zaczynać od "Parafrazuj: ", np. "Parafrazuj: Dzisiaj jest ładna pogoda.".

import torch
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

MODEL_NAME = "Wojtekb30/plt5-paraphraser-pl"
#MODEL_NAME = "plt5-paraphraser-pl"

print("Loading model...")
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME)

# Use GPU if available
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
model.eval()

def paraphrase(text, num_return_sequences=3):
    """
    Generate paraphrases for a given Polish input sentence.
    """

    # The model requires this prefix
    input_text = f"Parafrazuj: {text}"

    inputs = tokenizer(
        input_text,
        return_tensors="pt",
        max_length=256,
        truncation=True
    ).to(device)

    outputs = model.generate(
        **inputs,
        max_length=256,
        num_return_sequences=num_return_sequences,
        num_beams=5,
        do_sample=True,
        temperature=1.0,
        top_k=50,
        top_p=0.95,
    )

    paraphrases = [
        tokenizer.decode(output, skip_special_tokens=True)
        for output in outputs
    ]

    return paraphrases


if __name__ == "__main__":

    test_sentences = [
        "W nocy zapowiadane są bardzo silne opady deszczu, dlatego lepiej nie wychodzić z domu.",
        "Pomimo zmęczenia po ciężkim dniu pracy, Janek zdecydował się pójść na długi spacer z psem do lasu."
    ]

    for sentence in test_sentences:
        print("\nOriginal:", sentence)
        print("Paraphrases:")
        for i, p in enumerate(paraphrase(sentence), 1):
            print(f"{i}. {p}")
Downloads last month
47
Safetensors
Model size
0.4B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Wojtekb30/plt5-paraphraser-pl

Base model

allegro/plt5-base
Finetuned
(3)
this model

Datasets used to train Wojtekb30/plt5-paraphraser-pl