Instructions to use 9jatesters/ngpt-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use 9jatesters/ngpt-1 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use 9jatesters/ngpt-1 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf 9jatesters/ngpt-1:Q4_K_M # Run inference directly in the terminal: llama cli -hf 9jatesters/ngpt-1:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf 9jatesters/ngpt-1:Q4_K_M # Run inference directly in the terminal: llama cli -hf 9jatesters/ngpt-1:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf 9jatesters/ngpt-1:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf 9jatesters/ngpt-1:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf 9jatesters/ngpt-1:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf 9jatesters/ngpt-1:Q4_K_M
Use Docker
docker model run hf.co/9jatesters/ngpt-1:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use 9jatesters/ngpt-1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "9jatesters/ngpt-1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "9jatesters/ngpt-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/9jatesters/ngpt-1:Q4_K_M
- Ollama
How to use 9jatesters/ngpt-1 with Ollama:
ollama run hf.co/9jatesters/ngpt-1:Q4_K_M
- Unsloth Desktop
- Pi
How to use 9jatesters/ngpt-1 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf 9jatesters/ngpt-1:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "9jatesters/ngpt-1:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use 9jatesters/ngpt-1 with Docker Model Runner:
docker model run hf.co/9jatesters/ngpt-1:Q4_K_M
- Lemonade
How to use 9jatesters/ngpt-1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull 9jatesters/ngpt-1:Q4_K_M
Run and chat with the model
lemonade run user.ngpt-1-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use 9jatesters/ngpt-1 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf 9jatesters/ngpt-1:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default 9jatesters/ngpt-1:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use 9jatesters/ngpt-1 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf 9jatesters/ngpt-1:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "9jatesters/ngpt-1:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
NGPT-1
A LoRA fine-tune of Qwen2.5-7B-Instruct for Nigerian languages: Yoruba, Igbo, Hausa and Nigerian Pidgin.
It is better at Nigerian languages than the model it came from, clearly so in Yoruba and Igbo. It did not become a better reasoner, it scores 5.0% on Nigerian-language grade-school maths, and on the cleanest head-to-head we have it loses to Nigeria's government-backed N-ATLaS in all four languages. All of that is below, with numbers.
What it actually is
One stage: supervised fine-tuning. No continued pretraining, no preference tuning. A CPT branch was run separately, measured, and shelved because it made the model worse. A DPO model exists and is a different artefact.
| Base | Qwen/Qwen2.5-7B-Instruct (via unsloth/Qwen2.5-7B-Instruct-bnb-4bit) |
| Method | LoRA, r=32, alpha=32, dropout 0.0 |
| Targets | q, k, v, o, gate, up, down projections |
| Optimiser | adamw_8bit, lr 2e-4, cosine, 20 warmup steps, weight decay 0.01 |
| Run | 1 epoch, 7,441 steps, batch 16, bf16 |
| Final training loss | 1.1006 (from 2.8202 at step 20) |
The exact training file used for this run no longer exists: the harvest script overwrites it in place. We can bound the data at roughly 119,000 examples from the step count and batch size, and we will not publish a per-source breakdown we cannot reproduce. Several numbers in our own older documents (89k, 121k, 128k, 165k) disagree with each other and none should be cited.
Where it helps
Sentence continuation on WAXAL, a held-out set published after our training corpora were built. sacreBLEU chrF, n=120 per language, greedy decoding, identical prompts both sides, both models run in the same session on 2026-09-21.
| Language | Base Qwen2.5-7B | NGPT-1 | Gain |
|---|---|---|---|
| Yoruba | 9.80 | 13.14 | +3.34 |
| Igbo | 10.98 | 13.43 | +2.45 |
| Hausa | 12.31 | 13.07 | +0.76 |
| Nigerian Pidgin | 13.74 | 13.61 | -0.13 |
Yoruba and Igbo are where the fine-tune earns its keep. Hausa gains a little. Pidgin gains nothing measurable. The base was already the strongest of the four there, and the fine-tune did not move it.
The error bar on these figures is 0.1 chrF. We know that because we measured it. See "How reproducible these numbers are" below.
Where it does not help, and where it loses
It did not make the model a better reasoner. AfriMMLU 44.2%, AfriMGSM 5.0%, both measured in June 2026 on this model before release.
AfriMMLU went up rather than down: on the same harness the base scored 38.3%. We are deliberately not selling that as a knowledge gain. AfriMMLU is a translated multiple-choice test in Yoruba, Hausa and Igbo, so a model that simply reads those languages better scores higher without knowing anything more, and reading those languages better is exactly what this fine-tune did.
One caution, because we made this mistake ourselves before publishing. Our 9jaBench board scores the same base model at 45.0% on a different harness (N=150, forced-answer extraction, API-served rather than local 4-bit). Set 44.2% against that 45.0% and the model looks like it regressed. It did not. Those two base figures measure the same model through different machinery and are not comparable. Compare within one harness or not at all.
Maths is a floor, not a feature. AfriMGSM 5.0%. Do not read a Nigerian-language model as a Nigerian-knowledge model.
N-ATLaS beats it on all four languages on the same WAXAL protocol, same n, same harness, same session:
| Language | NGPT-1 | N-ATLaS-8B | Margin |
|---|---|---|---|
| Igbo | 13.43 | 20.90 | 7.47 |
| Hausa | 13.07 | 19.76 | 6.69 |
| Pidgin | 13.61 | 14.60 | 0.99 |
| Yoruba | 13.14 | 13.85 | 0.71 |
We publish that because it is true. N-ATLaS is an 8B model with Nigerian government backing behind it; this is a 7B LoRA from one company. The claim we make is the narrow one in the table above: NGPT-1 improves on the model it came from, in Yoruba and Igbo. It is not the strongest Nigerian-language model available. If Hausa or Igbo is what you need, use N-ATLaS.
Humans preferred it in 1 of 10 blind pairings. Two cases, five paid Nigerian testers per pairing, 20 approved submissions in total, run on 2026-07-03 against this model. Its opponent was Claude Sonnet 4.5 both times, and it was picked once.
The case prompts and every model's full answer are at ngpt.ng/verdicts. That page currently shows the AI-judge round and lists the human panel as pending, so these human numbers appear here first.
How reproducible these numbers are
This applies to the WAXAL tables specifically. Those were generated locally through ollama with greedy decoding (temperature 0, top_p 1, fixed seed) and a deterministic item sample. The AfriMMLU, AfriMGSM and human-panel figures came from elsewhere and are dated where they appear. We checked whether the WAXAL runs are genuinely reproducible, and the answer has two halves.
Within one ollama build, it is. Running the base model twice over the same 480 items returned 460 identical continuations and moved chrF by at most 0.09. That is the error bar we quote, and it is why we call the Pidgin result no measurable gain rather than a small loss.
Across ollama builds, it is not. The same model, same blob digest, same items, same greedy settings produced different output on 359 of those 480 items after an ollama version change. Base Yoruba alone moved from 7.82 to 9.80, nearly two chrF points, with nothing about the model changed.
The practical consequence is that our own earlier numbers are not comparable to these, and we have not tried to reconcile them. Every WAXAL figure in this card comes from one session on ollama 0.34.1, dated 2026-09-21. If you reproduce this on a different build and get different absolute values, that is expected. Compare the deltas inside your own run rather than against ours.
The failure that should stop you deploying this in anything that moves money
Given a Yoruba instruction meaning "send five thousand naira to my brother", with no name anywhere in the prompt, the model called the right tool and confabulated both arguments:
want=send_money got=send_money
args={'amount_naira': 50000, 'recipient': 'Akinọla Adébọ̀lá'}
Fifty thousand instead of five thousand, to a person who does not exist.
The same pattern in Igbo (recipient: 'Nwada Chinyere') and Hausa
(recipient: 'Mama'). Asked for a balance, it invented Nigerian phone numbers.
Other models we tested sometimes refused and asked who the brother was. This one refused on none of the three and invented a person every time. That is the worst kind of failure: confident, well formed, and wrong in the argument rather than the call.
This was a 14-case pilot, not a benchmark. It is enough to tell you not to give this model a payments tool without a deterministic confirmation step outside the weights.
Things we have not measured
Safety, refusal and bias behaviour in Nigerian languages. Tokenizer fidelity on Yoruba and Igbo diacritics or Hausa hooked letters. Extraction or memorisation of training text. We would rather say "not measured" than imply a result.
Contamination, stated plainly
Our June translation numbers on LaFAND-MT are contaminated: the model was trained on LaFAND, and 80% of the Yoruba test segments appear verbatim in the training corpus (Yoruba 64/80, Igbo 6/80, Hausa 4/80, Pidgin 0/80). Contamination-free chrF is 38.0 against the base's 28.2. Any LaFAND figure from us should be read with that report beside it.
Licence, and why it is non-commercial
CC BY-NC 4.0. Free to download, run, study, fine-tune and redistribute. Not for commercial use.
The base model, Qwen/Qwen2.5-7B-Instruct, is Apache-2.0 and would have permitted
a commercial release. We are not making one, and the reason is the training data
rather than the base.
Roughly a quarter of the fine-tuning mix is MAFAND-MT, which is CC-BY-4.0-NC, plus MasakhaNEWS, also non-commercial. Those corpora exist because African NLP researchers built them and shared them on non-commercial terms. Releasing weights trained on them under a commercial licence, as a commercial company, would take that work in a direction the people who made it did not agree to. We would rather restrict our own model than do that.
If a commercial licence matters to you, the honest path is a retrain without the NC sources. Ask us and we will tell you where that stands.
Modified from Qwen/Qwen2.5-7B-Instruct by LoRA fine-tuning and merging.
Apache-2.0 §4(b) requires us to state that the files are modified, and we do. The
LICENSE file in this repository is the base model's Apache-2.0 text, kept
unmodified as §4(a) requires; the CC BY-NC 4.0 terms above are ours and apply to
the fine-tuned weights.
Who made it
Ranked Technologies Limited, a Nigerian company, RC 9522220, registered with the Nigeria Data Protection Commission as a data controller, NDPC/DCP/14538. Trading as 9jatesters.
Founder: ERUO FREDOLINE. Contact: support@9jatesters.com or support@ranked.ng
- NGPT, the project this model belongs to
- 9jatesters, the Nigerian panel behind our data work
- Ranked, our Nigerian local-business directory
- Downloads last month
- 24