ML_AI/논문 리뷰

[LoRA Merging] LoraHub: Efficient Cross-Task Generalization via Dynamic LoRA Composition

안정민 2025. 5. 17. 09:38

https://arxiv.org/abs/2307.13269

 

LoraHub: Efficient Cross-Task Generalization via Dynamic LoRA Composition

Low-rank adaptations (LoRA) are often employed to fine-tune large language models (LLMs) for new tasks. This paper investigates LoRA composability for cross-task generalization and introduces LoraHub, a simple framework devised for the purposive assembly o

arxiv.org

https://github.com/sail-sg/lorahub

 

GitHub - sail-sg/lorahub: [COLM 2024] LoraHub: Efficient Cross-Task Generalization via Dynamic LoRA Composition

[COLM 2024] LoraHub: Efficient Cross-Task Generalization via Dynamic LoRA Composition - sail-sg/lorahub

github.com

 


1. Introduction

 

많은 LLM들이 굉장히 큰 파라미터 사이즈를 가지고 있음

-> finetuning을 할 때 계산 효율성과 메모리 사용량에 관련해서 문제를 꾸준히 제기함

-> 이를 완화하기 위해 LoRA 기술을 활용해 PEFT 진행

 

그러나 LoRA 는 이 모듈을 개별 작업에 각각 특화시키기 위해서 훈련함

이를 통해 개별 작업에 대해 효율성을 촉진하는 연구에 초점을 맞추어 발전해옴

-> 그러나 모듈의 조합 가능성에 대한 연구는 부족

 

Q. 완전히 새로운 작업에 대해 효율적으로 기존의 모듈을 활용해 일반화할 수 있는 LoRA 모듈을 구성하는 것이 가능할까?

 

이 논문에서는 단일 작업 훈련을 넘어서

미지의 작업에 대한 유연한 성능을 위해 LoRA 모듈의 잠재력을 활용해 폭넓은 작업을 하고자 함

이때 인간의 수작업 디자인이나 전문지식 개입에 대한 의존성을 완전히 없애고

shot learning 방식으로 (예시 5개 정도 제공) 인간의 개입 없이 호환 가능한 LoRA 모듈 구성을 자율화하는 것을 목표로 함

이때 이 논문에서는 여러가지 사용 가능한 LoRA를 활용하기 때문에

-> 이 방식을 LoRAHub 이라고 지칭하며

-> 이 학습 방법을 LoRAHub Learning 이라고 명명한다

 

[실험 요약]

LLM : FLAN-T5

벤치마크 : BBH (Big-Bench Hard)

방법론 : few-shot LoRAHub

 

기울기를 사용하지 않는 방식으로 LoRA 모듈의 계수를 획득할 수 있음

미지의 작업에 대해서도 몇 번의 추론만으로 성능을 확보할 수 있는 계산 효율성이 특징이다

CPU만으로도 현실적으로 수행이 가능하며, LLM 추론을 처리할 수 있는 컴퓨팅 능력만 갖추면 된다

 

 


2. Problem Statement

2.1 Large Language Models

해당 논문에서는 LLM 이 Transformer 아키텍처를 기반, 대규모 텍스트 코퍼스에서 사전훈련 되었다고 가정

모델 아키텍처는 encoder-decoder 혹은 decoder 기반이라고 가정

그리고 이 모델 파라미터는 Flan Collection 혹은 PromptSource 와 같은 대규모 instruction-following 데이터셋으로 파인튜닝 되었을 수 있다고 가정한다

 

2.2 Cross-task Generalization

실제 사용자들은 LLM이 이전에 접하지 않은 새로운 작업을 요청하기도 함

=> "교차 작업 일반화 (cross-task generalization)"

 

교차 작업 일반화의 2가지 종류
- zero-shot learning : 새로운 작업에 대해 레이블링된 예제가 전혀 필요 없는 학습

- few-shot learning : 소수의 레이블링된 예제를 요구하는 학습

 

만약 LLM이 훈련된 N개의 서로 다른 업스트림 작업을 T = {T1, ..., TN} 이라고 할 때

해당 논문은 few-shot learning 에 초점을 맞추고, T 범주에 포함되지 않는 예제 Q만을 사용해 모델을 T' 에 적응시키는 것

-> 직관적인 방법은 Q를 기반으로 Mθ의 가중치를 미세 조정하여, 목표 작업 T ′에서 성능이 향상된 업데이트된 모델 Mφ를 생성하는 것

-> 그러나 이 접근 방식은 Q가 적을 때 비효율적이고 시간이 많이 소모되며 불안정하다는 단점이 존재

 

2.3 LoRA Tuning

LoRA는 파라미터 효율적인 미세조정 방법

경량 모듈을 활용해서 LLM을 적응시키는 것을 촉진

전체 가중치를 미세조정할 필요를 없애줌

 

LoRA 조정은 원래 모델의 가중치 고정 + 저차원 분해 행렬을 각 레이어에 어댑터 모듈로 도입

기본 LLM과 비교할 때 훈련 대상 파라미터가 상당히 적어 최소한의 예제로 빠른 적응을 가능하게 한다

=> 제한된 훈련데이터로 새로운 작업을 LLM에 훈련할 때 사용하는 자원 효율적인 기술

 

그러나 이는 단일 작업 내에서 훈련하고 테스트하는 데에 중점을 두고

몇 가지 샷의 교차 작업 일반화로 나아가는 데는 제한적임

 


3. Methodology

해당 섹션에서는 이 논문에서 제안한 방법에 대한 개요 및 LoRA 조정 절차를 자세히 설명

마지막으로 compose 단계와 adapt 단계로 구성된 LoRAHub learning에 대해 소개

 

3.1 Method Overview

overall flowchart

 

upstream 과제에 대해 LoRA 모듈을 훈련시킴

이후 새로운 작업 T'에 대해 그 예제 Q 가 LoRAHub learning 과정을 유도하는 데에 사용됨

학습은 다음 2가지 단계로 구성된다

(1) COMPOSE : 사용 가능한 모든 LoRA 모듈이 {w1, w2, . . . , wN}를 계수로 사용해 단일 통함 모듈 m으로 결합된다

-> 각 w_i는 양수 또는 음수 값을 가질 수 있는 스칼라값

-> 결합은 여러가지 방식으로 수행 가능하다

(2) ADAPT : 결합된 LoRA 모듈 m이 LLM 의 파라미터와 결합되고, 새로운 작업 T'의 몇 샷 예제에 대한 성능을 평가

이후 성능평가를 기반으로 weight를 업데이트하여 m의 성능을 향상시킴

 

이를 k단계 반복하여 최적의 성능을 내는 LoRA 모듈이 LLM에 적용

최종 LLM Mφ = LoRA(Mθ, mˆ) 이 구성된다

 

 

3.2 LoRA tuning on upstream task

 

LoRA는 LLM의 가중치 행렬 업데이트를 d*k를 저랭크 행렬로 분해하여 파라미터 수를 효과적으로 최소화

여기서 랭크 r은 d, k 보다 훨씬 작은 차원을 가진다

이때 A, B의 곱이 LoRA 모듈 m을 정의 -> 학습해야할 파라미터의 개수를 대폭 낮추는 효과를 보여준다

 

** 기본적인 LoRA 정의와 이에 대한 효과를 정리한 파트

 

3.3 Compose : Element-wise composition of LoRA Module

LoRA 모듈을 결합하기 위해 요소별 방법을 구현 -> 매개변수를 통합

여기서 결합되는 모듈들이 구조를 제대로 정렬하기 위해 동일한 랭크를 가져야 함

mi = AiBi가 주어졌을 때, 결합된 LoRA 모듈 m은 다음과 같음

 

주의해야할 점

너무 많은 LoRA를 결합하게 되면 탐색 공간이 기하급수적으로 확장됨

LoRAHub learning을 불안정하게 하여 최적의 성능을 방해할 수도 있음

-> 이를 완화하기 위해 무작위 선택을 사용

-> 후보 공간을 정리해 더 발전된 전처리 알고리즘이 개발될 수 있음

 

 

3.4 Adapt : Weight optimization via gradient-free method

해당 단계에서의 목표 : 보지 못한 작업의 예제에서 모델의 성능을 향상시키기 위해 계수 w를 수정하는 것

일반적으로 gradient descent 방식으로 w를 최적화시킬 수 있으나 (표준적인 역전파), 

이는 LoRA 모듈에 대해 하이퍼 네트워크를 구성해야하며 (다른 네트워크의 가중치를 생성하거나 조정하는 신경망)

즉, 파라미터를 생성하는 함수 자체를 학습해야하며

이는 막대한 GPU 메모리와 시간을 요구한다 => 현실적인 어려움이 존재함

 

w는 비교적 소수의 파라미터로 구성됨 (저랭크행렬로 축소시킴)

따라서 gradient descent 대신 gradient free 방식의 최적화 방법론 선택

=> black-box optimazation 기법을 사용하여 최적의 가중치를 탐색

 

black-box optimazation교차 엔트로피 손실을 기준으로 이루어짐 -> loss 함수는 교차 엔트로피로 구함

목표는 few-shot 예제 집합 Q 에 대해 손실을 최소화하는 최적의 계수 집합 {w1,w2,...,wN} 을 찾아내는 것임

 

나아가 L1 정규화를 통해 가중치의 절댓값 합에 패널티 부과 => 극단적인 계수값을 방지

LoRAHub의 최종 최적화 목표, 알파값은 파라미터

 

gradient free 방식 중 Shiwa 라는 조합 최적화 접근법을 활용함

=> 다양한 최적화 알고리즘을 제공함, 상황에 따라 가장 적절한 알고리즘을 선택해서 사용

 

실험 설정 대부분에서는 CMA-ES를 사용함

확률 기반 최적화 알고리즘으로 다양한 최적화 문제에 대응 가능한 유연성을 가짐

=> 공분산 행렬로 정의되는 탐색 분초를 반복적으로 조정하며, 각 반복에서 평균과 공분산을 업데이트해 최적화를 수행함

=> 이를 통해 가중치의 탐색 공간을 조정하고, 미지의 작업에서 주어진 few-shot 예제들에 대한 성능을 평가하며 최적화

 

 

++ 추가 정보

** blackbox optimization 구체적인 수식이나 내부 구조를 알 수 없고, 오직 입력에 대해 출력만 확인할 수 있는 상황에서 최적의 입력값을 찾는 방법
즉, 함수 f(x) 가 어떻게 생겼는 지 알 수 없으나 특정 x를 넣었을 때 f(x) 값이 얼마인지 측정이 가능할 때


  • LoRA 조합 가중치 w1,...,wN 은 파라미터 수가 작음
  • 역전파로 학습하려면 전체 모델 구조를 열어야 함 → 부담 큼
  • 대신: black-box 방식으로 를 입력 → 손실만 보고 최적화
    즉 입력 == 가중치, 출력 == 손실함수값
→ 내부 그래디언트 없이도 효율적으로 조합 최적화를 수행할 수 있음
** Shiwa Liu et al. (2020)에서 제안한 모듈형 최적화 프레임워크

다양한 black-box 최적화 알고리즘을 통합하고, 주어진 문제 상황에 가장 잘 맞는 알고리즘을 자동으로 선택하는 시스템

즉, Shiwa는 단일 알고리즘이 아니라,
여러 black-box 최적화 기법 중 어떤 걸 쓸지 meta-optimizer가 결정해주는 멀티 최적화 프레임워크이다
**CMA-ES