Self-distilling translation pipeline for low-resource language pairs in refugee contexts. Gemma 31B generates synthetic parallel corpora, Unsloth distills into Gemma E4B, Ollama serves offline. Voice-first, function-calling-driven intake workflows for medical, legal, and resettlement casework. Built for the Gemma 4 Good Hackathon.
# Daraja
**Self-distilling translation for low-resource humanitarian language pairs**
🌐 **Live Demo:** daraja-app-394688461042.us-central1.run.app
> ⚠️ The live demo requires Ollama running locally with the `daraja-so-sw` model for translation to work. The demo UI is hosted, but translation calls go to `localhost:11434`.
Daraja (Swahili for "bridge") is a translation pipeline that creates offline-capable translation models for language pairs underserved by commercial translation services. It targets humanitarian use cases like refugee status determination interviews, medical intake, and legal documentation.
## The Problem
Millions of displaced people speak languages poorly served by existing translation tools. A Somali-speaking refugee meeting with a Swahili-speaking caseworker has no reliable translation option. Google Translate doesn't support direct Somali↔Swahili. Professional interpreters are scarce and expensive. Critical miscommunication happens.
## Our Approach
Daraja uses a fine-tuning pipeline:
1. **Data Collection** — NLLB parallel corpus (630K Somali-Swahili pairs from OPUS)
2. **Filtering** — Remove religious content, length outliers, bad ratios (281K pairs retained)
3. **Training** — Fine-tune Gemma 4 E2B using QLoRA (50K pairs, 2 epochs)
4. **Quantization** — Convert to Q4_K_M GGUF for efficient inference
5. **Deployment** — Package for Ollama with offline-first PWA demo
## Target Language Pairs
| Source | Target | Model | Status |
|--------|--------|-------|--------|
| Somali | Swahili | `daraja-so-sw` | ✅ Fine-tuned |
| Swahili | Somali | `gemma4:e4b` | ✅ Gemma 4 base |
| Tigrinya | Arabic | — | 🔮 Planned |
| Dari | Turkish | — | 🔮 Planned |
**Bidirectional Support:** Somali→Swahili uses our fine-tuned model. Swahili→Somali uses Gemma 4 E4B (9B parameters) with prompt engineering.
## Repository Structure
```
daraja/
├── pipeline/ # Data generation & training notebooks
├── models/ # Ollama Modelfiles & quantization c …