developerPushkal's picture
Create README.md
7da1b58 verified
# T5-Small for News Headline Generation
This is a T5-Small model fine-tuned for generating concise and informative news topics from content summaries. It is useful for news agencies, content creators, and media professionals to generate headlines efficiently.
# Model Details
**Model Type:** Sequence-to-Sequence Transformer
**Base Model:** t5-small
**Maximum Sequence Length:** 128 tokens (input and output)
**Output:** News headlines based on input summaries
**Task:** Text Summarization (Headline Generation)
# Model Sources
**Documentation:** T5 Model Documentation
**Repository:** Hugging Face Model Hub
**Hugging Face Model:** Available on Hugging Face
# Full Model Architecture
```
T5ForConditionalGeneration(
(shared): Embedding(32128, 512)
(encoder): T5Stack(
(embed_tokens): Embedding(32128, 512)
(block): ModuleList(...)
(final_layer_norm): LayerNorm((512,), eps=1e-12)
(dropout): Dropout(p=0.1)
)
(decoder): T5Stack(
(embed_tokens): Embedding(32128, 512)
(block): ModuleList(...)
(final_layer_norm): LayerNorm((512,), eps=1e-12)
(dropout): Dropout(p=0.1)
)
(lm_head): Linear(in_features=512, out_features=32128, bias=False)
)
```
# Installation and Setup
```bash
pip install -U transformers torch datasets
```
# Load the Model and Run Inference
```python
from transformers import T5ForConditionalGeneration, T5Tokenizer
import torch
# Model Name
model_name = "your_fine_tuned_model_id"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
# Move model to GPU if available
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
# Inference
news_summary = "Ministry of Education has announced a major reform in the national curriculum to enhance digital literacy among students."
inputs = tokenizer(news_summary, max_length=128, truncation=True, padding="max_length", return_tensors="pt").to(device)
outputs = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
max_length=20,
num_beams=5,
early_stopping=True
)
headline = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(f"Generated Headline: {headline}")
```
# Training Details
### Training Dataset
**Dataset Name:** News Headlines Dataset
**Size:** 30,000 rows
**Columns:** article_summary (input), headline (output)
# Approximate Statistics
```
article_summary:
Type: string
Min length: ~20 tokens
Mean length: ~50-60 tokens (estimated)
Max length: ~128 tokens
headline:
Type: string
Min length: ~5 tokens
Mean length: ~10-15 tokens
Max length: ~20 tokens
```
# Training Hyperparameters
- **per_device_train_batch_size:** 8
- **per_device_eval_batch_size:** 8
- **gradient_accumulation_steps:** 2
- **num_train_epochs:** 4
- **learning_rate:** 5e-5
- **fp16:** True
This model is optimized for **content topic generation**, ensuring concise, accurate, and informative outputs. ๐Ÿš€