Course · Training · Workshop
Self-Hosted LLMs
Run small, fast open-source LLMs yourself: plan your memory budget, understand quantization and mixture of experts, work with Ollama and vLLM, fine-tune a model, and measure the result.
This course shows engineering teams how to run large language models on their own hardware, instead of sending every prompt to OpenAI, Anthropic or Google. That is what digital sovereignty looks like in practice – you decide about your data, your availability and your costs. We focus on small, fast open-source models. Many of them run on a single GPU or a modern Mac, and for one specific use case they are often good enough. You learn why memory is usually the bottleneck and not compute. Quantization saves memory. Mixture of experts buys speed, but not a smaller memory footprint. You also learn how to read a model name on Hugging Face. In the exercises we use Ollama and llama.cpp to get started, vLLM for several concurrent users, and Unsloth for your own specialist models. And we cover the step that teams skip most often – writing your own evaluation. It tells you whether the small model really is good enough for your case.
Trainers
What participants say






These customers booked courses in the same topic cluster.More customers →
Content
The course consists of the following topics and can be extended or adapted depending on the audience. The examples focus on open models and open-source tooling that you can run on your own hardware. For in-house courses we pick models, hardware scenarios and use cases that fit the audience.
– Why digital sovereignty matters for LLMs:
- Data protection: documented leaks and retention obligations at public providers
- Legal and geopolitical dependencies, provider jurisdiction
- The financial situation of the large providers and what it means for prices
- Lock-in, deprecated models and availability as an operational risk
- When an external provider is the right choice anyway – Three operating models compared:
- Public: using ChatGPT, Claude or Mistral as a service
- Hosted: AWS Bedrock, Azure AI Foundry, Google Vertex AI – and European or Swiss providers when jurisdiction matters
- Local: your own hardware, full control, full responsibility
- Trade-offs in control, effort, cost and compliance
- Open models from Europe and Switzerland, such as Apertus by ETH, EPFL and CSCS – Memory as the real bottleneck:
- Why memory sets the limit and not FLOPS
- The memory budget: parameters, KV cache and workspace
- Context length and what it does to the memory footprint
- Why memory bandwidth decides how fast a model answers
- Measuring throughput, latency and tokens per second yourself – Quantization:
- What quantization does to the weights
- Methods and levels: Q8, Q4, K-quants, AWQ, GPTQ
- The trade-off between memory saved and quality lost
- Downloading quantized models or quantizing them yourself – Model architecture and model choice:
- Large generalists versus small specialists
- Dense versus mixture of experts: the active parameters set the speed, all parameters together set the memory footprint
- Reading model names on Hugging Face: name, version, size, active parameters, quantization
- Licenses of open models and what they mean for you
- Size classes by available memory: up to 16 GB, 24 to 96 GB, and what only runs in a cluster – Hardware and sizing:
- Consumer GPUs, professional GPUs and Apple Silicon with unified memory
- Rules of thumb: which model needs how much memory
- Sizing for several concurrent users
- Buy or rent, amortization against API cost
- Getting more out of the GPUs you already have, for example with batch jobs overnight – Running llama.cpp and Ollama:
- Loading GGUF models and setting parameters
- Ollama day to day: modelfiles, offloading, GPU layers
- The OpenAI-compatible API as the de-facto standard
- Where it runs out of steam with several users – Production operation with vLLM:
- PagedAttention and efficient KV cache management
- Continuous batching and throughput optimization
- Serving vLLM from the CLI and using it from Python
- Configuring GPU memory utilization, context length and API keys
- How it compares to alternatives such as TGI and SGLang
- Benchmarking and capacity planning – Building applications against your own LLM:
- Pointing OpenAI-compatible clients at your own base URL
- Structured output, tool calling and streaming with open models
- Embeddings and RAG with local models
- Fallback and routing strategies between local and external – Fine-tuning small specialist models:
- When to fine-tune, when to prompt, when to use RAG – and when not to use an LLM at all
- Fine-tuning is not training from scratch: what is realistically feasible
- LoRA and QLoRA as the affordable route
- Fine-tuning with Unsloth, preparing the dataset, and how much GPU it takes
- Shipping adapters and serving them with vLLM – Evaluation and quality assurance:
- Why public benchmarks say little about your use case
- Building your own test harness with representative prompts
- Nondeterminism: repeated runs, scoring and regression tests
- Comparing models, versions and quantization levels objectively
- When your own evaluation is worth the effort and when it is not – Outlook on operations in the team and the company:
- vLLM on Kubernetes, GPU sharing and time-slicing
- Several models and teams on shared hardware
- Monitoring GPU utilization, latency and cost
- Access, auditability and the step to your own LLM platform – Best practices and outlook:
- “Dare to go small” – the smallest solution that covers the use case
- Reference architectures for running LLMs yourself
- Judging where open models and hardware are heading
Participants run their own models on real hardware, compare quantization levels and architectures with their own measurements, and leave with a solid decision on which AI workloads to self-host from now on.
The actual course content may differ from the above depending on the trainer, delivery, duration and the composition of participants.
Request this course in-house
Request a public date
No suitable public date? Register without obligation — once there is enough interest we schedule a new public date and let you know first.
More about self-hosted LLMs
If you use an LLM through a public API, you hand over three things: your own data, control over availability and control over price. Digital sovereignty means keeping those three decisions yourself. And this is not a theoretical risk. There are documented cases: private chat histories that leaked, logs a court ordered kept even though users had deleted them long ago, and access that was cut off overnight for political reasons. Then there is the money side. The large providers still operate at a loss. At some point that money has to come back, through higher prices, through advertising inside the chat, or through a different business model. At the same time, competition pushes prices down, because models are turning into a commodity. Where prices end up, nobody knows. And that is the point: it is not in your hands. Meanwhile open models are closing the gap to the frontier models faster and faster, in some cases within a few months. The hardware is coming their way too: consumer GPUs, workstations and Macs with unified memory have long been good enough for useful models. One detail in the investment numbers is telling. Amazon, Microsoft, Alphabet and Meta each put tens of billions a year into datacenters and GPUs, while Apple spends a fraction of that. That fits a different bet: the others pay for the training, Apple sells the device the result runs on. Both trends together move the pendulum between centralization and decentralization back toward your own infrastructure, as it swung before between mainframe and PC, server farm and laptop, cloud and smartphone. This is not about one side winning. It is about being able to decide, per use case, which side it runs on.Further resources:
History
Running LLMs locally became practical in 2023 with llama.cpp, a lean C/C++ implementation that ran quantized models without a datacenter GPU – in the GGML format back then, later in GGUF. Ollama put a simple interface and an OpenAI-compatible API on top. At first it was mostly a wrapper around llama.cpp, today it ships its own engine for newer models.
vLLM came out of UC Berkeley in 2023 and aims at several concurrent users. Its PagedAttention manages the KV cache in pages, much like an operating system manages virtual memory, instead of reserving an oversized block up front for every answer. That raised throughput per GPU considerably. At the same time, LoRA and projects such as Unsloth cut the cost of fine-tuning far enough that small teams can afford their own specialist models too.
