Instructions to use solomoniw/CallForge-1B-v2 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 solomoniw/CallForge-1B-v2 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 solomoniw/CallForge-1B-v2:Q4_K_M # Run inference directly in the terminal: llama cli -hf solomoniw/CallForge-1B-v2:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf solomoniw/CallForge-1B-v2:Q4_K_M # Run inference directly in the terminal: llama cli -hf solomoniw/CallForge-1B-v2: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 solomoniw/CallForge-1B-v2:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf solomoniw/CallForge-1B-v2: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 solomoniw/CallForge-1B-v2:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf solomoniw/CallForge-1B-v2:Q4_K_M
Use Docker
docker model run hf.co/solomoniw/CallForge-1B-v2:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use solomoniw/CallForge-1B-v2 with Ollama:
ollama run hf.co/solomoniw/CallForge-1B-v2:Q4_K_M
- Unsloth Desktop
- Pi
How to use solomoniw/CallForge-1B-v2 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf solomoniw/CallForge-1B-v2: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": "solomoniw/CallForge-1B-v2:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use solomoniw/CallForge-1B-v2 with Docker Model Runner:
docker model run hf.co/solomoniw/CallForge-1B-v2:Q4_K_M
- Lemonade
How to use solomoniw/CallForge-1B-v2 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull solomoniw/CallForge-1B-v2:Q4_K_M
Run and chat with the model
lemonade run user.CallForge-1B-v2-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use solomoniw/CallForge-1B-v2 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf solomoniw/CallForge-1B-v2: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 solomoniw/CallForge-1B-v2:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use solomoniw/CallForge-1B-v2 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf solomoniw/CallForge-1B-v2: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 "solomoniw/CallForge-1B-v2: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"
CallForge-1B-v2
A 1B tool-calling model fine-tuned from openbmb/MiniCPM5-1B on the CallForge v2 trajectory corpus (893 trajectories: multi-hop dependency chains, distractor tools, clarification-required turns, literal-copy traps). Trained with LoRA (merged) + trained lm_head, bf16, fixed-2048 padding.
Benchmarks (measured, no cherry-picking)
All numbers below are from the unified runner (eval/benchmarks/run_suite.py): greedy decoding, seed 0, the checkpoint's own chat template, hit_token_budget => failure. Raw traces are in benchmark_results.json. The stress and private suites are held-out and were never trained on; BFCL v3 is hash-pinned.
| Suite | Passed | Rate | Wilson 95% CI |
|---|---|---|---|
| Stress suite (66 adversarial probes, private) | 56/66 | 84.8% | 74.3–91.6% |
| Private eval suite (121 tasks, zero public leakage) | 97/121 | 80.2% | 72.2–86.3% |
| BFCL v3 (hash-pinned @ f092d154, 180 cases) | 112/180 | 62.2% | 55.0–69.0% |
Deltas vs baselines
| Suite | v1 CallForge | Base MiniCPM5 | v2 (this model) |
|---|---|---|---|
| Stress suite (66 adversarial probes, private) | 33.3% | 40.9% | 84.8% |
| Private eval suite (121 tasks, zero public leakage) | 45.5% | 28.1% | 80.2% |
| BFCL v3 (hash-pinned @ f092d154, 180 cases) | 57.2% | 42.8% | 62.2% |
Training
- Run:
v2-r32-lr2e-5-tp(preregistered ablation-grid winner) - Data:
data/trajectories/corpus_v2.jsonl(893 trajectories, hash recorded in the reproducibility manifest) - Method: LoRA + trained lm_head, merged; bf16; fixed-2048 padding
- Selection: preregistered score 0.6×probe_pass_rate + 0.4×(1−val_loss/3.0); no post-hoc tuning
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("solomoniw/CallForge-1B-v2")
tok = AutoTokenizer.from_pretrained("solomoniw/CallForge-1B-v2")
messages = [{"role": "user", "content": "What's the weather in Paris?"}]
tools = [{"type": "function", "function": {"name": "get_weather",
"description": "Get current weather", "parameters": {"type": "object",
"properties": {"city": {"type": "string"}}, "required": ["city"]}}}]
prompt = tok.apply_chat_template(messages, tools=tools, add_generation_prompt=True, tokenize=False)
ids = tok(prompt, return_tensors="pt")
out = model.generate(**ids, max_new_tokens=192, do_sample=False)
print(tok.decode(out[0][ids.input_ids.shape[1]:], skip_special_tokens=True))
GGUF quants (F16, Q8_0, Q4_K_M) are in this repo; load with llama.cpp.
Limitations
- 1B parameters: reasoning depth is bounded; the model is optimized for correct tool selection/argument extraction, not open-domain chat.
- Stress-suite categories with small n have wide CIs; see the table.
- Benchmarks were run on Apple Silicon MPS; absolute numbers may shift slightly on other backends, but the same runner and seeds were used for every model compared.
- Downloads last month
- -
Model tree for solomoniw/CallForge-1B-v2
Base model
openbmb/MiniCPM5-1B