African Deep Tech
# ATDC 2026 — Laptop LLM Challenge
Submission repo for the **African Deep Tech Challenge 2026**: get a small but
capable language model running **locally on an 8GB, CPU-only laptop** (no GPU,
no cloud).
The leaderboard scores:
```
S_total = 0.50·S_acc + 0.30·S_perf + 0.20·S_eff − P_thermal
```
so every decision is measured against **accuracy**, **throughput (TPS)**, **peak
RAM ( **On WSL:** keep the project on the Linux filesystem (e.g. `~/atdc`), not under
> `/mnt/c`. Building/installing into a venv on `/mnt/c` goes over the slow 9P
> bridge and can fail with `Cannot allocate memory`. If you must keep the repo on
> `/mnt/c`, put the venv on ext4: `export UV_PROJECT_ENVIRONMENT="$HOME/.venvs/atdc"`.
## Download a model
Pulls a pre-quantized GGUF from Hugging Face into `./models/` (gitignored).
```bash
uv run atdc-download --list # show candidate models
uv run atdc-download qwen0.5b # Qwen2.5 0.5B Instruct (Q4_K_M)
uv run atdc-download gemma3n-e2b # Gemma 3n E2B Instruct (Q4_K_M)
uv run atdc-download qwen0.5b --quant q8_0 # override quantization
```
Then point `llama.cpp` at the downloaded file, e.g.:
```bash
llama-bench -m models/qwen2.5-0.5b-instruct-q4_k_m.gguf
```
## Layout
```
src/atdc/
models.py # registry of candidate GGUF models
download.py # `atdc-download` CLI
models/ # downloaded weights (gitignored)
```
## Roadmap
1. **Profiler** — get llama.cpp running, download a model, run a first benchmark. ← *here*
2. **Harness** — reproducible TPS / peak-RAM / thermal measurement per the scoring formula.
3. **Domain + training** — pick a problem domain, then fine-tune / RL-posttrain.