All glossary terms

Efficiency

LoRA

Small adapter matrices that add fine-tuned behavior on top of shared base weights. Dozens of variants fit in memory where a full fine-tune needs a copy.

A full fine-tune changes every weight in the model, so the result is a second full copy. LoRA freezes the base model and trains two small matrices of a chosen rank that multiply into a correction, so the learned behavior lives in a file thousands of times smaller than the model. At inference, either the adapters are merged into the base weights or the base computes an extra cheap pass per layer.

For serving, the point is multiplexing: one big base model holds many behaviors, and a request names which adapter it wants. The base weights are read once and shared by every variant, so adding a behavior costs megabytes instead of the gigabytes a full fine-tuned copy would need.

The interviewer will want the operational side named. Adapters need routing, selection, and warm-up, since swapping one into a live request path has its own overhead and the cold-start penalty of an unloaded variant. When the behavior change is genuinely large, full fine-tuning is still the right tool; LoRA covers the long tail of variants cheaply and lets you share one serving stack across all of them.

A worked example

One shared 70B base model in 8-bit weights (70 GB) plus rank-16 LoRA adapters that weigh an assumed 60 MB each, for 100 behavior variants of the same model.

  1. Rank 16 on one 4,096 x 4,096 matrix: 4,096 x 16 + 16 x 4,096 = 131,072 parameters, 0.78 percent of the matrix itself.
  2. Whole-model adapter at 60 MB: 100 variants together are 100 x 60 MB = 6 GB.
  3. One base plus 100 adapters: 70 GB + 6 GB = 76 GB, one card with cache headroom, instead of 100 fine-tuned copies at 100 x 70 GB = 7,000 GB.

A 76 GB serving footprint hosts every behavior variant, where full fine-tunes would need 7,000 GB - the variants became nearly free in memory, and the cost moved to routing them.

Where this shows up

Related terms