--- license: mit ---
LORA-Flow LoRAs and fusion gates for our paper

Paper Github

We released all of our checkpoints used in [LoRA-Flow](https://aclanthology.org/2024.acl-long.695.pdf) which has been accepted to ACL 2024 main conference. # Summary > In this repo, we release LoRA modules and the gate of 7B models trained in our paper in HuggingFace format. # Introduction LoRA-Flow provides an efficient way to fuse different LoRA modules which can outperform existing methods significantly. The following picture shows our proposed method, we use layer-wise fusion gates to facilitate dynamic LoRA fusion, which project input hidden states of each layer into fusion weights. For more details, please refer to our paper. ![1.jpg](https://cdn-uploads.huggingface.co/production/uploads/64d99f6cd7e30889c6c477b4/ifiu1FTHilrmUkD4FKkgV.jpeg) # Training Details ## LoRA modules Training For language LoRA modules: we use the data 52K training examples respectively which from [Okapi](https://aclanthology.org/2023.emnlp-demo.28). For math LoRA module: the training data for English math LoRA is constructed by [Metamath](https://arxiv.org/abs/2309.12284), which is comprised of 395K mathematical problems in English. For code LoRA module: we train the English code LoRA with the Magicoder dataset [Magicoder](https://arxiv.org/abs/2312.02120), which consists of 186K code generation problems in English. ## Gate Training We use gates to fuse different LoRA modules. We employ few-shot training and have released our training data for further details please refer to our GitHub. # Result We have released the result for LoRAs and LoRA-Flow | **Method** | | **MGSM (Math)** | | | | **HumanEval (Code)** | | | | |-----------------------|-------|-------------------------------|---------|---------|---------|----------------------------------|---------|---------|---------| | | | **Zh** | **Ru** | **Es** | **Avg.**| **Zh** | **Ru** | **Es** | **Avg.**| | **Base Model** | | 4.4 | 3.2 | 2.4 | 3.3 | 0.0 | 0.0 | 2.4 | 0.8 | | **Single LoRA** | Lang | 5.2 | 3.6 | 3.6 | 4.1 | 12.2 | 14.0 | 10.4 | 12.2 | | | Task | 26.8 | 32.8 | 41.2 | 33.6 | 18.3 | 23.2 | 21.9 | 21.1 | | **LoRA Fusion** | Avg | 12.8 | 10.4 | 18.4 | 13.9 | 17.1 | 17.7 | 18.3 | 17.7 | | | LoRA-Hub | 20.8 | 28.4 | 36.8 | 28.7 | 19.5 | 21.3 | 20.1 | 20.3 | | | LoRA-Flow | **33.2** | **37.6**| **42.0**| **37.6**| **20.7** | **23.8**| **23.2**| **22.6**| # Citation if you find our repo is helpful, please cite the following ```bibtex @inproceedings{wang-etal-2024-lora-flow, title = "LoRA-Flow: Dynamic LoRA Fusion for Large Language Models in Generative Tasks", author = "Wang, Hanqing and Ping, Bowen and Wang, Shuo and Han, Xu and Chen, Yun and Liu, Zhiyuan and Sun, Maosong", editor = "Ku, Lun-Wei and Martins, Andre and Srikumar, Vivek", booktitle = "Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)", month = aug, year = "2024", address = "Bangkok, Thailand", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2024.acl-long.695", doi = "10.18653/v1/2024.acl-long.695", pages = "12871--12882", abstract = "LoRA employs lightweight modules to customize large language models (LLMs) for each downstream task or domain, where different learned additional modules represent diverse skills. Combining existing LoRAs to address new tasks can enhance the reusability of learned LoRAs, particularly beneficial for tasks with limited annotated data. Most prior works on LoRA combination primarily rely on task-level weights for each involved LoRA, making different examples and tokens share the same LoRA weights. However, in generative tasks, different tokens may necessitate diverse skills to manage. Taking the Chinese math task as an example, understanding the problem description may depend more on the Chinese LoRA, while the calculation part may rely more on the math LoRA. To this end, we propose LoRA-Flow, which utilizes dynamic weights to adjust the impact of different LoRAs. The weights at each step are determined by a fusion gate with extremely few parameters, which can be learned with only 200 training examples. Experiments across six generative tasks demonstrate that our method consistently outperforms baselines with task-level fusion weights. This underscores the necessity of introducing dynamic fusion weights for LoRA combination.", } ```