Instructions to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M 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 Null-Byte/PhoneLLM-alpha-1-Q4_K_M 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 Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M # Run inference directly in the terminal: llama cli -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M # Run inference directly in the terminal: llama cli -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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 Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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 Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
Use Docker
docker model run hf.co/Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Null-Byte/PhoneLLM-alpha-1-Q4_K_M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Null-Byte/PhoneLLM-alpha-1-Q4_K_M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
- Ollama
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with Ollama:
ollama run hf.co/Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
- Unsloth Desktop
- Pi
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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": "Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with Docker Model Runner:
docker model run hf.co/Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
- Lemonade
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
Run and chat with the model
lemonade run user.PhoneLLM-alpha-1-Q4_K_M-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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 Null-Byte/PhoneLLM-alpha-1-Q4_K_M:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Null-Byte/PhoneLLM-alpha-1-Q4_K_M with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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 "Null-Byte/PhoneLLM-alpha-1-Q4_K_M: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"
Pipecat PhoneLLM Alpha 1 — Q4_K_M GGUF
| Model | PhoneLLM Alpha 1 (pipecat-ai/phonellm-alpha-1) |
| This repo | Q4_K_M GGUF quantization with imatrix calibration |
| Base model | NVIDIA Nemotron 3 Nano 30B-A3B |
| Architecture | Hybrid Mamba-Transformer mixture-of-experts; 30B total parameters, 3.5B active |
| Quantization | Q4_K_M (mixed precision: q4_k experts/attn-QK, q6_k embeddings/output/attn-V, f16 norms) + imatrix |
| Calibration | C4 English subset (~101k tokens); PPL = 13.77 ± 0.15 |
| File size | 22.83 GB |
| Context length | 262,144 tokens (supports full context; ~2.5GB KV at q8_0) |
| Recommended inference settings | temperature=0, thinking disabled |
| Runtime | llama.cpp b10673+ (CUDA, Vulkan, or CPU) |
| Language | English |
| License | BSD 2-Clause; derivative of an NVIDIA Nemotron Open Model License work — see License |
| Developed by | Daily / the Pipecat team |
Quantization details
This is a Q4_K_M quantization of PhoneLLM Alpha 1 using llama.cpp's imatrix-guided quantization:
- Method:
llama-quantize --imatrix(PPL-calibrated mixed precision) - Calibration data: C4 English subset, 289 samples (~101k word-tokens)
- Perplexity on calibration set: 13.77 ± 0.15
- Tensor mapping (Q4_K_M scheme):
- Routed expert FFN weights → q4_k
- Attention Q/K projections → q4_k
- Embeddings, output head, attention V → q6_k
- Layer norms, router/gate → f16
- Reference: matches the ggml-org reference quantization size (22.4 GB for base model; this finetune is 22.83 GB due to slightly different tensor distributions post-training)
Running with llama.cpp
Requirements
- Minimum VRAM: ~25 GB combined GPU memory (e.g., RTX 4090 + RTX 3080, or single A100/H100)
- RAM: 64 GB+ recommended (for model loading buffer;
--no-mmapallocates full weights to RAM at load time) - llama.cpp version: b10673 or later (required for NemotronH hybrid Mamba architecture support)
Example: dual-GPU server (RTX 4090 + RTX 3080)
llama-server \
-m phonellm-alpha-1-q4_k_m.gguf \
--n-gpu-layers all \
--split-mode layer \
--tensor-split 7,3 \
--main-gpu 0 \
--ctx-size 262144 \
-n 8192 \
--parallel 1 \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--cache-ram 4096 \
--no-context-shift \
--jinja \
--temp 0 \
--threads 10 \
--no-mmap
Parameter notes:
| Flag | Value | Why |
|---|---|---|
--tensor-split 7,3 |
~70/30 split | Proportional to VRAM (24:10); adjust for your GPU ratio |
--main-gpu 0 |
Primary GPU | Fastest card handles KV cache + compute buffers |
--ctx-size 262144 |
Full context | Model supports it; ~2.5GB KV at q8_0 (only ~20 of 52 layers are full-attention) |
--flash-attn on |
Required at long ctx | O(n) memory for attention; mandatory above ~32K context |
--cache-type-k/v q8_0 |
Q8 KV cache | Halves KV size vs f16 with negligible quality loss |
--parallel 1 |
Single slot | All KV dedicated to one conversation (phone agent use case) |
--temp 0 |
Greedy decoding | Required per PhoneLLM training; do not change |
--no-mmap |
Direct load | Avoids file-backed mapping overhead for GPU-resident model |
Single-GPU (24GB+ VRAM)
llama-server \
-m phonellm-alpha-1-q4_k_m.gguf \
--n-gpu-layers all \
--ctx-size 131072 \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--jinja \
--temp 0 \
--no-mmap
CPU + GPU hybrid (limited VRAM)
For setups where the model doesn't fully fit in VRAM, offload routed experts to system RAM:
llama-server \
-m phonellm-alpha-1-q4_k_m.gguf \
--n-gpu-layers all \
--cpu-moe \
--ctx-size 32768 \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--jinja \
--temp 0
This keeps attention + shared experts on GPU and streams active routed experts over PCIe from RAM. Requires fast DDR4/DDR5 (64GB+). See the llama.cpp MoE offload guide for tuning.
About PhoneLLM Alpha 1
The Pipecat team is pleased to announce the release of PhoneLLM Alpha 1, an open-weights model for voice agent use cases.
This release is the result of our ongoing work training small, open-weights LLMs for low-latency and multi-turn agentic workloads.
When paired with transcription and text-to-speech models through a framework like Pipecat, PhoneLLM can handle incoming calls for financial services, healthcare, retail, and hospitality customer service, and perform common outbound calling agent tasks.
PhoneLLM runs at a fraction of the cost and latency of larger, general-purpose models, while delivering comparable performance for specific use cases. For example, PhoneLLM performs on par with GPT 5.6 Terra, but 94% cheaper and with 1,300ms faster P95 time-to-first-token.
PhoneLLM is an open model, so you can run it on your own infrastructure. The model is released under the BSD license, with no commercial restrictions.
Model specs
PhoneLLM Alpha 1 is a full-parameter fine-tune of NVIDIA's Nemotron 3 Nano 30B-A3B model, trained using the NVIDIA NeMo framework.
Like Nemotron Nano, PhoneLLM is a mixture-of-experts (MoE) model, with 3.5B active parameters, allowing for high-speed inference at low cost.
Important: set temperature to 0 and disable thinking. These two settings align with how the model was trained.
License
PhoneLLM Alpha 1 is released under the BSD 2-Clause License.
PhoneLLM is a derivative work of NVIDIA Nemotron 3 Nano 30B-A3B, which is licensed under the NVIDIA Nemotron Open Model License. Under Section 3 (Redistribution) of that license, if you redistribute this model or your own derivatives of it, you must (a) include a copy of the NVIDIA Nemotron Open Model License, and (b) retain the NVIDIA copyright and attribution notices. Our BSD 2-Clause terms apply to our modifications and to the model as a whole, as Section 3 permits; the NVIDIA license continues to apply to the underlying Nemotron work. "Nemotron" and "NVIDIA" are trademarks of NVIDIA Corporation, used here only to describe the origin of the base model.
- Downloads last month
- 27
4-bit
Model tree for Null-Byte/PhoneLLM-alpha-1-Q4_K_M
Base model
nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16