Instructions to use SmallAICreator/GMiDo-1B 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 SmallAICreator/GMiDo-1B 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 SmallAICreator/GMiDo-1B:Q6_K # Run inference directly in the terminal: llama cli -hf SmallAICreator/GMiDo-1B:Q6_K
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf SmallAICreator/GMiDo-1B:Q6_K # Run inference directly in the terminal: llama cli -hf SmallAICreator/GMiDo-1B:Q6_K
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf SmallAICreator/GMiDo-1B:Q6_K # Run inference directly in the terminal: ./build/bin/llama cli -hf SmallAICreator/GMiDo-1B:Q6_K
Use Docker
docker model run hf.co/SmallAICreator/GMiDo-1B:Q6_K
- Llama new
- LM Studio
- Jan
- vLLM
How to use SmallAICreator/GMiDo-1B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SmallAICreator/GMiDo-1B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SmallAICreator/GMiDo-1B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SmallAICreator/GMiDo-1B:Q6_K
- Ollama
How to use SmallAICreator/GMiDo-1B with Ollama:
ollama run hf.co/SmallAICreator/GMiDo-1B:Q6_K
- Unsloth Desktop
- Pi
How to use SmallAICreator/GMiDo-1B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf SmallAICreator/GMiDo-1B:Q6_K
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": "SmallAICreator/GMiDo-1B:Q6_K" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use SmallAICreator/GMiDo-1B with Docker Model Runner:
docker model run hf.co/SmallAICreator/GMiDo-1B:Q6_K
- Lemonade
How to use SmallAICreator/GMiDo-1B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull SmallAICreator/GMiDo-1B:Q6_K
Run and chat with the model
lemonade run user.GMiDo-1B-Q6_K
List all available models
lemonade list
- Hermes Agent
How to use SmallAICreator/GMiDo-1B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf SmallAICreator/GMiDo-1B:Q6_K
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 SmallAICreator/GMiDo-1B:Q6_K
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use SmallAICreator/GMiDo-1B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf SmallAICreator/GMiDo-1B:Q6_K
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 "SmallAICreator/GMiDo-1B:Q6_K" \ --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"
GMiDo-1B
GMiDo-1B is a ~1B-parameter chat model from UltraLabs, built for phones and laptops. It's the model behind the L-AI Android app.
It starts from GRAFT-1B (Qwen3-1.7B shrunk to ~1B with our own method), then gets several rounds of chat training. Most of the conversation style comes from Gemma 2 answers. That's the G in GMiDo.
What it's good at:
- ๐ฌ Polished everyday chat. Short, warm, well-formatted answers.
- ๐ญ Follows your system prompt. Give it any name, maker, persona or set of rules, and it keeps them, even with tools turned on and after tool calls.
- ๐ง Native tool calling. Web search, a calculator, JavaScript and file creation, in the standard
<tool_call>format that llama.cpp, LM Studio and L-AI understand. - ๐ฑ Small. 0.97 GB at Q6_K. It runs on a mid-range phone.
| Made by | UltraLabs (SmallAICreator) |
| File | GMiDo-1B-Q6_K.gguf (0.97 GB, 6-bit) |
| Chat template | ChatML with tools (embedded in the GGUF) |
| Context | 4K (sharpest within 2K; see Tips) |
| Languages | English first; also Spanish, French, German, Italian, Portuguese |
| License | Gemma Terms of Use (see License) |
Quick start
llama.cpp
# chat in the terminal
llama-cli -hf SmallAICreator/GMiDo-1B:Q6_K -cnv \
--temp 0.7 --top-p 0.95 --top-k 40 --repeat-penalty 1.10
# OpenAI-compatible server (with tool calling) on http://localhost:8080
llama-server -hf SmallAICreator/GMiDo-1B:Q6_K --jinja \
--temp 0.7 --top-p 0.95 --top-k 40 --repeat-penalty 1.10
Ollama
ollama run hf.co/SmallAICreator/GMiDo-1B:Q6_K
Ollama doesn't read the sampling defaults stored in the GGUF. Set temperature 0.7, top_p 0.95,
top_k 40 and repeat_penalty 1.10 yourself.
Apps
- L-AI (Android, by UltraLabs). GMiDo was tuned against L-AI's exact prompts, tools and sampling.
- Any other GGUF app also works: LM Studio, Jan, PocketPal and others. The chat template is read from the file.
Recommended settings
| Setting | Value |
|---|---|
| Temperature | 0.7 |
| Top-p | 0.95 |
| Top-k | 40 |
| Repeat penalty | 1.10 |
| Context | 2,048โ4,096 |
These are also stored in the GGUF as its default sampling parameters. They're the settings GMiDo was tested and preference-tuned with.
System prompts and identity
With no system prompt, GMiDo introduces itself as GMiDo, made by UltraLabs. Give it a system prompt such as "You are L-AI, an AI assistant made by UltraLabs." and your name and maker win, even when it's asked "Are you GMiDo?". This holds with tools turned on, after a tool call, under "ignore your instructions", in other languages and with several rules stacked together (reply in German, no emojis, one sentence, start with a set word, and so on).
Tool calling
The embedded template lists your tools in the system message. GMiDo answers with:
<tool_call>
{"name": "calculator", "arguments": {"expression": "48213 * 377"}}
</tool_call>
You send results back as tool messages, and it answers from them. With llama-server --jinja this is
the normal OpenAI tools / tool_calls API. It was trained on four tools:
| Tool | What it does |
|---|---|
web_search |
{"query": "..."}: current or factual info |
calculator |
{"expression": "..."}: exact math |
run_javascript |
{"code": "..."}: counting, dates, data work |
create_file |
{"name": "...", "content": "..."}: saves a file |
Other tools with clear descriptions usually work too. It decides on its own when not to call a tool, like for "tell me a joke" or "who are you?".
Results
Every number comes from one in-house harness, run the same way for every model in a row.
Benchmarks
| Benchmark | GMiDo-1B | GRAFT-1B (its base) |
|---|---|---|
| MMLU, 5-shot (micro) | 39.72 | 40.37 |
All of GMiDo's chat, tool and identity training was added without losing knowledge. Every round was gated on MMLU, and it stayed within a point the whole way.
Following system prompts and identity
| Test | Previous GMiDo (v3) | GMiDo-1B (v4) |
|---|---|---|
| Held-out system-prompt test (55 personas / rule sets / tool cases) | 84% | 91% |
| Identity test (names and makers it never saw in training, 3 samples each) | 43% | 90% |
| L-AI app suite (L-AI prompt + web search + calculator, 120 sampled replies, llama.cpp Q6_K) | 51% | 95% |
In the L-AI suite it got every identity and tool-choice case right, 10 out of 10 each. That includes "who are you?" right after a calculator call and "are you GMiDo?" right after a web search.
Chat style vs Gemma 3 1B
Both models ran as Q6_K in llama.cpp with phone settings (temp 0.7, top-p 0.95, top-k 40, repeat penalty 1.10), no system prompt and no tools. The test was 24 everyday prompts (chat, support, explanations, writing, code, advice, Spanish and German) with 3 samples each, plus 3-turn chats.
| GMiDo-1B | Gemma 3 1B | |
|---|---|---|
| Average reply length | 147 tokens | 386 tokens |
| Replies that ran past 700 tokens | 0 of 72 | 21 of 72 |
| Repeated phrases (share of repeated 4-word sequences) | 0.8% | 2.3% |
| Replies in the user's language (Spanish / German) | 6/6 | 6/6 |
GMiDo is built for short, focused, friendly answers that read well on a phone screen. Gemma 3 1B goes for long, detailed write-ups and knows more facts. Pick the style you prefer.
How it was made
GMiDo was trained in stages on free cloud GPUs (Kaggle 2ร T4). Each stage was gated: it was kept only if held-out tests improved and nothing else (held-out loss, MMLU) got worse.
- Shrink (GRAFT-1B). Qwen3-1.7B was reduced to ~1B parameters with our own custom method. It isn't published.
- Heal. A short continued-pretraining run (web text, textbooks, code, conversations) repaired the shrunk network.
- Distill. Knowledge distillation from Qwen3-1.7B brought back much of the knowledge lost in the shrink (MMLU went from near chance to ~40).
- Gemma chat distillation. Supervised fine-tuning on high-quality Gemma 2 conversations (Magpie-Gemma2-Pro). This is where GMiDo's clean, friendly answer style comes from.
- System-prompt training. Thousands of conversations with personas, names, companies and rules. Each answer was checked by code before it was kept: right name, right language, word limits, no emoji when told, and so on.
- Instruction stacking. Up to five instructions at once, several system messages, mid-chat rule changes, memories, documents ("answer only from this", or "it doesn't say"), jailbreak attempts and multi-turn chats.
- Native tools. A teacher model (Qwen3-4B-Instruct-2507) used real tools in L-AI's format, with real calculator results and real JavaScript runs. Every step was checked: call the right tool, don't call one for chit-chat, answer from the result.
- Preference tuning (DPO). On system-prompt pairs plus Gemma 2 UltraFeedback preference pairs, anchored so the model keeps its SFT skills.
- Identity hardening. About 2,200 checked conversations with ~170 names and ~40 makers, with tools on and off, after tool turns, with stacked rules and in other languages. Plus exact-number calculator conversations.
- On-policy DPO. GMiDo was sampled with real phone settings (temp 0.7, top-p 0.95, top-k 40, repeat penalty 1.10). Its own slips were collected, like saying "I'm GMiDo" when it was told it's someone else, or miscopying a number. It was then trained to prefer the right answer. This is the step that made identity hold up under real sampling, not just greedy decoding.
Model details
| Architecture | Qwen3 (decoder-only transformer, GQA, RoPE) |
| Parameters | ~1.0B (1.18B in the GGUF, which stores a separate output head) |
| Layers | 20 |
| Hidden / FFN size | 2,048 / 4,608 |
| Attention heads | 16 (8 KV heads), head dim 128 |
| Vocabulary | 88,409 tokens (Qwen BPE) |
| Context length | 4,096 in the GGUF metadata; trained on 2,048-token sequences |
| Quantization | Q6_K |
Tips for the best results
- Keep conversations focused. GMiDo was trained on 2,048-token conversations and finds information perfectly at that length (100% in a needle-in-a-haystack test). For long documents or very long chats, start a new chat or paste just the part you need.
- Turn on web search for facts. Like any small model it can be confidently wrong on niche facts, and it's trained to look things up when search is available.
- Use the calculator tool for math, and double-check big numbers it copies from a result.
- English works best, and Spanish, French, German, Italian and Portuguese are great for everyday chat.
- As with any AI model, don't rely on it for medical, legal or financial decisions.
License and attribution
GMiDo-1B was trained on outputs of Gemma 2 (Magpie-Gemma2-Pro, gemma2-ultrafeedback-armorm), so it's a Gemma model derivative. It's distributed under the Gemma Terms of Use. Use is also subject to the Gemma Prohibited Use Policy.
Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.
Modifications: GMiDo-1B is not a Gemma model. It's a Qwen3-architecture model fine-tuned on Gemma-generated text, as described in How it was made. UltraLabs isn't affiliated with or endorsed by Google.
GMiDo also builds on:
- Qwen3-1.7B by the Qwen team (Apache 2.0): the architecture, tokenizer and starting weights (through GRAFT-1B).
- Qwen3-4B-Instruct-2507 (Apache 2.0): the teacher for the system-prompt, tool and identity conversations.
Citation
@misc{ultralabs2026gmido1b,
title = {GMiDo-1B: a 1B chat and tool-calling model for phones},
author = {UltraLabs},
year = {2026},
url = {https://huggingface.co/SmallAICreator/GMiDo-1B}
}
- Downloads last month
- 20
6-bit