ML_AI/논문 리뷰

[LoRA Merging] LoRA Soups: Merging LoRAs for Practical Skill Composition Tasks

안정민 2025. 5. 9. 17:28

https://arxiv.org/abs/2410.13025

 

LoRA Soups: Merging LoRAs for Practical Skill Composition Tasks

Low-Rank Adaptation (LoRA) is a popular technique for parameter-efficient fine-tuning of Large Language Models (LLMs). We study how different LoRA modules can be merged to achieve skill composition -- testing the performance of the merged model on a target

arxiv.org


1. Introduction

일반적인 목적의 LLM은 특정 도메인 특화 작업에서 제한된 성능을 보일 수 있음

=> 이 논문에서는 주로 "여러 기술의 통합" 이 필요한 기술 조합 작업에 집중할 것임

 

파인튜닝은 기술적으로 비싸고, 이전의 학습을 까먹는 cataastrophic forgetting이 발생가능하다

=> Model Merging

해당 논문에서는 여러 LoRA의 가중치를 합하는 것까지 다룸

 

컴퓨터 비전의 연구와는 달리 자연어 처리 과제는

=> 어떤 skill 이 문제 해결에 필요한 지를 명확히 식별하기 어렵다

 

자연어 과제에서는 기존 연구들이 대부분 LoRA 병합을 multitask 를 위한 수단으로 사용

=> 독립적인 작업에 대해 각각 LoRA들이 학습되며, 병합된 모델은 원래 작업에 대해 성능을 유지하는지 평가받는다

 

"생물학, 수학, 코드, 독해, 질의응답 등의 특화 도메인에서 학습된 LoRA가 주어진 경우, 이들을 병합해 여러 도메인의 스킬이 필요한 새로운 문제를 효과적으로 해결할 수 있을까?"

=> 모델이 학습되지 않은 데이터 분포에서 테스트되거나 사용

=> 예: 생물학 + 코드 → 새로운 복합 문제 해결

=> 왜냐하면 각 LoRA가 학습된 데이터셋이 실제 적용하려는 타깃 작업과 매우 다르기 때문

 

이 논문이 skill 조합 문제에서 데이터 혼합 방식보다 모델 병합이 더 효과적임을 보인 첫 번째 연구이다

=> Learnable Concatenation (CAT) 이라는 LoRA 병합 기법을 제안한다

=> 간단히 LoRA를 가중 평균 방식으로 병합하는 것

=> but 레이어 단위로 가중치를 학습하고, 이를 자연어 기반 스킬 조합 문제에 적용했다는 점

 

 


2. Related Work

2.1 Merging Method

전통적인 방식은 여러 작업의 "데이터셋"을 혼합하여 모델과 함께 학습하는 joint training 방식

그러나 잘 훈련된 오픈소스 모델이 증가함 => 기존 "모델을 병합"하는 방식이 강력한 모델을 구축하는 현실적인 방법으로 떠오름

즉, 시간과 자원을 절약하면서도 고성능 모델을 얻을 수 있는 전략임

 

가장 단순하고 널리 연구된 merging 방식 => 모델 파라미터를 단순히 평균내는 방식 (model averaging)

현재까지의 방식들은 대부분 병합 가중치를 직접 정해야 함 (비효율적)

ex. task arithmetic, fisher, ties, dare...

그러나 CAT의 경우 자연어 도메인에서 적은 샘플만으로 레이어별로 병합 가중치를 학습함으로써 효율적인 병합이 가능하다

 

2.2 LoRA Merging Method

(1) PEM composition : task arithmetic의 프레임워크를 채택하여 LoRA 병합을 수행한다

...

 

 

 


3. Setting

3.1 Skill composition

**skill : 다운스트림 태스크에 맞게 모델 맞춤화를 하기 위해 필요한 특정 능력을 의미

LLM 평가용 다운스트림 태스크는 해결을 위해 여러 개의 스킬을 숙달해야 함

이는 특정 목적을 위해 설계된 기초 데이터셋을 통해 습득될 수 있다

=> GSM8k 벤치마크에서 높은 점수를 얻으려면 '상식적추론능력' 과 '산술능력' 이 모두 필요함

 

해당 논문에서는 '조합' 이 명확히 보장되고 분리 가능한 다운스트립 작업에 초점을 맞춤

특히 두 가지 스킬이 필요한 작업에 집중할 것임 (binary composition)

스킬 조합이 어려운 이유

=> 단순히 스킬을 습득해야할 뿐만 아니라, 언제 어떤 스킬을 적용해야 하는 지에 대한 적절한 맥락 판단 능력도 갖춰야 함

즉, 적절한 시점에 적절한 스킬을 사용하는 '메타적 제어 능력'이 필요

 

 

[흥미로운 skill composition 소개]

 

(1) Hard math-word problem

example task

** GSM-8k : 초등 수준 수학 문제로 구성된 데이터셋 (산술 reasoning 중점)

*** GSM-Hard : GSM-8k 와 유사하지만 연산 난이도와 복잡성이 높음

 

이전 연구들은 LLM을 GSM-8k에 파인튜닝하면 GSM-Hard 에서의 성능이 보장되지 못 하고 현저히 낮아졌음

유사한 유형의 task 이지만 더 복잡한 산술 연산이 포함되기 때문이다

Gao et al. 의 논문에서는 이 문제를 해결하기 위해 '프로그램 기반 접근법' 을 제안

=> LLM이 문제를 읽고, 중간 추론 과정을 프로그램 형태로 생성한 다음, 실제 계산은 Python 인터프리터에게 맡기는 방식

 

이 경우 모델은 
- 수학적 능력 : 문제를 논리적으로 분석하기 위해 필요한 능력

- 프로그래밍 능력 : 그 추론을 코드로 변환할 수 있는 프로그래밍 능력

이 두 가지 능력을 갖추어야 함

 

따라서 GSM-Hard 에서의 정확도 향상을 위해,

=> MetaMathQA : 복잡한 수학 추론 능력

=> Code-Alpaca : 코드 생성 능력

두 스킬을 조합

 

 

(2) QABot on proprietary manuals

example task

 

채팅 모델 == 대화형 상호작용을 원활하게 만들기 위한 언어모델

== pretrained 모델에 'instruction-tuning 데이터셋'으로 파인튜닝하는 과정을 거친 언어모델

 

범용 챗봇은 유용, 대학이나 기업과 같은 기관은 특정 분야의 질문에 답변할 수 있는 '전문화된 질의응답 모델' 을 원할 수 있음

이를 구축하기 위해 특화된 내용을 포함하는 instruction tuning 데이터셋을 구축할 수 있음

=> 그러나 비용이 아주 정말 매우 많이 들게 됨

=> 모델 병합 model merging은 이 문제 해결을 위한 효율적인 대안이 됨

=> 범용 instruction tuning 데이터셋으로 학습한 LoRA + 도메인 특화 문서로 학습한 LoRA

 

따라서 

-  Alpaca Dataset : instruction tuning 능력 향상을 위한 데이터셋

- a molecular biology university textbook & a manual of the "Dungeons and Dragons" game : 특정 도메인 능력 측정을 위해 이 두 가지 데이터셋 활용

 

이를 통해 범용 능력은 그대로 유지하되,

특화 지식을 별도 LoRA로 추가해서, 두 능력을 조합 (skill composition) 하는 LoRA 병합 방법을 실험함

 

 

(3) Reading comprehension on technical documents

example task

 

매우 길고 수많은 전문 용어를 포함한 문서 (ex. 법률 계약서나 의료보고서)를 읽고 대답 가능한 언어모델

- SQuAD 데이터셋 : '독해 능력' 향상을 위해 해당 데이터셋으로 LoRA 모델 훈련

- open-source biology textbooks : 생물학 분야의 전문 문서

- BioASQ-QA : 바이오 의료 공학 분야의 독해 데이터셋을 통해 모델 테스트를 진행할 것임

 

 

=> 여기까지는 binary composition의 대상에 대한 설명

 

3.2 Merging Methods

=> 여기서부터는 '메타적 제어능력' 에 대한 방법론 제안

 

(1) DATA-MIX

가장 단순한 접근법은 여러 스킬을 포함하는 데이터셋들을 혼합하여 훈련하는 것

즉, 모델 병합이 아니라 데이터셋을 병합

따라서 하나의 LoRA 가중치를 여러 데이터셋을 이어붙인 concatenated data 로 파인튜닝해서 k개의 스킬을 동시 학습

여기서 A, B는 LoRA rank 가 k*r 이다. 즉, 

 

but 이는 비용이 매우 많이 드는 비효율적인 방법임

=> 새로운 스킬을 모델에 추가하고자 할 때마다 새로운 데이터셋을 전체 데이터셋에 포함시켜 다시 혼합하고 재학습을 해야하기 때문

=> 모델 병합이 해결책을 제시

 

스킬마다 개별적으로 모델을 학습시키고, 이후 이를 병합하여 복합적인 작업을 해결한다 (모듈성 확보 및 재학습 불필요)

데이터 혼합 방식과의 공정한 비교를 위해 병합 실험에서도 LoRA rank를 r 이 아닌 k*r로 설정

위 논문에서는 LoRA 병합 기법을 크게 두 가지로 분류

- ① LoRA 병렬 연결(concatenation) : 선형결합의 대상이 전체 파라미터

- ② LoRA의 선형 병합(linear merging) : LoRA 업데이트 차이만 선형결합 대상이 됨

 

 

(2) Concatenation of LoRAs

 

해당 방법은 LoRA 업데이트의 선형 결합으로 구성

-> 각 레이어 𝑙에 대해 첫 번째 LoRA

 

 

 

 

 


1단계 : 입력 x가 주어졌을 때 이 입력이 어떤 전문가에게 더 적합한 지 수치로 계산해야함

여기서 Wrl​ 을 학습가능한 라우터 (router) 파라미터라고 함
이 라우터는 입력 x를 받아서 두 개의 점수

점수를 확률처럼 만들어서 두 LoRA에 각각 얼마나 의존할지 그 값의 합을 1로 만들어 정함

 

즉, MoE는 입력을 보고 "지금은 어떤 LoRA를 몇 % 쓸지"를 자동으로 판단해서 동적으로 병합하는 똑똑한 방법이다

그리고 이는 각 LoRA의 '결과'를 가중합함

 

 

(3) Learning Merging of LoRAs

LoRA 파라미터들의 선형 결합 (A, B 행렬의 선형결합) 으로 구성된다

 

레이어 l에서의 업데이트는 다음과 같음

  • LoRA weight matrix B들끼리 선형 결합
  • LoRA weight matrix A들끼리 선형 결합

이후 두 행렬을 곱해서 LoRA 업데이트를 만듦

그리고 이 방법에서 모든 layer에 대해 동일한 고정 계수 α1 ,α2 를 활용함

 

CAT 방식과 다르게, 추가적인 교차항이 포함된다 => (※ 예: α1B1⋅α2A2⊤ 같은 항이 생김)

3가지 변형이 존재

 

1️⃣ TIES

2️⃣ DARE

3️⃣ LoRA Hub

 


6. Limitations & Future Directions

(1) 하나의 task 처리를 위해 필요한 skill의 수가 2개일 때, 즉 이항조합일 때로 한정됨

더 많은 skill 조합으로 확장하는 것은 2가지 이유로 어려움이 존재

- 명확히 분리 가능한 다수의 skill이 실제로 필요한 설정 자체를 찾는 것이 어려움

- 그러한 설정을 찾는다 하더라도 LoRA 병합이 실제로 효과적인지 확신할 수 없음

 

(2) 3가지 스킬 병합 시 모든 LoRA 병합 기법들이 data-mix보다 성능이 떨어짐

 

=> 따라서 다수의 모델을 병합하는 방식을 개선하는 것이 중요한 향후 연구 방향이다

 

즉, 오직 2개의 스킬 조합까지만 실험되었으며 그 이상으로 확장하는 데에는 스킬 구분의 현실성 및 LoRA 병합 유효성 문제 존재

3가지 스킬 병합 시 datamix가 우위

따라서 2개 초과 스킬 병합이 가능한 효율적 모델 병합 기법 설계를 제안

 


7. Conclusion

"학습 데이터를 구하기 어려울 때, 그 작업을 기초 스킬들로 분해한 뒤, 모델 병합을 통해 해결하는 것이 유망한 접근이다"

해당 논문에서는 이항 skill 조합 문제로 볼 수 있는 여러 실제 사례를 실험으로 보여줌

특히, LoRA concatenation 기반 방법들이 가장 우수한 조합 성능을 보이며,

기존의 data-mix 방식보다 더 나은 성능을 보여줌