Instructions to use thisisisheanesu/morena-tools-gguf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use thisisisheanesu/morena-tools-gguf 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 thisisisheanesu/morena-tools-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf thisisisheanesu/morena-tools-gguf:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf thisisisheanesu/morena-tools-gguf:Q4_K_M # Run inference directly in the terminal: llama cli -hf thisisisheanesu/morena-tools-gguf: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 thisisisheanesu/morena-tools-gguf:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf thisisisheanesu/morena-tools-gguf: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 thisisisheanesu/morena-tools-gguf:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf thisisisheanesu/morena-tools-gguf:Q4_K_M
Use Docker
docker model run hf.co/thisisisheanesu/morena-tools-gguf:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use thisisisheanesu/morena-tools-gguf with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "thisisisheanesu/morena-tools-gguf" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "thisisisheanesu/morena-tools-gguf", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/thisisisheanesu/morena-tools-gguf:Q4_K_M
- Ollama
How to use thisisisheanesu/morena-tools-gguf with Ollama:
ollama run hf.co/thisisisheanesu/morena-tools-gguf:Q4_K_M
- Unsloth Desktop
- Docker Model Runner
How to use thisisisheanesu/morena-tools-gguf with Docker Model Runner:
docker model run hf.co/thisisisheanesu/morena-tools-gguf:Q4_K_M
- Lemonade
How to use thisisisheanesu/morena-tools-gguf with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull thisisisheanesu/morena-tools-gguf:Q4_K_M
Run and chat with the model
lemonade run user.morena-tools-gguf-Q4_K_M
List all available models
lemonade list
- Atomic Chat
MORENA tools (GGUF)
Two small MORENA models fine-tuned to turn Pidgin, Yoruba, Igbo, Hausa and English into API calls, quantised to run on a laptop CPU.
Live demo: https://vambo--morena-pay-pay-web.modal.run Code: thisisisheanesu/morena-tools Data: thisisisheanesu/morena-tools-nigerian-fintech
| file | params | size |
|---|---|---|
mini-tools-Q4_K_M.gguf |
503M | 311 MB |
nano-tools-Q4_K_M.gguf |
209M | 136 MB |
Use mini unless you need the smaller one. It matches nano on tool selection and beats it on
every behaviour that involves deciding what to do.
Results
Two held-out benchmarks. Neither model wins outright, so both files are here.
Tool calling, held-out Paystack menu
| base | nano-tools | mini-tools | |
|---|---|---|---|
| Picks the right tool | 0 to 9% | 90.9% | 100% |
| Decides to call unprompted | 18 to 27% | 90.9% | 100% |
| Uses only declared arguments | 0% | 100% | 100% |
| Edits one field, not all | 0% | 100% | 100% |
| Stays quiet when no tool fits | 0 to 13% | 75% | 25% |
| Follows a mid-conversation language switch | 0% | 100% | 100% |
| Carries a thread across six turns | 0% | 100% | 100% |
| Answers in the user's language | 0 to 50% | 75% | 100% |
Seedance 2.5, 120 held-out briefs
An African-language video brief in, an instruction postable to Seedance unedited out. Scored structurally, never against a reference wording, because a shot has no single right answer.
| nano-tools | mini-tools | |
|---|---|---|
Chose seedance_generate over four other endpoints |
100% | 100% |
| Prompt carries the camera clause | 100% | 100% |
| Camera terms Seedance understands | 100% | 100% |
| Aspect ratio matches the purpose | 99.2% | 100% |
| Duration inside 4 to 30 seconds | 100% | 100% |
| Replied in the user's language | 96.7% | 99.2% |
| Every check passing on one brief | 87.5% | 90.0% |
Use mini unless you need small talk handled. It leads on every axis except one: it over-calls, answering "Good morning, how are you today?" with a balance lookup, where nano abstains correctly three times as often. Quantisation costs nothing measurable on either.
The camera vocabulary these models use was mined from 400 screenplays, 520,378 scene sentences reduced to 34 canonical terms and their real co-occurrence frequencies. The screenplays themselves are not redistributed: their camera grammar is functional vocabulary, and only that was kept.
Prompt format
The chat markers are single reserved tokens, not text:
tool call <eos><reserved_0>\n<reserved_2>{menu_json}\n{question}\n<reserved_1><reserved_3>
prose <eos><reserved_0>\n<reserved_2>{menu_json}\n{question}\n<reserved_1>\n
The token after <reserved_1> is the decision: <reserved_3> opens a call, a newline opens
prose. {menu_json} is a JSON array of {"name", "description", "arguments"}.
A multi-turn edit replays the pending call and appends the correction:
<reserved_0>\n<reserved_2>{menu}\n<reserved_1><reserved_3>{pending_call}<reserved_0>\n{correction}\n<reserved_1>
The reply is a patch, {"op":"patch","set":{...}}, carrying only what changed.
Running it
llama-server -m mini-tools-Q4_K_M.gguf --no-jinja -c 4096
--no-jinja matters. The chat-template parser rejects an otherwise valid response when the model
trails a stray byte, and returns a 500 for a completion that was correct.
Do not set a repetition penalty. It penalises repeated braces and quotes, which is what JSON is made of, and pushes the model into an invalid token right after a correct call.
Training
One A100 each, 25 and 33 minutes, resumed from the released checkpoints with a WSD decay to zero. 21,407 records over 24,000 distinct tool menus. The write-up, including three mistakes that each cost a run, is in the code repository.
- Downloads last month
- 52
4-bit