Downloads · 30 days
7
9% of all-time downloads
Arojit/orbi-1b-gguf
orbi-1b-gguf is a text generation model from Arojit. Use it when you need the model to write or continue text. It is set up for llama-cpp. The card lists the license as apache-2.0.
Quantized GGUF version of Orbi-1B, a fine-tuned TinyLlama-1.1B-Chat specialized for function calling and robotic assistant interactions. This model generates structured tool calls in response to natural language comma…
Downloads · 30 days
7
9% of all-time downloads
All-time downloads
77
Public
Repo size
668 MB
Likes
0
Public
Click a slice to open those files.
.gguf668 MB · 100%
From the Hugging Face model README
Quantized GGUF version of Orbi-1B, a fine-tuned TinyLlama-1.1B-Chat specialized for function calling and robotic assistant interactions. This model generates structured tool calls in response to natural language commands and is optimized for CPU inference with llama.cpp.
GGUF (GPT-Generated Unified Format) offers several advantages:
| File | Quant | Size | Use Case |
|---|---|---|---|
| orbi-1b-q4.gguf | Q4_K_M | ~650MB | Recommended - Best balance of speed and quality |
pip install llama-cpp-python
# CUDA
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python --force-reinstall --no-cache-dir
# Metal (macOS)
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python --force-reinstall --no-cache-dir
import json
import re
from llama_cpp import Llama
# Load model
llm = Llama(
model_path="orbi-1b-q4.gguf",
n_ctx=4096,
n_threads=8,
use_mlock=True,
verbose=False
)
# System prompt
system_prompt = """You are Orbi's brain.
Respond with one or more <tool_call> JSON blocks, in the exact order the user requests actions.
that calls the best tool for the user's request. Do not write stories yourself.
Do not summarize news yourself. Map synonyms to the tool argument enums.
If parameters are missing, pick sensible defaults. Keep outputs terse.
Available tools and enums:
- smile() -> {}
- cry() -> {}
- move_hands(direction ∈ {left,right,up,down,wave}, speed ∈ {slow,normal,fast})
- dance(style ∈ {hiphop,ballet,robot,random}, duration_sec ∈ [10..120])
- tell_news(topic: string)
- tell_story(topic: string, tone ∈ {wholesome,funny,dramatic,spooky,random}, length ∈ {short,medium,long})
"""
# Build prompt
user_input = "Wave your hands quickly and smile"
prompt = f"<|system|>\n{system_prompt}\n<|user|>\n{user_input}\n<|assistant|>\n"
# Generate
output = llm(
prompt,
max_tokens=256,
temperature=0.0,
)
response = output["choices"][0]["text"]
print(response)
Save this as orbi_controller.py:
import json
import re
from llama_cpp import Llama
# Load model
llm = Llama(
model_path="orbi-1b-q4.gguf",
n_ctx=4096,
n_threads=8,
)
def parse_tool_calls(text):
pattern = r"<tool_call>\s*(\{.*?\})\s*</tool_call>"
matches = re.findall(pattern, text, re.DOTALL)
tools = []
for m in matches:
try:
tools.append(json.loads(m))
except:
continue
return tools
# Interactive loop
print("🤖 Orbi is ready! Type 'exit' to quit.\n")
while True:
user_input = input("You: ").strip()
if user_input.lower() in {"exit", "quit"}:
break
prompt = f"<|system|>\n{system_prompt}\n<|user|>\n{user_input}\n<|assistant|>\n"
output = llm(prompt, max_tokens=256, temperature=0.0)
response = output["choices"][0]["text"]
tools = parse_tool_calls(response)
print(f"Orbi: {json.dumps(tools, indent=2)}\n")
<tool_call>
{"name": "move_hands", "arguments": {"direction": "wave", "speed": "fast"}}
</tool_call>
<tool_call>
{"name": "smile", "arguments": {}}
</tool_call>
Approximate inference speeds on different hardware:
| Hardware | Tokens/sec | Memory Usage |
|---|---|---|
| M1 MacBook Pro | ~45 t/s | 800MB |
| Intel i7-12700K | ~35 t/s | 750MB |
| Raspberry Pi 5 | ~8 t/s | 700MB |
| AMD Ryzen 7 5800X | ~40 t/s | 750MB |
Note: Actual performance may vary based on context length and system configuration.
smile(), cry(), move_hands(), dance()tell_news(), tell_story()whats_your_name(), who_am_i()answer_arithmetic(), english_learning()llm = Llama(
model_path="orbi-1b-q4.gguf",
n_ctx=4096, # Context window size
n_threads=8, # CPU threads (adjust based on your CPU)
n_gpu_layers=0, # Set > 0 for GPU offloading
use_mlock=True, # Lock model in RAM (prevents swapping)
verbose=False, # Disable verbose logging
seed=42, # Set seed for reproducibility
)
output = llm(
prompt,
max_tokens=256, # Maximum tokens to generate
temperature=0.0, # 0.0 = greedy (recommended for tool calling)
top_p=0.95, # Nucleus sampling
repeat_penalty=1.1, # Penalize repetition
stop=["</tool_call>"], # Stop sequences
)
use_mlock=True to keep model in RAMn_threads based on your CPU coresn_ctx (context window size)n_threads to match your CPU coresn_gpu_layersmax_tokens if generating long responsesApache 2.0 (inherited from TinyLlama base model)
@misc{orbi-1b-gguf,
title={Orbi-1B GGUF: Quantized Function Calling Model},
author={Arojit Ghosh},
year={2025},
howpublished={\url{https://huggingface.co/Arojit/orbi-1b-gguf}}
}