gemma2_scripter / README.md
Sidharthan's picture
Update README.md
087bce7 verified
---
language: en
tags:
- text-generation
- YouTube-scripts
- fine-tuned
- causal-lm
datasets:
- custom
license: mit
model_name: Gemma 2 Scripter
---
# Gemma 2 Scripter
**Gemma 2 Scripter** is a fine-tuned version of the Gemma 2 2B instruct model designed for generating high-quality YouTube scripts based on provided keywords. It is optimized for text generation tasks, delivering coherent and contextually relevant outputs.
## Model Details
- **Model Name**: `Sidharthan/gemma2_scripter`
- **Architecture**: Causal Language Model
- **Base Model**: Gemma 2 2B
- **Fine-tuning Objective**: Script generation using prompt-based keywords.
## How to Use
### Installation
Ensure you have the following dependencies installed:
```bash
pip install torch transformers peft
```
### Code Sample
```python
from transformers import AutoTokenizer
from peft import AutoPeftModelForCausalLM
import torch
# Load the model and tokenizer
model_name = "Sidharthan/gemma2_scripter"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model = AutoPeftModelForCausalLM.from_pretrained(
model_name,
device_map=None,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
trust_remote_code=True,
low_cpu_mem_usage=True
).to(device)
# Generate a script
def generate_script(prompt):
formatted_prompt = f"<bos><start_of_turn>keywords\n{prompt}<end_of_turn>\n<start_of_turn>script\n"
inputs = tokenizer(formatted_prompt, return_tensors="pt")
inputs = {key: value.to(device) for key, value in inputs.items()}
outputs = model.generate(
**inputs,
max_length=1024,
do_sample=True,
temperature=0.7,
top_p=0.95,
top_k=50,
repetition_penalty=1.2,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
# Example usage
prompt = "crosshatch waffle texture, dark chocolate, four bar crispy wafers, kat, milk chocolate"
response = generate_script(prompt)
print(f"Generated Script:\n{response}")
```
### Input Format
The model expects prompts in the following format:
```
<bos><start_of_turn>keywords
<your_keywords_here><end_of_turn>
<start_of_turn>script
```
Example:
```
<bos><start_of_turn>keywords
crosshatch waffle texture, dark chocolate, four bar crispy wafers, kat, milk chocolate<end_of_turn>
<start_of_turn>script
```
### Output
The output is a YouTube script generated based on the keywords provided.
### Performance
- CPU: Slower inference due to computational constraints.
- GPU: Optimized for faster inference with FP16 support.
### Applications
- Generating structured scripts for video content
- Keyword-based text generation for creative tasks
## Training Details
### Training Data
The model was fine-tuned on a custom dataset of YouTube scripts paired with their corresponding keywords.
### Training Procedure
- **Fine-tuning Method**: LoRA (Low-Rank Adaptation)
- **Optimization**: AdamW optimizer
- **Learning Rate**: 2e-4
- **Batch Size**: 4
- **Training Steps**: 1000
## Limitations
- The model's output quality depends on the clarity and relevance of input keywords
- May occasionally generate repetitive content
- Performance may vary based on hardware capabilities
## Citation
If you use this model in your research, please cite:
```bibtex
@misc{gemma2_scripter,
author = {Sidharthan},
title = {Gemma 2 Scripter: Fine-tuned YouTube Script Generator},
year = {2024},
publisher = {Hugging Face},
journal = {Hugging Face Model Hub},
howpublished = {\url{https://huggingface.co/Sidharthan/gemma2_scripter}}
}
```
### License
This model is released under the MIT License.