
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.
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.ai/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.
Related Reading
- Self-Hosted AI Services — Run AI models on your own infrastructure
- Kokoro TTS Case Study — Self-hosted TTS in production
- AI Development Services — Custom AI solutions