| # 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) |