Multi-tenant means one product serves many customers (tenants), and each customer wants slightly different behavior.
This is one of the best real-world reasons LoRA (and QLoRA) matter.
Imagine you run a customer-support AI SaaS with 200 companies on it.
Same base “brain.” Different house styles.
If you fully fine-tune a separate big model for every client, costs explode:
That is why the LoRA pattern is so useful:
Same idea as the previous lesson: the big textbook stays shared; each client only gets their own notebook.
Left side = many giant copies. Right side = one brain + many tiny style packs.
How teams usually build the adapters:
So client A’s data teaches adapter A. Client B’s data teaches adapter B. The shared base stays the common language engine.
You do not need heavy formulas. Just count bits per number.
1) Why ~26 GB for a 13B model in 16-bit?
13e9 × 2 bytes ≈ 26e9 bytes ≈ 26 GBThat is weights only. Training needs extra room for gradients/optimizer, so real training memory is higher. This 26 GB figure is the storage-size intuition for one full copy.
2) Why ~7 GB in 4-bit?
13e9 × 0.5 ≈ 6.5 GB → about 7 GB with a little overheadSo 16-bit → 4-bit is roughly a 4× shrink for the frozen base:
26 GB / 4 ≈ 6.5 GB
That is why QLoRA helps training fit on fewer GPUs: the big textbook is packed smaller; you still train only the sticky-note adapter.
3) Why is one LoRA adapter only tens of MB?
From the previous lesson, for one square weight of size d × d, LoRA trains about:
2 × d × r
Example: d = 4096, r = 8 → 65,536 numbers for that one matrix. Real models attach LoRA to several layers/modules, but still far fewer numbers than the full model. In 16-bit, tens of millions of adapter numbers stay in the tens of MB range (the lesson’s ~50 MB example is that ballpark, not an exact universal constant).
4) Full copies vs adapters for 200 clients
| What you store | Rough math | Result |
|---|---|---|
| 200 full 16-bit models | 200 × 26 GB |
5,200 GB ≈ 5.2 TB |
| 200 LoRA adapters | 200 × 50 MB |
10,000 MB ≈ 10 GB |
Same product idea (custom behavior per client). Huge difference in disk and serving cost.
At runtime:
So at serve time you mainly pay for:
not 200 full models.
You are storing sticky notes, not reprinting the whole textbook 200 times.
Systems built for this pattern (for example LoRAX-style serving) exist so you can swap adapters quickly without reloading the full base model every time.
| Approach | What it feels like | Storage / compute story |
|---|---|---|
| Full model per client | One whole brain per customer | Huge storage; separate heavy GPU copy each |
| LoRA adapter per client | Shared brain + sticky notes | Small adapter files swapped on demand |
| One 4-bit base + many adapters | Shared compressed brain + sticky notes | Best everyday fit for multi-tenant SaaS |
Before you ship multi-tenant LoRA, ask:
If routing is wrong, the gaming bot may start sounding like a bank.
For many customers, one shared base model plus many small LoRA adapters beats storing and serving a full fine-tuned model for each tenant.