This project fine-tunes a multilingual T5 (mT5) model to answer health-related questions in five African languages: Akan, Amharic, Luganda, Swahili, and English.
# Multilingual Health QA: Fine-Tuning mT5 for African Languages
**Zindi Competition: Multilingual Health Question Answering in Low-Resource African Languages**
**🎥 Watch the demo video**
## Overview
This project fine-tunes a multilingual T5 (mT5) model to answer health-related questions in five African languages: Akan, Amharic, Luganda, Swahili, and English. The model is trained on a curated dataset of maternal, sexual, and reproductive health (MSRH) question-answer pairs across nine language-country configurations.
Access to reliable health information remains a critical challenge across sub-Saharan Africa. Language barriers frequently prevent communities from receiving accurate health guidance in their native language. This project addresses that gap by building a multilingual model capable of generating fluent, accurate, and contextually appropriate health responses.
### Competition Metrics
The model is evaluated using a weighted combination of:
| Metric | Weight | Description |
|--------|--------|-------------|
| ROUGE-1 F1 | 0.37 | Lexical overlap of unigrams between prediction and reference |
| ROUGE-L F1 | 0.37 | Longest Common Subsequence similarity |
| LLM-as-a-Judge | 0.26 | AI-based evaluation of factual accuracy and completeness |
An additional **AfroLM BertScore F1** metric evaluates top solutions using a multilingual transformer pretrained on 23 African languages.
## Project Structure
```
multilingual-health-qa/
|-- notebooks/
| |-- 01_eda.ipynb # Exploratory data analysis
| |-- 02_finetuning.ipynb # Model fine-tuning pipeline (open in Colab)
| |-- 03_inference_demo.ipynb # Evaluation, comparison, and demo
|-- src/
| |-- config.py # Configuration and experiment definitions
| |-- data.py # Data loading and preprocessing
| |-- model.py # Model loading, LoRA setup, training
| |-- evaluate.py # ROUGE metrics, experiment tracking
| |-- ut …