PRISM: Gauge-Invariant Tangent-Space Differentially Private LoRA
SAI replication review · Referee report
Summary
PRISM identifies a fundamental mismatch between DP-SGD's parameterization dependence and LoRA's non-identifiable factorization: since admits infinitely many equivalent representatives, applying DP-SGD to the factors makes both the clipping threshold and the induced intrinsic noise depend on an arbitrary gauge. The paper works this out carefully, decomposing the failure into gauge-dependent clipping (Issue I), bilinear and gauge-amplified intrinsic noise (Issue II), and adaptive-preconditioning noise amplification (Issue III). PRISM's response is conceptually clean: project per-example gradients onto the tangent space of the rank- manifold at the current , clip with a global intrinsic Frobenius norm across all LoRA modules, inject isotropic Gaussian noise in the tangent space using an efficient sampler, retract via truncated SVD, and use DP-aware floors to bound preconditioner gain. The main theoretical results — gauge invariance of the perturbation distribution, closed-form intrinsic noise energy , standard subsampled Gaussian accounting, a spectral bound on adaptive noise amplification — follow cleanly from this design. Empirically the paper reports DP wins on GLUE8 + Math-10K at , and demonstrates that the story scales to Gemma-2-9B / Gemma-3-12B-pt and to LoRA ranks .
The conceptual move is genuinely useful: intrinsic mechanisms are the right abstraction for DP on quotient manifolds. However, the empirical evidence is more brittle than the write-up suggests. Reported gains rest on shared hyperparameters and a single seed, with no reported variance; execution of the released repository confirms that only the PRISM optimizer is implemented — none of the five baselines, no factor-space DP-SGD arm — so the diagnostic figures could not be regenerated end-to-end and the "PRISM has the best DP average" ranking is untestable from what was shipped. The one PRISM cell that did complete (, 12-task mean) lands close to the paper (0.705 vs. 0.690), which supports the PRISM-side numbers but not the comparative claim on which the paper's headline rests.
Strengths
- Conceptual contribution. Framing factor-space DP-LoRA as a gauge-dependence problem on the rank- manifold is a genuinely useful shift in perspective; Corollary 2.3 crisply captures the worst case, and Issues I–III organize what breaks.
- Clean intrinsic construction. Tangent-space projection with a global intrinsic clip and isotropic Gaussian noise gives a closed-form effective noise energy that is manifestly gauge invariant, with retraction shown first-order exact (Prop. 3.2).
- Efficient sampler. The horizontal-lift construction reduces Gaussian generation from to per module, keeping PRISM at LoRA-scale FLOPs and — as the reproduced PRISM run also confirms — at essentially unchanged peak memory.
- DP-aware adaptive rule. Explicit floors on the rank-space preconditioner, combined with the tight spectral bound in Theorem 3.5, address a real practical failure mode (naive Adam absorbing DP noise into its second moment).
- Empirical breadth. Two multi-task suites, three Gemma backbones, three LoRA ranks, and ~20 diagnostic figures probing each of the three motivating issues.
- Thorough theory appendix. Quotient-geometry framing, tangent characterization, gauge-invariance proofs, isotropy of projected Gaussians, and PRV-based DP accounting are all laid out in detail.
- PRISM-side numbers are directionally consistent when they can be checked. In the one cell that fully reran, the reproduced 12-task average (0.705) sits within the paper's own tolerance band around 0.690, and the reproduced PRISM step time (21.08 s) is in the same territory as Table 5's 18.64 s.
Weaknesses
- Motivating "unbounded amplification" is a worst-case limit. Corollary 2.3 requires the pathological gauge or ; the paper's own Figure 3 sweeps across only ~3.6% of its range from natural optimizer drift, over which amplification is a bounded ~1.5–2×. The Section-2 prose reads as if the unbounded regime describes ordinary optimization; a calibrated statement would fit the evidence better.
- Adaptive-preconditioning motivation is imprecise. The identity "" tacitly assumes a full-matrix preconditioner. Adam uses a diagonal second moment, and under the isotropic DP noise of the paper's own Gaussian mechanism the alleged reshaping vanishes trivially. The DP-aware floors that Section 3.3 proposes remain sound, but the motivating argument conflates two distinct regimes.
- No ablation. PRISM bundles three fixes for three issues, but nothing decomposes their contributions. A table separating intrinsic clipping, isotropic tangent noise, and DP-aware floors would let the reader attribute the DP gain to a mechanism rather than to the composite.
- Non-DP PRISM underperforms every alternative except FFA. PRISM sits at 0.737 non-DP vs. LoRA-RITE's 0.782, a ~4.5-point gap dismissed in one sentence. Since the intrinsic geometry is present in both regimes, the utility cost of the retraction / adaptive rule / tangent construction deserves discussion.
- Runtime doubling under-discussed. Table 5 reports a ~2× step-time cost, which is nontrivial for LoRA-scale training. Only a single sentence addresses it, and the main-text limitations section leaves it implicit; the reproduced 21.08 s / step corroborates the order-of-magnitude cost, but the LoRA+/AdamW baseline denominators of Table 5 cannot themselves be regenerated (see below).
- Retraction is nonlinear post-processing. Prop. 3.2's first-order exactness is what the paper needs for DP additivity, but for practical step sizes the residual couples PRISM noise into a nonlinear correction on that is not controlled by the intrinsic clip. When this matters is not discussed.
- Rank sensitivity is non-monotone at . PRISM's total Avg is 0.684 → 0.690 → 0.682 across ; the dip is directly predicted by Theorem 3.1's noise scaling, but the paper does not interpret it.
- Terminology drift in diagnostics. Figures 1–4, 14–20 label the comparator as "Baseline," while the prose alternates between "factor-space DP," "factor-space DP-AdamW," and "DP-AdamW." Without a single consistent label a reader cannot verify that all figures concern the same method.
- Undefined "aggressiveness" axis. Figures 16 and 19 use "preconditioner aggressiveness" as an x-axis without a formal definition, yet the Issue-III interpretation depends on this proxy tracking actual update-noise amplification, and the paper uses a different proxy for Adam-like diagonals than for low-rank preconditioners.
- Post-processing immunity depends on a boundary condition that is never stated. Post-processing DP requires that the moments be updated only from the sanitized . Algorithm 1 implies this, but a reimplementer could easily accumulate over raw per-example gradients and silently violate DP.
- Local math / notation issues. The rank-space noise moments carry a prefactor on the -side but not on the -side, without a main-text justification; the Sylvester optimality condition in Prop. A.11 elides the differentiation step so the RHS sign cannot be checked; the bilinear noise "scales as " describes but is stated in -language despite Definition 2.1 defining as a square-root quantity; Figure 3's linear fit to a full-order measurement using a first-order predictor implies the bilinear term is empirically negligible in that regime, but this is never stated. The -dim sampler landing on an -dim subspace also deserves a one-sentence note.
- "Amplification can even decrease" (Figure 20) is stronger than the theory. Theorem 3.5 gives a saturating bound; a directional "decreases" claim needs a scatter that actually trends downward, not one that merely stays flat while the baseline rises.
Reproducibility & code
Executed replication of github.com/osu-srml/PRISM-DP-LoRA distinguishes what reproduces, what is available-but-incomplete, and what is unrunnable from what was shipped.
- Headline aggregates (partial). Of 17 planned jobs the campaign completed 2, both the PRISM arm at on Gemma-3-4B-pt. Recomputed 12-task mean is 0.705, within the paper's own ~0.05 tolerance of 0.690, so the PRISM-side headline of Table 2 is directionally supported. The arm never finished (three retries; both eps=3 output directories empty), and the "best average" ranking cannot be checked in either budget because no baseline optimizer exists in the codebase.
- Baseline optimizers are absent.
src/prism_cli/trainers.py:64hard-codesself.method='prism'andtrain_eval.py's parser has no--methodflag, so FFA, LoRA-RITE, LoRA+, LAMB and a factor-space DP-AdamW baseline are not selectable and are not implemented anywhere insrc/prism_cli/optim/.LLM-Adapters/finetune.py'slora_riteoptimizer additionally imports a module absent from the tree. Every baseline number the paper reports is therefore its own printed value; the "best DP average across 12 tasks" claim (Tables 2, 3, 4) is untestable from the release.README.mddocumentspython train_eval.py --dataset math10k --method adamas a working baseline command; that command fails on the missing flag and, once patched, silently reruns PRISM. - Diagnostic figures (unrunnable). Figures 1–4 and 12–20, plus the Appendix C.1–C.3 sweeps, need a factor-space DP baseline, a gauge-rescaled-init driver ( and the / 64-MC grid), a -sweep for , per-step / / preconditioned-noise trackers, and plotting code. None of these are in the repository. The replication agent had to hand-author
analysis/diagnostics.py,analysis/aggregate.py,analysis/profile_step.py, and the--gauge_cmechanism from scratch; even then only 1 of 5 gauge arms started (c=0.25, stopped at step 41 of 300), and not a single figure or panel of Figures 1–4 or 12–20 was produced anywhere. - Runtime / memory profiling (runnable-but-fragile). No
torch.cuda.Event,time.perf_counter, ortorch.cuda.max_memory_allocatedin the training loop, no profiling harness. Using the agent-authored profiler, PRISM measured 21.08 s / step and 20 742 MB peak memory on Math-10K at , ; the PRISM row of Table 5 is thus in the same ballpark as the paper's 18.64 s and 20 964 MB. But the LoRA+ / AdamW comparison rows in Table 5 cannot be produced from the release, so the "roughly doubles step time" ratio is one-sided, and the hardware differs (agent used A100-80GB, paper reports A100-40GB), so peak-memory headroom is not directly comparable. - Single-seed everywhere. Table 7 pins seed 42 for every method and DP budget; no multi-seed orchestration script exists. The Math-10K PRISM branch additionally bypasses the loader RNG generator (
trainers.py:154), risking further nondeterminism at a fixed seed. Table 2's DP-average margins are as small as 0.015, well within seed-to-seed variance typical of DP-LoRA at Gemma-3-4B scale. - Silent cross-contamination risk in evaluation.
LLM-Adapters/evaluate.pynames its generation dump by (model, adapter, dataset) only, dropping , seed, rank, and privacy mode;src/prism_cli/eval_math.pyreads accuracies back from that same path. Two runs differing only in (or seed, or rank) silently overwrite and re-read each other's generations with no error — a defect caught only by code inspection. This is exactly the multi-configuration sweep Tables 2–4 and the appendix require, and a reproducer running the sweep in parallel or in-place could publish cross-contaminated numbers. - Configuration divergence from Eq. (26).
src/prism_cli/trainers.py:49defaultsprism_floor_mode='scalar'while the optim modulesrc/prism_cli/optim/prism.py:253defaults to'geometry', and the paper's Eq. (26) prescribes a per-module, noise-and-geometry-aware floor. The reproduced numbers were produced with the'scalar'floor. - STS-B disagreement. The reproduced PRISM run gave STS-B = 0.828 vs. the paper's 0.718 (a +0.110 gap the verifier could not explain after checking metric convention). This is the main reason the replicated mean (0.705) sits above the paper's (0.690) rather than falling short — worth a closer look before claiming per-task wins.
dp_clip_fracsaturated at 1.0. In both completed PRISM runs, per-example clipping was active at every logged step, whereas the appendix figures (Figs. 8–11) treat clipping fraction as a quantity that varies non-trivially across steps and gauges. The training regime under which the paper's non-saturated diagnostic curves arise is not stated.
None of the above changes my judgment of the theoretical contribution, but it means the empirical portion of the paper — including every diagnostic figure the mechanism story rests on and the comparative claim in every headline table — is currently a black box from a reproducibility standpoint.
Recommended Changes
Essential
- Release the missing baselines. Add implementations of factor-space DP-AdamW (the "Baseline" throughout the diagnostics), FFA, LoRA-RITE, LoRA+, and LAMB — or provide reference forks — so Tables 2, 3, 4 are regenerable from the shipped code. Wire the
--methodCLI argument to route to the correct optimizer, and update the README so its baseline commands actually run. - Release the gauge-sweep and -sweep harnesses. Add the multi-gauge training driver ( and the finer Appendix C.2 grid with 64 Monte-Carlo samples), the -sweep for , the per-step and trackers, and the plotting code so that Figures 1–4 and 12–20 are end-to-end reproducible. This is the infrastructure the entire Issue I–III mechanism story rests on.
- Report per-seed variance. Rerun Table 2 (and ideally Tables 3, 4) with at least three seeds, add standard deviations, and ship a multi-seed orchestration script. Current wins (as small as 0.015 in average) are within one-seed noise for DP-LoRA at this scale.
- Fix the evaluation-path collision. Include , seed, rank, and privacy mode in
LLM-Adapters/evaluate.py's generation-dump naming so multi-configuration sweeps do not silently overwrite one another. - Add an ablation. Report DP utility for at least three variants that turn off one of {intrinsic tangent projection, isotropic tangent noise / retraction, DP-aware floors} to decompose PRISM's gain across mechanisms.
- Reconcile
prism_floor_modewith Eq. (26). Align the trainer default with the optim default and with the paper's prescription, and state which mode produced the reported numbers. - Explain the STS-B disagreement. Confirm the exact metric / split / decoding used for STS-B in Table 2, and either report a reproducer-friendly protocol or a corrected number.
Suggested
- Calibrate the "unbounded amplification" framing. Reword Section 1 / Section 2 to state that factor-space DP-LoRA drifts to a gauge-dependent noise level during training, with the worst case being unbounded, rather than implying the unbounded regime describes ordinary optimization.
- Add a profiling script for Table 5. Include the 10-warmup / 30-measured protocol as a runnable script with
torch.cuda.Eventtiming andtorch.cuda.max_memory_allocated, and briefly discuss the ~2× step-time cost in the main text (not only in the limitations paragraph); the reproduced 21.08 s / step supports the direction of the claim but not the ratio. - Tighten the adaptive-preconditioner argument. Clarify whether "" is about diagonal Adam under anisotropic true-gradient signal or a full-matrix preconditioner; note that under isotropic DP noise alone the reshaping vanishes.
- Address the non-DP utility gap. Explain why PRISM underperforms LoRA-RITE, LoRA+, LAMB, and AdamW without DP (Table 2, Non-DP row), and identify which mechanism (retraction, canonical lift, floors) is responsible.
- Discuss non-monotonicity at . Interpret the dip in Table 4 in terms of Theorem 3.1's noise scaling.
- Unify baseline terminology. Pick one label (e.g., "factor-space DP-AdamW") and use it consistently across Figures 1–4, 14–20 and the accompanying prose; explicitly define "preconditioner aggressiveness" where it first appears on an axis.
- State the moment-input boundary condition. In Section 3.3, add one sentence noting that the moments are updated from the sanitized only, so post-processing immunity applies.
- Verify the rank-space moment prefactors and Sylvester sign. Either explain why the - and -sides in the Eq. (26) context are asymmetric or fix the mismatch; include the differentiation step for Prop. A.11.
- Clarify Figure 3 and the sampler dimension. Note that Figure 3's range reflects natural drift (not a deliberate gauge sweep) and that the near-linear fit implies the bilinear noise is empirically negligible in that regime; add one sentence in Section 3.2 explaining why an -dim sampler produces an isotropic distribution on the -dim tangent space.
- Soften the "amplification can even decrease" claim. Replace with "saturates rather than grows" unless the PRISM points in Figure 20 show a genuinely decreasing trend.
- Discuss the retraction residual. Add one paragraph on when is small enough that Prop. 3.2's correction is negligible under DP noise, and when it might resurface.
- Address
dp_clip_fracsaturation. Report the intrinsic clip threshold and the clipping trajectory that produced Figures 8–11, so a reader can reconcile them with the always-saturated regime observed in the reproduced runs.