Skip to main content
LlamaCpp runs large language models locally with efficient inference. LlamaCpp supports multiple open-source models and provides an OpenAI-compatible API server. LlamaCpp supports a wide variety of models in GGUF format. You can find models on Hugging Face, including the default ggml-org/gpt-oss-20b-GGUF used in the examples below. Model recommendations:

Google Gemma Models

  • google/gemma-2b-it-GGUF - Lightweight 2B parameter model for resource-constrained environments
  • google/gemma-7b-it-GGUF - Balanced 7B model for general tasks
  • ggml-org/gemma-3-1b-it-GGUF - Gemma 3 series, efficient for everyday use

Default Options

  • ggml-org/gpt-oss-20b-GGUF - Default model for general use cases
  • Models with different quantizations (Q4_K_M, Q8_0, etc.) for different speed/quality tradeoffs

Set up LlamaCpp

Install LlamaCpp

First, install LlamaCpp following the official installation guide:
install
Or using package managers:
brew install

Download a Model

Download a model in GGUF format following the llama.cpp model guide. For the examples below, we use ggml-org/gpt-oss-20b-GGUF.

Start the Server

Start the LlamaCpp server with your model:
start server
This starts the server at http://127.0.0.1:8080 with OpenAI-compatible endpoints.

Example

After starting the LlamaCpp server, use the LlamaCpp model class to access it. It uses the OpenAI client, so install the openai package:

Configuration

The LlamaCpp model supports customizing the server URL and model ID:
View more examples here.

Params

LlamaCpp is a subclass of the OpenAILike class and has access to the same params.

Server Configuration

The LlamaCpp server supports many configuration options:

Common Server Options

  • --ctx-size: Context size (0 loads the size from the model)
  • --batch-size, -b: Batch size for prompt processing
  • --ubatch-size, -ub: Physical batch size for prompt processing
  • --threads, -t: Number of threads to use
  • --host: IP address to listen on (default: 127.0.0.1)
  • --port: Port to listen on (default: 8080)

Model Options

  • --model, -m: Model file path
  • --hf-repo: Hugging Face model repository
  • --jinja: Use Jinja templating for chat formatting
For a complete list of server options, run llama-server --help.

Performance Optimization

Hardware Acceleration

LlamaCpp supports various acceleration backends:
gpu acceleration

Model Quantization

Use quantized models for better performance:
  • Q4_K_M: Balanced size and quality
  • Q8_0: Higher quality, larger size
  • Q2_K: Smallest size, lower quality

Troubleshooting

Server Connection Issues

Ensure the LlamaCpp server is running and accessible:
check server

Model Loading Problems

  • Verify the model file exists and is in GGUF format
  • Check available memory for large models
  • Ensure the model is compatible with your LlamaCpp version

Performance Issues

  • Adjust batch sizes (-b, -ub) based on your hardware
  • Use GPU acceleration if available
  • Consider using quantized models for faster inference