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
Model tree for Wojtekb30/plt5-paraphraser-pl
Base model
allegro/plt5-base