Instructions to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Nexlab/VibeThinker-Fable-Nano-Agentic-3B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Nexlab/VibeThinker-Fable-Nano-Agentic-3B", dtype="auto") - llama-cpp-python
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="Nexlab/VibeThinker-Fable-Nano-Agentic-3B", filename="vibethinker-final-Q4_K_M.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B 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 Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B: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 Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B: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 Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
Use Docker
docker model run hf.co/Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Nexlab/VibeThinker-Fable-Nano-Agentic-3B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Nexlab/VibeThinker-Fable-Nano-Agentic-3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
- SGLang
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Nexlab/VibeThinker-Fable-Nano-Agentic-3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Nexlab/VibeThinker-Fable-Nano-Agentic-3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Nexlab/VibeThinker-Fable-Nano-Agentic-3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Nexlab/VibeThinker-Fable-Nano-Agentic-3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Ollama:
ollama run hf.co/Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
- Unsloth Studio
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Nexlab/VibeThinker-Fable-Nano-Agentic-3B to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Nexlab/VibeThinker-Fable-Nano-Agentic-3B to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for Nexlab/VibeThinker-Fable-Nano-Agentic-3B to start chatting
- Pi
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Nexlab/VibeThinker-Fable-Nano-Agentic-3B: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 Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- Docker Model Runner
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Docker Model Runner:
docker model run hf.co/Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
- Lemonade
How to use Nexlab/VibeThinker-Fable-Nano-Agentic-3B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Nexlab/VibeThinker-Fable-Nano-Agentic-3B:Q4_K_M
Run and chat with the model
lemonade run user.VibeThinker-Fable-Nano-Agentic-3B-Q4_K_M
List all available models
lemonade list
VibeThinker-Fable-Nano-Agentic-3B
A 3B agentic coding model: a QLoRA SFT of zkxxxx/VibeThinker-3B-heretic
(Qwen2.5-Coder-3B lineage, abliterated) distilled from FABLE.5 agent traces. The goal was to turn a
long-form math/reasoning model into one that follows a tool-use loop and commits to complete answers โ
the behavior an autonomous coding agent needs.
Results
Scored HumanEval + MBPP pass@1 (vLLM, temp 0.2, identical harness across all rows):
| model | HumanEval | MBPP |
|---|---|---|
| base (VibeThinker-3B-heretic) | 0.220 | 0.234 |
| this model (agentic FT, 3B) | 0.342 | 0.506 |
| Qwen2.5-Coder-3B-Instruct | 0.823 | 0.755 |
| Qwen2.5-Coder-7B-Instruct | 0.884 | 0.856 |
| Qwen2.5-Coder-14B-Instruct-AWQ | 0.915 | 0.841 |
Two honest takeaways:
- The fine-tune works. Over its own base, HumanEval improves +56% relative and MBPP more than doubles (0.234 โ 0.506). A local behavioral head-to-head corroborates this: the FT reliably follows the chat/tool format and finishes its code, where the base and two sibling finetunes ramble in raw chain-of-thought and get cut off.
- A purpose-built coder of the same size is far stronger at raw accuracy (Qwen2.5-Coder-3B-Instruct
0.82 vs 0.34 on HumanEval). This is expected: VibeThinker is a math-reasoning base, this FT targeted
agentic behavior (not HumanEval-maxxing), and it spends part of its token budget on
<think>. The Qwen 7B/14B figures match their published numbers, confirming the harness is sound.
The clearest next step is to apply the same agentic SFT recipe on top of a real coder (e.g. Qwen2.5-Coder-3B-Instruct): the recipe is proven, and the base model is the ceiling.
Training
- Method: QLoRA SFT (vanilla HF Trainer),
load_best_model_at_end=True, cosine LR. - Data: ~160k agentic coding turns distilled from
Crownelius/Complete-FABLE.5-traces-2M(MIT) โ OpenAI-stylemessageswithtool_calls/toolroles;<think>reasoning preserved; refusals filtered out. - Schedule: 2 epochs / 4930 steps. Best checkpoint = 4250 (eval_loss 1.0638); epoch-2 lowered distill-loss but did not improve HumanEval (ckpt-2500 and ckpt-4250 both score 0.311), so a 3rd epoch was judged unnecessary.
- Hardware: single GCP L4.
Files
- GGUF quants for local inference (llama.cpp):
vibethinker-final-Q4_K_M.gguf(1.9 GB, recommended) and3.1 GB, near-lossless).vibethinker-final-Q8_0.gguf( adapter/โ the LoRA adapter (resumable / mergeable onto the base withpeft).
The full fp16 merged Transformers model (and an f16 GGUF) can be produced from the adapter + base, or requested โ omitted here for size. To rebuild: merge
adapter/ontozkxxxx/VibeThinker-3B-hereticwithpeft.
Intended use & limitations
- Intended: agentic coding assistants that drive a tool-call loop (shell/edit/test), small enough to run locally.
- Not a frontier coder: 3B; absolute HumanEval is modest. Use for agent behavior + on-device cost, not SOTA accuracy.
- โ ๏ธ Safety: the base is abliterated ("heretic") and training filtered refusals, so this model has reduced safety guardrails and will attempt requests a safety-aligned model would decline. Do not deploy in user-facing settings without your own guardrails. Authorized/research/local use is the intended context.
Where it fits
The value here is agentic behavior + small size + no guardrails, not raw coding accuracy. Good fits:
- On-device / offline coding agent โ Q4_K_M is ~1.8 GB (laptop / 8 GB GPU). In a tool-loop with execution feedback (run tests, read errors, retry), the format-following matters more than one-shot pass@1 because the loop self-corrects. This is its strongest practical niche.
- Authorized security / red-team research โ no refusals; won't decline edge tasks a safety-aligned model blocks (pentest tooling, CTF, adversarial test generation) in a controlled context.
- Synthetic agent-trace generation โ small, fast, consistent
tool_callstructure; cheap to bootstrap more agentic SFT data or stress-test a tool harness. - Research baseline / ablations โ a reproducible demonstration that agentic behavior transfers via distillation SFT; useful for studying tool-use format adherence or base-vs-recipe effects.
- Cheap planner/drafter in a two-tier setup โ the small agent proposes tool calls; a larger model verifies.
Not for: production code correctness (use a dedicated coder), user-facing deployment without your own guardrails, or non-English / non-coding tasks.
License
MIT โ both the base model zkxxxx/VibeThinker-3B-heretic
and the training data Crownelius/Complete-FABLE.5-traces-2M
are MIT-licensed. Note the upstream lineage (Qwen2.5-Coder-3B) carries Qwen's own model terms; verify those
if your use is commercial.
- Downloads last month
- 101
4-bit
8-bit