CoolFace
Modelpublic

KemiOm/poetry-rhyme-best

sourceHugging Facecc-by-sa-4.0updated 5mo agoView on Hugging Face
0likes7downloads
Model Card

KemiOm/poetry-rhyme-best

KemiOm/poetry-rhyme-best is a LoRA-adapted google/flan-t5-large model that predicts the rhyme phonology ending for a single poetic line.

Task

Given one input line, the model outputs only the line-final rhyme phonology in ARPAbet-style phones.

  • —Input: Tired Nature's sweet restorer, balmy Sleep!
  • —Output: IY1 P This is a line-level labeling task (not stanza generation and not full combined-structure prediction).

Output Format

A short phonological ending sequence, e.g.:

  • —IY1 P
  • —EY1 Z
  • —OW1
  • —AY1 N D

Training Data Format

The rhyme-only training set uses:

  • —input: poetic line text
  • —target: rhyme phonology string only Example:
  • —input: He, like the world, his ready visit pays
  • —target: EY1 Z

Model Details

  • —Developer: KemiOm
  • —Base model: google/flan-t5-large
  • —Method: LoRA fine-tuning
  • —Framework: Hugging Face Transformers + PEFT

Best Run Configuration

  • —epochs: 5.0
  • —learning rate: 5e-05 (round2 setting)
  • —batch size per device: 8
  • —gradient accumulation: 2
  • —max input length: 384
  • —max target length: 128
  • —LoRA rank (r): 32
  • —LoRA alpha: 64
  • —LoRA dropout: 0.05
  • —LoRA target modules: q,k,v,o
  • —seed: 42

Intended Use

  • —Rhyme-phonology annotation for poetry lines
  • —Rhyme diagnostics in constrained poetry pipelines
  • —Preprocessing/evaluation for poetry generation systems

Limitations

  • —Depends on learned orthography-to-phonology mapping; rare/archaic spellings may fail.
  • —Output reflects dataset conventions and may not capture all dialectal pronunciations.
  • —Best used with human review in literary-critical workflows.

Usage

python
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
model_id = "KemiOm/poetry-rhyme-best"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
line = "Tired Nature's sweet restorer, balmy Sleep!"
inputs = tokenizer(line, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=12, do_sample=False)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# expected format: "IY1 P"