---
license: llama3.1
base_model: meta-llama/Meta-Llama-3.1-8B-Instruct
library_name: gguf
pipeline_tag: text-generation
language:
- en
- pcm
- yo
- ha
- ig
datasets:
- Shinzmann/npa-corpus-v1
tags:
- gguf
- llama-cpp
- ollama
- quantized
- lora
- qlora
- nigerian
- nigerian-pidgin
- reviews
- recommendation
- agent
---
# NaijaReviewer-8B — Q5_0 GGUF
Llama 3.1 8B Instruct QLoRA fine-tuned on Nigerian product reviews. This repository is the **Q5_0 GGUF** build, the higher-quality quantisation in the NaijaReviewer-8B family: roughly 5 bits per weight, ~6 GB on disk, near-imperceptible quality drop versus FP16 while still running comfortably on a single consumer or commodity-cloud GPU.
NaijaReviewer-8B is the model behind the **Naija Persona Agent**, a Nigerian-context AI system for review simulation (Task A) and persona-aware recommendation (Task B), submitted to the DSN X BCT LLM Agent Challenge.
- **Live application:**
- **Source code:**
- **Companion artifacts:** [Q4_K_M GGUF](https://huggingface.co/Shinzmann/naija-reviewer-8b-v2-Q4_K_M-GGUF) · [Merged HF + all GGUFs](https://huggingface.co/Shinzmann/naija-reviewer-8b-v2) · [LoRA adapter](https://huggingface.co/Shinzmann/naija-reviewer-8b-v2-lora) · [Training corpus](https://huggingface.co/datasets/Shinzmann/npa-corpus-v1)
## Which quantisation should I use?
| Build | Bits | Size | Quality | Use case |
|---|---|---|---|---|
| [Q4_K_M](https://huggingface.co/Shinzmann/naija-reviewer-8b-v2-Q4_K_M-GGUF) | ~4 | ~5 GB | Balanced (Ollama default) | Production serverless, smaller VMs, mobile-class inference. |
| **Q5_0 (this repo)** | ~5 | ~6 GB | Recommended for quality | Local inference where quality matters more than disk footprint. |
| [Q8_0](https://huggingface.co/Shinzmann/naija-reviewer-8b-v2) | 8 | ~8.5 GB | Near-lossless | Reference / sanity-check runs. |
Choose Q5_0 if you have ~6 GB of free VRAM (or system RAM) and want a quality-leaning quant.
## Headline numbers
| Metric | NaijaReviewer-8B | Frontier baseline (Claude Sonnet 4) |
|---|---|---|
| Task A rating RMSE (lower is better) | **1.114** | 1.319 (15.5% higher) |
| Task A Nigerian-rater win-rate, 5 raters / 50 pairs | **48.5%** (CI [40.2, 56.9]) | 51.5% (statistical parity) |
| Task B NDCG@10 vs four heavyweight baselines | **0.588** (best in field) | 0.430-0.441 |
| Parameters | **8B** | 70B-120B+ |
| Per-call API cost | **Zero** (open weights) | $/1k tokens |
## What's in this repo
- `naija-reviewer-8b-v2-Q5_0.gguf` — the quantised model (~6 GB).
- `Modelfile` — Ollama configuration encoding the exact Alpaca prompt template the model was trained on, with the correct stop tokens.
- This README and the license.
## Quick start
### Ollama
```bash
huggingface-cli download Shinzmann/naija-reviewer-8b-v2-Q5_0-GGUF \
naija-reviewer-8b-v2-Q5_0.gguf Modelfile --local-dir .
ollama create naija-reviewer-8b -f Modelfile
ollama run naija-reviewer-8b "Write a review of a Tecno Spark 10 phone from a Lagos Bolt driver."
```
### llama.cpp
```bash
huggingface-cli download Shinzmann/naija-reviewer-8b-v2-Q5_0-GGUF \
naija-reviewer-8b-v2-Q5_0.gguf --local-dir .
./llama-cli -m naija-reviewer-8b-v2-Q5_0.gguf \
-p "### Instruction\nWrite a product review.\n\n### Input\nA Tecno Spark 10 mobile phone, NGN 145,000.\n\n### Response\n" \
-n 256 --temp 0.7 --top-p 0.9 -no-cnv
```
### llama-cpp-python
```python
from llama_cpp import Llama
llm = Llama.from_pretrained(
repo_id="Shinzmann/naija-reviewer-8b-v2-Q5_0-GGUF",
filename="naija-reviewer-8b-v2-Q5_0.gguf",
n_ctx=4096,
n_gpu_layers=-1,
chat_format="llama-3",
)
out = llm.create_chat_completion(
messages=[{
"role": "user",
"content": "Write a short, authentic Pidgin review of an Oraimo wireless earbud."
}],
max_tokens=256,
temperature=0.7,
)
print(out["choices"][0]["message"]["content"])
```
### Serverless GPU deployment (Modal)
The reference production deployment uses Q4_K_M for the lowest cold-start cost on a serverless L4 GPU. To swap to Q5_0, change `HF_REPO` in [`deploy/modal_naija.py`](https://github.com/Mystique1337/telcoproject/blob/main/deploy/modal_naija.py) to `Shinzmann/naija-reviewer-8b-v2-Q5_0-GGUF` and redeploy. Expect ~20 % more memory and slightly slower warm latency in exchange for higher fidelity.
## Prompt format
Fine-tuned on the Alpaca template:
```
### Instruction
{instruction}
### Input
{input}
### Response
{response}
```
Stop sequences: `### Instruction`, `### Input`, `### Response`. The included Ollama `Modelfile` encodes these along with a Nigerian-context system prompt.
For Nigerian-context use, pass the structured persona JSON (cognitive dimensions + register tier + aspect priorities) as `### Input`. The production prompt templates are in the project repo under `app/prompts/`.
## Training
| | |
|---|---|
| Base model | `meta-llama/Meta-Llama-3.1-8B-Instruct` |
| Method | QLoRA via [Unsloth](https://github.com/unslothai/unsloth) |
| Adapter | LoRA r=16, alpha=32, dropout=0.1, targets q/k/v/o/up/gate/down (0.52% trainable params) |
| Loss | Response-only loss via `train_on_responses_only` |
| Tokenisation | EOS-terminated training examples |
| Schedule | 2 epochs, effective batch size 16, learning rate 2e-4 with cosine decay, sequence length 4096 |
| Quantisation (this file) | `Q5_0`, ~6 GB |
## Training data
Trained on **`Shinzmann/npa-corpus-v1`** (~20,000 Alpaca-style instruction/response pairs), built from two real public Jumia sources plus synthetic expansion. Full provenance and the build pipeline are in the [dataset card](https://huggingface.co/datasets/Shinzmann/npa-corpus-v1).
## Intended use and limitations
**Intended use.** Generation of Nigerian-context product reviews and ratings (Task A); persona-aware re-ranking of product recommendations (Task B); research on register-aware text generation in low-resource African contexts.
**Limitations.** Trained primarily on Nigerian English and Nigerian Pidgin product reviews. The training corpus is partly synthetic; two independent generator pipelines and disjoint train/eval generator families were used to mitigate confounds. On a 3-arbiter LLM-as-Judge evaluation, frontier LLM judges showed a systematic preference for Claude Sonnet 4's prose register; Nigerian human raters scored the two systems at parity on the same pairs, which we read as evidence that single-judge LLM evaluation is insufficient on culturally-localised content.
## Citation
```bibtex
@misc{naijareviewer8b2026,
title = {NaijaReviewer-8B: A Nigerian-Context Open-Weight Fine-Tune for Persona-Aware Review Generation},
author = {Ashinze, Emmanuel and Uvere, Franca and Oyenekan, Esther},
year = {2026},
url = {https://huggingface.co/Shinzmann/naija-reviewer-8b-v2-Q5_0-GGUF}
}
```
## License
Subject to the [Llama 3.1 Community License](https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct/blob/main/LICENSE). Released for research and non-commercial use; commercial use must comply with the upstream Llama 3.1 terms.