| # PoeticTextGenerator_GPT2 |
| |
| ## 🖋️ Overview |
| |
| This model is a **GPT-2 Small** variant fine-tuned specifically for the task of **unconditional and conditional poetic text generation**. It has been trained on a curated corpus of classical and contemporary English poetry, allowing it to generate text that mimics meter, rhyme, and figurative language patterns. The model is configured as a `GPT2LMHeadModel` for Language Modeling. |
| |
| ## 🧠 Model Architecture |
| |
| The model leverages the powerful transformer architecture of the GPT-2 Small base model. |
| |
| * **Base Model:** `gpt2` (124M parameters) |
| * **Task:** Causal Language Modeling (`GPT2LMHeadModel`) |
| * **Tokenization:** Standard GPT-2 Byte Pair Encoding (BPE) tokenizer. |
| * **Training Data:** Approximately 20,000 poems spanning multiple centuries and styles (e.g., sonnets, free verse, haikus). |
| * **Hyperparameters:** Fine-tuned with a low learning rate to preserve the linguistic capabilities of the base model while acquiring poetic style. |
| * **Key Config:** `do_sample=True` and `temperature=0.8` are set as default generation parameters to encourage creative and diverse outputs. |
|
|
|
|
| ## 💡 Intended Use |
|
|
| * **Creative Writing Assistance:** Providing prompts, completing stanzas, or generating entire poems for writers. |
| * **Artistic Installations:** Generating dynamic, ever-changing poetic text for digital art or interactive projects. |
| * **Stylometric Research:** Studying the model's ability to imitate different poetic styles by adjusting the prompt or conditioning data. |
| * **Educational Tool:** Demonstrating the capabilities of large language models in creative domains. |
|
|
| ### How to use |
|
|
| ```python |
| from transformers import pipeline, set_seed |
| |
| generator = pipeline( |
| "text-generation", |
| model="[YOUR_HF_USERNAME]/PoeticTextGenerator_GPT2" |
| ) |
| set_seed(42) |
| |
| # Conditional Generation (Prompting a theme) |
| prompt = "The shadow of the moon fell upon the silent street," |
| output = generator( |
| prompt, |
| max_length=50, |
| num_return_sequences=1, |
| temperature=0.9, |
| top_p=0.95, |
| do_sample=True |
| ) |
| print(output[0]['generated_text']) |
| |
| # Unconditional Generation (Starting from a single word) |
| # output = generator("A", max_length=100, num_return_sequences=1) |