Sensitivity Inflation from Cross-Record Precision Routing in Private Quantized Fine-Tuning
Organizations: Peking University · Beihang University
Abstract
Private fine-tuning of large language models increasingly pairs DP-SGD with low-rank adapters on frozen, quantized backbones, and every such stack inherits one unstated premise: frozen layers keep each record's clipped gradient a function of that record alone. We show that LLM.int8 breaks this premise. It routes outlier activation columns to a higher-precision path using a union over the whole batch, so one record decides how every other record's activations are computed, even though the weights are frozen and the quantization scales are per row. We bound the resulting sensitivity inflation, state a record-isolation contract that restores the standard bound, and define record-owned precision dispatch that meets it with the same GEMMs as batched LLM.int8, so isolation needs no extra arithmetic. We then audit the native CUDA stack (bitsandbytes, PEFT, Opacus) against four matched controls. A constructed LoRA-Opacus witness reaches the add/remove bound. On pretrained OPT-125M with natural text, other records alter 20% of record-layer precision splits at batch size 16. An exploratory re-clipping analysis finds 10 of 64 candidate neighbors above the bound once every gradient is clipped; the top pair, revalidated natively, reaches while every control stays within , and forcing one layer's outlier mask removes the excess. A two-million-draw audit of the released adapters yields lower bounds ( at ) below the advertised guarantee (). Resolving an excess this small at the release level would take about 200 times more draws, whereas checking the sensitivity contract directly exposes it in a few native runs, which makes contract checking the practical audit for private quantized training.
Figures & tables
| Rung | Setting | Native result | Controls | Establishes (and does not) |
|---|---|---|---|---|
| Operator (§ 6.1 ) | constructed, one INT8 layer | (replacement) | the CUDA kernels execute the coupling (not: a natural task) | |
| LoRA–Opacus (§ 6.1 ) | constructed, pinned stack | (add/remove) | Proposition 1 ’s worst case through real Opacus (not: a natural task) | |
| Coupling (§ 6.2 ) | OPT-125M, TinyStories, – | 5–20% of pairs coupled | – | routing coupling is routine on natural text (not: sensitivity) |
| Sensitivity (§ 6.3 ) | OPT-125M, 64 candidates, 40 cases | (add/remove) | the separable premise fails natively (not: prevalence) | |
| Mechanism (§ 6.4 ) | forward factorial, forced mask | one column, one layer | – | the union change causes the excess (not: exact independence) |
| Release (§ 6.5 ) | actual releases | vs. | – | no detected guarantee violation (not: a privacy proof) |
| Operator | LoRA–Opacus | ||
|---|---|---|---|
| Execution | |||
| replace | add/remove | replace | |
| Native batched INT8 | |||
| Record-isolated INT8 | 0 | 1.000 | 0 |
| Threshold zero | 0 | 1.000 | 0 |
| BF16 | 0 | 1.000 | 0 |
Privacy-Preserving ML
Privacy-preserving machine learning develops methods to learn, share, and run models while limiting exposure of sensitive data.
See all 438 papers