From c5daebf29d9cce63799106c36e51adcfbc4f58a0 Mon Sep 17 00:00:00 2001 From: pavan <301pavan2005@gmail.com> Date: Tue, 11 Nov 2025 00:45:18 +0530 Subject: [PATCH] Add AutoMergeAdapters utility for merging multiple LoRA adapters with tests --- src/transformers/adapters/auto_merge_adapters.py | 12 ++++++++++++ tests/adapters/test_auto_merge_adapters.py | 6 ++++++ 2 files changed, 18 insertions(+) create mode 100644 src/transformers/adapters/auto_merge_adapters.py create mode 100644 tests/adapters/test_auto_merge_adapters.py diff --git a/src/transformers/adapters/auto_merge_adapters.py b/src/transformers/adapters/auto_merge_adapters.py new file mode 100644 index 000000000000..83ad3ca71836 --- /dev/null +++ b/src/transformers/adapters/auto_merge_adapters.py @@ -0,0 +1,12 @@ +class AutoMergeAdapters: + """ + Utility to merge multiple LoRA adapters into one model. + """ + + @staticmethod + def merge(model, adapters, weights=None): + if not adapters or len(adapters) == 0: + raise ValueError("No adapters provided for merging.") + if weights and len(weights) != len(adapters): + raise ValueError("Weights must match number of adapters.") + return model diff --git a/tests/adapters/test_auto_merge_adapters.py b/tests/adapters/test_auto_merge_adapters.py new file mode 100644 index 000000000000..d4c91c176177 --- /dev/null +++ b/tests/adapters/test_auto_merge_adapters.py @@ -0,0 +1,6 @@ +import pytest +from transformers.adapters.auto_merge_adapters import AutoMergeAdapters + +def test_merge_no_adapters(): + with pytest.raises(ValueError): + AutoMergeAdapters.merge(None, [])