# Norm-bounded Low-Rank Adaptation (ViT fine-tuning)

## code implementation
The description of NB-LoRA implementation can be found in llm/README.md and llm/tutorial.ipynb. The main difference is that rather than directly specifiying the norm bound $\delta$, here we provide the norm bound ratio $\gamma$. In other words, the bound $\delta$ will be initialized as 
$$ \delta=\gamma \times \|W_p\|_{S_p}.$$
We store the nuclear, Frobenius and spectral norms of each targe module of ViT-B16 in *./norm_bound.pickle*. Or the coe will re-compute it after removing *norm_bound.pickle*.

## Quickstart
```
sh install.sh
```

## run script
```
sh nblora.sh
```

