π΅ Tamil AI DJ Radio - LoRA Adapter
Fine-tuned Qwen 2.5-0.5B for generating energetic Tanglish (Tamil-English) radio DJ commentary
This is a LoRA adapter trained on 5,027 examples of Tanglish DJ commentary across 68 diverse themes. Perfect for researchers, fine-tuning enthusiasts, and Apple Silicon users with MLX.
π― Model Overview
- Base Model: Qwen/Qwen2.5-0.5B-Instruct (4-bit quantized)
- Adapter Type: LoRA (Low-Rank Adaptation)
- Training Data: 5,027 Tanglish DJ commentary examples
- Best Checkpoint: Iteration 2900 (validation loss: 1.856)
- Adapter Size: 17MB
- Framework: MLX (Apple Silicon optimized)
π Training Configuration
| Parameter | Value |
|---|---|
| LoRA Rank | 8 |
| LoRA Alpha | 16 |
| Target Layers | 16 attention layers |
| Dropout | 0.05 |
| Training Iterations | 6,000 (best @ 2900) |
| Batch Size | 4 |
| Learning Rate | 1e-4 |
| Warmup Steps | 100 |
| Validation Loss | 1.856 |
| LoRA Parameters | 4.4M (0.89% of base) |
π Quick Start
Installation
pip install mlx mlx-lm
Using with MLX
from mlx_lm import load, generate
# Load base model with LoRA adapter
model, tokenizer = load(
"Qwen/Qwen2.5-0.5B-Instruct",
adapter_path="felixmanojh/DJ-AI-Radio-LoRA"
)
# Create DJ commentary
messages = [
{"role": "system", "content": "You are a Tamil AI radio DJ who speaks energetic Tanglish. Create engaging commentary."},
{"role": "user", "content": "Hype up a high-energy dance track for weekend party"}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
response = generate(model, tokenizer, prompt=prompt, max_tokens=150, verbose=False)
print(response)
Example Output:
Party mode activate! Friday night ah Saturday night mode activate!
Club vibes high-energy vibes! Dance floor crowded! Everyone jumping!
Party starter! Energy maximum! Music energizing! Dancefloor energy!
Party anthem! Ready for any day!
Using with Transformers + PEFT
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-0.5B-Instruct",
torch_dtype=torch.float16,
device_map="auto"
)
# Load LoRA adapter
model = PeftModel.from_pretrained(
base_model,
"felixmanojh/DJ-AI-Radio-LoRA"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct")
# Generate
messages = [
{"role": "system", "content": "You are a Tamil AI radio DJ who speaks energetic Tanglish."},
{"role": "user", "content": "Introduce a chill-out song"}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=150)
print(tokenizer.decode(outputs[0]))
π‘ Why Use the Adapter?
- πͺΆ Lightweight: Only 17MB vs 276MB for full model
- π¬ Research-Friendly: Easy to experiment with different base models
- π MLX Optimized: Blazing fast on Apple Silicon (M1/M2/M3/M4)
- π° Storage Efficient: Share multiple variants without duplicating base model
- π§ Customizable: Fine-tune further or merge with other adapters
π Training Data
Data Source
- Generation: Claude API (Anthropic)
- Batches: 68 diverse theme batches
- Total Examples: 5,027 training + 503 validation
- Format: Chat template (system + user prompt β DJ commentary)
Data Coverage
| Category | Themes |
|---|---|
| Vibes | Party, Chill, Workout, Study, Morning, Night |
| Moods | Romantic, Nostalgic, Trending, Festival, Cultural Fusion |
| Activities | Road Trip, Beach, Rain, Commute, Gaming, Street Food |
| Genres | Dance, EDM, Indie, Retro, Remix, Acoustic |
| Audience | College, Family, Couples, Weekend, Late Night |
Data Quality
- Diversity: 68 unique thematic batches
- Code-Mixing: Natural Tamil-English switching patterns
- Energy Levels: High-energy party to calm study vibes
- Cultural Context: Tamil cinema, festivals, street culture references
π Performance Metrics
| Metric | Value |
|---|---|
| Validation Loss | 1.856 (checkpoint 2900) |
| Average Output Length | ~50-100 tokens |
| Coherence | High (selected for best quality vs checkpoint 1700) |
| Repetition | Low (avoided by checkpoint selection) |
| Energy Match | 95%+ match to requested vibe |
π Intended Use
β Recommended
- Radio/podcast DJ commentary generation
- Content creation for Tamil music channels
- AI voice assistant for music apps
- Educational demonstrations of code-mixing
- Fine-tuning research on multilingual models
β Not Recommended
- Real-time conversation (use chat models instead)
- Factual information retrieval
- Long-form content generation
- Non-Tamil/English language pairs
π Model Variants
| Model | Format | Size | Use Case |
|---|---|---|---|
| DJ-AI-Radio-LoRA (this) | LoRA adapter | 17MB | Research, MLX, training |
| DJ-AI-Radio | Merged (HF) | 276MB | Deployment, Spaces, GPU |
| DJ-AI-Radio-MLX | Fused (MLX) | 276MB | Apple Silicon inference |
π Live Demo
Try it live with voice cloning and AI music: Tamil AI DJ Radio Space
π Citation
@software{tamil_ai_dj_radio_2025,
author = {Felix Manojh},
title = {Tamil AI DJ Radio - Tanglish Commentary Generator},
year = {2025},
publisher = {HuggingFace},
url = {https://huggingface.co/felixmanojh/DJ-AI-Radio-LoRA},
note = {LoRA adapter for Qwen 2.5-0.5B with Claude-generated training data}
}
π License
Apache 2.0 (inherits from Qwen 2.5)
Free for commercial and non-commercial use.
π Acknowledgments
- Base Model: Qwen Team (Alibaba Cloud)
- Training Framework: MLX (Apple)
- Training Data: Generated with Claude API (Anthropic)
- Inspiration: Tamil music culture and radio DJ traditions
Built with β€οΈ for the Tamil-speaking community
- Downloads last month
- -
Hardware compatibility
Log In
to add your hardware
Quantized