Powered by VoxNemesis Read

Running Local LLMs in Production

You can run production-quality large language models on your own hardware. No API keys. No rate limits. No data leaving your network. The cost? A one-time GPU investment that pays for itself in 3-6 months compared to cloud API bills.

TL;DR

  • Production-quality LLMs run on your own hardware — no API keys, no rate limits, no data leaving your network.
  • A one-time GPU investment pays for itself in 3–6 months against cloud API bills at real usage.
  • Ollama to start, llama.cpp to tune, vLLM to serve — match the tool to the job, from single server to scaled-out inference.
  • Companion: engine-level detail in Ollama vs llama.cpp vs vLLM vs SGLang.
Ollama
llama.cpp
vLLM
Docker
NVIDIA GPU

What You’ll Learn

Hardware Sizing

GPU VRAM requirements for 7B, 13B, and 70B models with Rand pricing.

Software Stack

Ollama vs llama.cpp vs vLLM — when to use each.

Real Benchmarks

45 tokens/second on an RTX 4090 with cost per 1M tokens in Rand.

Why Run Local LLMs?

Cloud LLM APIs are convenient, but they come with costs that compound at scale:

Factor Cloud APIs Self-Hosted
Cost at scale $0.01-0.06 per 1K tokens Fixed hardware cost
Data privacy Data sent to provider Data stays on your network
Rate limits Per-account quotas Limited only by GPU
Latency Network round-trip Local inference
Customisation Fixed models Fine-tune for your use case

For South African businesses handling sensitive data — legal documents, medical records, financial information — the privacy argument alone justifies self-hosting. POPIA compliance is simpler when data never leaves your infrastructure.

Hardware Requirements

The GPU is the bottleneck. Everything else is secondary.

Model Size GPU VRAM System RAM Storage GPU Options
7B params 6-8 GB 16 GB 50 GB SSD RTX 3060, RTX 4060
13B params 12-16 GB 32 GB 100 GB SSD RTX 3090, RTX 4090
70B params 48+ GB 64 GB 200 GB SSD A6000, multi-GPU

Consumer vs Enterprise GPUs

Consumer GPUs (RTX series) offer the best price-performance for small-to-medium deployments. An RTX 4090 at R35,000 runs 13B parameter models comfortably. Enterprise GPUs (A100, H100) are faster but cost 5-10x more — justified only at scale.

The sweet spot for most South African businesses: an RTX 4090 (24GB VRAM) running a 13B model with FP16 quantization. Total hardware cost: under R50,000. Pays for itself in 3-6 months versus cloud API costs.

Cost-Effective Configurations

  • Starter (7B): RTX 3060 (R5,000 used) + 16GB RAM + 50GB SSD = R15,000 total
  • Standard (13B): RTX 4090 (R35,000) + 32GB RAM + 100GB SSD = R50,000 total
  • Enterprise (70B): 2x A6000 (R200,000) + 64GB RAM + 200GB SSD = R300,000 total

Software Stack

Three main options, each suited to different use cases:

Ollama

The easiest way to run local LLMs. One command to install, one command to run a model. Ollama is Docker for LLMs — it handles model downloading, quantization, and serving with a simple CLI.

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Run a model
ollama run llama3:13b

Best for: development, testing, small-scale production. Not ideal for high-throughput serving.

llama.cpp

The reference implementation for LLM inference. Runs on CPU and GPU, supports every quantization format, and is the most flexible option. The trade-off: more setup, more configuration, more things to break.

Best for: custom deployments, edge devices, CPU-only environments.

vLLM

The production serving engine. PagedAttention for efficient memory management, continuous batching for high throughput, and OpenAI-compatible API. If you need to serve 100+ requests per second, vLLM is the answer.

Best for: production serving, high-throughput workloads, multi-tenant deployments.

Deployment Architecture

Single Server Setup

For most businesses, a single GPU server is enough. The architecture is simple:

┌─────────────┐     ┌──────────────┐
│   Clients    │────▶│   vLLM /     │
│   (API)      │     │   Ollama     │
└─────────────┘     └──────────────┘
                           │
                           ▼
                    ┌──────────────┐
                    │  GPU Server  │
                    │  (NVIDIA)    │
                    └──────────────┘

Load Balancing

Multiple GPU containers behind a load balancer. Round-robin distribution works for uniform workloads. For heterogeneous workloads (some requests need 70B, others need 7B), route by model size.

Scaling Strategies

  • Vertical scaling — Bigger GPU, more VRAM, larger models
  • Horizontal scaling — More GPU servers, load-balanced
  • Model tiering — 7B for simple tasks, 70B for complex reasoning
  • Quantization trade-offs — FP16 for quality, INT4 for throughput

Performance Benchmarks

Benchmarked on an RTX 4090 with a 13B parameter model:

Metric Value
Throughput 45 tokens/second
P50 latency 12ms per token
P99 latency 25ms per token
Concurrent requests 8 (with continuous batching)
Cost per 1M tokens R0.15 (electricity only)

Compare that to cloud APIs at $0.01-0.06 per 1K tokens. At 10 million tokens per month, self-hosting costs R1.50 in electricity versus $100-600 in API fees.

Challenges & Solutions

Model Updates

New model versions drop regularly. Updating without downtime requires a blue-green deployment: spin up the new version, test it, switch traffic, decommission the old version. Docker makes this straightforward.

Hardware Failures

GPUs fail. Hard drives die. The mitigation: keep a cold standby server with the same model loaded. When the primary fails, switch DNS or load balancer config. Recovery time: 5-10 minutes.

Security Hardening

A local LLM server is still a server. Apply standard security practices: firewall rules limiting access, TLS for API traffic, authentication for multi-tenant deployments, and regular security updates.

Conclusion

Running local LLMs in production is no longer experimental. The hardware is affordable, the software is mature, and the cost savings are real. For South African businesses, the combination of POPIA compliance, cost reduction, and performance makes self-hosted LLMs a practical choice.

If you’re evaluating self-hosted AI infrastructure, let’s talk. We help businesses deploy local LLMs that run reliably in production — from hardware selection to deployment to monitoring.

Need Help Deploying Local LLMs?

We design and deploy self-hosted AI infrastructure for South African businesses. Whether you need a single-GPU setup or a multi-node cluster, we can help you run LLMs on your own hardware.

Contact Us
Self-Hosted AI Services
TTS Case Study

Related Reading