Yedid Hoshen, Eliahu Horwitz, Jonathan Kahana
We lifted 4 functions out of this paper's own repositories and ran 2 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| eliahuhorwitz/Spectral-DeTuning | canonical | 2 of 4 |
| Function | Status | Where it lives |
|---|---|---|
| IncreaseRankOnPlateau | Ran | eliahuhorwitz/Spectral-DeTuning/spectral_detuning.py pointer only (licence: NOASSERTION) · get_code("bfdada99eaa9611a") |
| calc_loss | Ran | eliahuhorwitz/Spectral-DeTuning/spectral_detuning.py pointer only (licence: NOASSERTION) · get_code("69b972e54e2a148f") |
| merge_lora_weights | Not yet run | eliahuhorwitz/Spectral-DeTuning/spectral_detuning.py pointer only (licence: NOASSERTION) · get_code("110c9bdd42e071fb") |
| recover_layer | Not yet run | eliahuhorwitz/Spectral-DeTuning/spectral_detuning.py pointer only (licence: NOASSERTION) · get_code("56be80e64031c8cf") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
The dominant paradigm in generative modeling consists of two steps: i) pre-training on a large-scale but unsafe dataset, ii) aligning the pre-trained model with human values via fine-tuning. This practice is considered safe, as no current method can recover the unsafe, pre-fine-tuning model weights. In this paper, we demonstrate that this assumption is often false. Concretely, we present Spectral DeTuning, a method that can recover the weights of the pre-fine-tuning model using a few low-rank (LoRA) fine-tuned models. In contrast to previous attacks that attempt to recover pre-finetuning capabilities, our method aims to recover the exact pre-fine-tuning weights. Our approach exploits this new vulnerability against large-scale models such as a personalized Stable Diffusion and an aligned Mistral.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2402.10208")
get_code_for_paper("2402.10208")
have("2402.10208")
Connect an agent — have() is free.