Downloads · 30 days
102
21% of all-time downloads
sugiv/qwen3-8b-tanglish
qwen3-8b-tanglish is a text generation model from sugiv. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Fine-tune of Qwen/Qwen3-8B that replies in casual Tanglish — code-mixed Tamil transliterated into the Latin alphabet, as spoken every day in Chennai and across South India.
Downloads · 30 days
102
21% of all-time downloads
All-time downloads
490
Public
Parameters
8.2B
30.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors21.3 GB · 68%
From the Hugging Face model README
Fine-tune of Qwen/Qwen3-8B that
replies in casual Tanglish — code-mixed Tamil transliterated into the Latin
alphabet, as spoken every day in Chennai and across South India.
Trained on sugiv/tanglish-pairs-v1 (81,261 SFT examples) with LoRA r=16, alpha=32 on the bf16 base (not QLoRA/4-bit — L40S 48 GB has enough VRAM for cleaner training). This repo ships the fully merged bf16 model (16.4 GB) plus a standalone PEFT adapter and all 27 intermediate resume checkpoints.
eval/PHASE_4_EVAL.md.qwen3-235b-a22b-instruct-2507, temperature=0, 40/40 parses successful.| Dimension (1-5, higher = better) | tng | base | delta |
|---|---|---|---|
| single-turn intelligibility | 4.87 | 4.20 | +0.67 |
| single-turn tanglish_authenticity | 4.33 | 3.00 | +1.33 |
| single-turn helpfulness | 4.00 | 3.33 | +0.67 |
| single-turn naturalness | 4.60 | 3.53 | +1.07 |
| multi-turn intelligibility | 5.00 | 4.80 | +0.20 |
| multi-turn tanglish_authenticity | 4.00 | 3.60 | +0.40 |
| multi-turn helpfulness | 4.60 | 3.60 | +1.00 |
| multi-turn naturalness | 4.80 | 4.00 | +0.80 |
<think>Okay, the user is asking...</think> reasoning dump on
every casual chat; this fine-tune was trained on outputs that keep
<think></think> empty so it goes straight to the Tanglish reply.training/qwen_train.log + trainer_state.json)| Setting | Value |
|---|---|
| Base model | Qwen/Qwen3-8B (bf16, flash_attention_2, gradient_checkpointing) |
| Adapter | LoRA r=16, alpha=32, target = all-linear |
| Precision | bf16 (not QLoRA / 4-bit) |
| Corpus | sugiv/tanglish-pairs-v1, 77,198 train + 4,063 val |
| Effective batch size | 32 (per-device 4 x grad-accum 8) |
| Learning rate | 2e-4 cosine, warmup steps = 100 |
| Total training steps | ~14,475 (3 full epochs, last saved checkpoint at 13,500) |
Best eval_loss | 0.8126 at step 13,500 |
| First eval (step 500) | 1.1184 |
| Eval-loss trajectory | monotonically decreasing across all 27 checkpoints |
| Optimizer | AdamW |
| Hardware | 1x L40S 48 GB SECURE (RunPod, US-KS-1) |
| Wall time | ~11 hours |
| Cost | ~$13.36 |
Full step-by-step training log at training/qwen_train.log
(2.1 MB, 702 log entries). Config at training/qwen_train_tanglish.yaml.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"sugiv/qwen3-8b-tanglish",
torch_dtype="bfloat16",
device_map="cuda",
token="hf_...",
)
tok = AutoTokenizer.from_pretrained("sugiv/qwen3-8b-tanglish", token="hf_...")
msgs = [
{"role": "system", "content": "You are a friendly Tanglish-speaking assistant. Reply naturally in casual, code-mixed Tanglish..."},
{"role": "user", "content": "machi, nalaikku Chennai la enna weather?"},
]
prompt = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to("cuda")
out = model.generate(prompt, max_new_tokens=200, temperature=0.7, top_p=0.9, do_sample=True)
print(tok.decode(out[0][prompt.shape[-1]:], skip_special_tokens=True))
# => 'da, innum hot ah iruku, morning la 28 degree nu solraanga.'
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B", torch_dtype="bfloat16", device_map="cuda")
model = PeftModel.from_pretrained(base, "sugiv/qwen3-8b-tanglish", subfolder="lora", token="hf_...")
# On Runpod Hub: pick `runpod-workers/worker-vllm`, set:
# MODEL_NAME = sugiv/qwen3-8b-tanglish
# DTYPE = bfloat16
# MAX_MODEL_LEN = 2048
# HF_TOKEN = hf_...
# GPU: L40S 48 GB SECURE recommended (fits with headroom).
Every checkpoint under checkpoints/checkpoint-{500,1000,...,13500}/ contains
the LoRA adapter, optimizer state, LR scheduler state, RNG state, and
trainer_state.json — enough to resume TRL SFTTrainer from that exact step.
| Path | Bytes | What |
|---|---|---|
model-000{1..4}-of-00004.safetensors | ~16.4 GB | Merged bf16 weights (base + LoRA collapsed) |
config.json + tokenizer* + chat_template.jinja | ~14 MB | Same as base Qwen3-8B, unmodified |
lora/adapter_model.safetensors | ~175 MB | LoRA-only best adapter (step 13500) |
lora/{adapter_config,training_args,tokenizer*} | ~14 MB | PEFT metadata + tokenizer |
checkpoints/checkpoint-*/ | ~14 GB (27 dirs) | Resume checkpoints every 500 steps, includes optimizer.pt + scheduler.pt |
eval/MANIFEST.json | ~80 KB | 40 records with LLM-judge scores across 4 dimensions |
eval/PHASE_4_EVAL.md | ~6 KB | Human-readable eval report with side-by-side samples |
training/qwen_train.log | ~2 MB | Full stdout from the 11-hour training run |
training/*.yaml | ~5 KB | Training config used |
<think>...</think> reasoning blocks on casual chat, and this fine-tune
suppresses that behaviour. If you want explicit reasoning, use the base
model — this one goes straight to the answer.Apache-2.0 (inherited from Qwen/Qwen3-8B). Commercial use allowed. Attribution
to both this repo and the base model is appreciated.
@misc{tanglish_qwen3_2026,
title={Qwen3-8B Tanglish LoRA},
author={sugiv},
year={2026},
url={https://huggingface.co/sugiv/qwen3-8b-tanglish}
}