# Luganda NLP Pipeline
An end-to-end English ↔ Luganda machine translation pipeline: data annotation,
baseline fine-tuning, QLoRA adaptation, evaluation, and a deployed demo —
built during an industrial training placement at Sunbird AI.
## Overview
This project explores low-resource NLP for Luganda, a Bantu language spoken
in Uganda. It covers:
- **Annotation pipeline** — golden evaluation set curated via Argilla,
reviewed under an Accept / Needs Editing / Reject discipline
- **Baseline model** — fine-tuned NLLB-200 (distilled 600M) for direct
English→Luganda translation
- **QLoRA adaptation** — Qwen2.5-1.5B-Instruct fine-tuned with a LoRA adapter
in instruction/chat format
- **Evaluation** — BLEU scoring plus qualitative side-by-side comparison
between baseline and LoRA outputs on the same held-out set
- **Deployment** — a live Gradio demo on Hugging Face Spaces
## Results
| Model | BLEU |
|---|---|
| NLLB baseline | 17.84 |
## Links
- 🤗 Baseline model: SsemuliJoseph/nllb-luganda-baseline
- 🤗 LoRA adapter: SsemuliJoseph/qwen2.5-1.5b-luganda-lora
- 🚀 Live demo: luganda-translator-demo Space
## Pipeline Structure
The notebook (`Luganda_NLP_Pipeline.ipynb`) is organized into phases:
1. **Phase 0** — Environment setup, authentication, sanity checks
2. **Phase 1** — Annotation pull, golden dataset construction
3. **Phase 2** — Baseline model training and qualitative evaluation
4. **Phase 3** — Tokenizer inspection, push baseline to Hub
5. **Phase 4** — QLoRA fine-tuning, adapter push, comparison vs. baseline
6. **Phase 5** — Robustness utilities (OOM handling, gradient checks)
7. **Phase 6** — Gradio demo, Hugging Face Spaces deployment
8. **Phase 7** — Closing checklist
## Setup
\`\`\`bash
git clone
github.com
cd luganda-nlp-pipeline
pip install -r requirements.txt
\`\`\`
## Author
Joseph Ssemuli — Computer Science, Mbarara University of Science and
Technology (MUST). This work was developed during an indust …