Tɛkyerɛma-1 reply adapter (arm ①)
Author: Prince Nasamu Alhassan
Overview
Qwen3-4B + LoRA, the other half of arm ①. The tool adapter decides WHAT to do; this writes the two sentences the user actually hears — the confirmation question before a consequential action, and the success sentence after it.
Those two sentences are the entire safety surface for someone who cannot see the screen. A confirmation that omits the amount is worse than no confirmation, because it sounds like one.
Use it
A LoRA adapter: load the base, then apply it. Take the
tokenizer from the base, not from this repo — the adapter's saved
tokenizer carries a chat template that silently ignores enable_thinking,
and without that flag Qwen3 opens a reasoning block and never reaches the
JSON.
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
BASE = "Qwen/Qwen3-4B"
tok = AutoTokenizer.from_pretrained(BASE) # the BASE, deliberately
model = PeftModel.from_pretrained(
AutoModelForCausalLM.from_pretrained(
BASE, dtype=torch.bfloat16, device_map="auto"),
"PrinceAlhassanNasamu/tekyerema-1-reply").eval()
prompt = tok.apply_chat_template(
[{"role": "user", "content": TOOL_PROMPT}], # schema + user command
add_generation_prompt=True, tokenize=False,
enable_thinking=False) # not optional
enc = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**enc, max_new_tokens=96, do_sample=False)
print(tok.decode(out[0][enc["input_ids"].shape[1]:],
skip_special_tokens=True))
TOOL_PROMPT must carry the full 21-tool schema exactly as training did —
see H200/sessions/s3_train_tekyerema1.py. Asked without it, the model has
no tool names to choose from and scores zero.
Training data
Trained on the Ghana Speech dataset and related Ghanaian corpora, licensed CC BY-NC 4.0.
Intended use & license
Non-commercial use only (CC BY-NC 4.0). This is inherited from the training data and required by the terms under which the compute was granted: models trained in that window are non-commercial by condition of access, not by inference.
Limitations, stated plainly
- Dagbani had no recogniser of its own for this whole project, and the
reason given for that was wrong. Every card here said "one fine-tuning
session on 74 validation rows would not change that". Those 74 rows are
the eng-dag machine-translation validation split. The Dagbani
speech data in this same account is
waxal_dag: 13,228 training rows, 1,750 validation rows, ~71 hours, 1,041 speakers with the largest at 1% — more data and better speaker diversity than Ewe, which produced a working 42.19 WER recogniser. A number was carried across from a translation table into a speech claim, and then repeated on every model card on the account. It is training now, on 2026-08-31. Until it is scored, the honest statement is that Dagbani's best available recogniser scores 86.6 WER and nobody had tried fine-tuning on the data already in hand. - Evaluation is on read and machine-translated text. No recordings of people speaking agent commands in these languages exist. Numbers measured this way are optimistic about phrasing and pessimistic about code-switching, and should not be read as field performance.
- Research work from a hackathon entry, not a supported product.
The rest of the family
Recognisers
whisper-large-v3-turbo-tekyerema-eng-foundation— Ghanaian English ASR — course 1 (foundation)kusaal-whisper-small-lora— Kusaal ASR (Whisper-small LoRA, superseded)kasa42-asr— KASA-42 (Kusaal, third-party export)tekyerema-asr-ctc— Twi ASR (w2v-BERT CTC)tekyerema-asr-mms-ewe— Ewe ASR (MMS adapter)tekyerema-asr-mms-dag— Dagbani ASR (MMS adapter)tekyerema-asr-mms-hau— Hausa ASR (MMS adapter)tekyerema-asr-mms-kus— Kusaal ASR (MMS adapter)whisper-large-v3-turbo-tekyerema-eng— Ghanaian English ASR (Whisper large-v3-turbo)
Voices
tekyerema-tts-twi— Twi TTS (VITS)tekyerema-tts-kus— Kusaal TTS (VITS)tekyerema-tts-ewe— Ewe TTS (VITS)tekyerema-tts-hau— Hausa TTS (VITS)tekyerema-tts-eng— Ghanaian English TTS (VITS)
Agent models
tekyerema-1-reply— Tɛkyerɛma-1 reply adapter (arm ①)tekyerema-1-native-reply— Tɛkyerɛma-1 reply adapter (arm ②)tekyerema-1-tool— Tɛkyerɛma-1 tool adapter (arm 1)tekyerema-audio-native— Tɛkyerɛma-1 audio-native (arm 3)tekyerema-audio-native-4k— Tɛkyerɛma-1 audio-native, 4,000 clips (arm 3 v2)tekyerema-1-native-tool— Tɛkyerɛma-1 tool adapter (arm 2)
Translation
tekyerema-nllb600m-v1— Tɛkyerɛma MT v1 (NLLB-600M)kusaal-nllb-600M— Kusaal MT specialist (NLLB-600M)
Routing
tekyerema-intent-afroxlmr— Intent classifier (AfroXLMR)
Acknowledgements
Compute resources provided by AI Skills and Compute Africa (AISCA).
Trained on the Ghana NLP H200 GPU. Please keep derivatives non-commercial
and share improvements back with the Ghana NLP community
(ghananlpcommunity).