image.png

image.png

요 약

  1. 기존에는 새로운 작업마다 별도의 LoRA adapter를 처음부터 훈련해야 했는데, 이는 시간과 비용이 많이 들고 하이퍼파라미터 선택에 민감한 문제가 있었다.

  2. T2L(Text-to-LoRA)은 자연어로 된 작업 설명만 주면 hypernetwork가 단 한 번의 forward pass로 해당 작업에 적합한 LoRA의 A, B 행렬을 즉석에서 생성해주는 시스템이다.

  3. 기존 LoRA를 모방하는 reconstruction training보다는 직접 downstream task 성능을 최적화하는 supervised fine-tuning(SFT)이 훨씬 효과적임을 실험으로 증명했다.

  4. 9개 사전 훈련된 LoRA에서 학습한 후 테스트에서 기존 task-specific LoRA와 비슷한 성능을 보였으며, 완전히 처음 보는 작업에 대해서도 zero-shot으로 일반화할 수 있었다.

  5. 수백 개의 LoRA를 하나의 hypernetwork로 압축할 수 있고, 새로운 작업에 대해 데이터 수집이나 훈련 과정 없이 즉시 adaptation이 가능해 엔지니어링 오버헤드를 크게 줄였다.

Abstract 및 주요 개념

이 논문은 기존 foundation model들이 특정 작업에 맞게 적응하는 과정에서 발생하는 문제점들을 해결하려고 한다. 보통 새로운 태스크를 위해서는 데이터셋을 구성하고 fine-tuning을 반복해야 하는데, 이 과정이 비용도 많이 들고 시간도 오래 걸린다. 특히 하이퍼파라미터 선택에 민감하다는 문제가 있다.

기존에는 새 작업마다 별도의 LoRA를 처음부터 훈련해야 했다면, T2L은 자연어 설명만 주면 기존에 학습된 지식을 바탕으로 해당 작업에 맞는 LoRA를 즉석에서 생성한다. (마치 프로그래밍에서 라이브러리 함수를 호출하는 것과 유사 - 함수 이름(작업 설명) 입력 → 기능(LoRA) 실행)

제안된 Text-to-LoRA(T2L)는 hypernetwork 기반의 모델로, 자연어로 된 작업 설명만 주면 즉석에서 LoRA adapter를 생성해준다. 한 번의 forward pass로 LoRA를 만들어내는 방식이다. 9개의 사전 훈련된 LoRA adapter에서 학습한 후, 해당 테스트 세트에서 기존 task-specific adapter와 비슷한 성능을 보였다. 더 나아가 수백 개의 LoRA를 압축할 수 있고, 완전히 처음 보는 작업에 대해서도 zero-shot으로 일반화할 수 있다.

Hypernetwork는 다른 신경망의 파라미터를 생성하는 meta 네트워크다. (여기서는 작업 설명을 입력받아 해당 작업에 적합한 LoRA의 A, B 행렬들을 직접 출력한다.) 기존 방식이 gradient descent로 수천 번의 iteration을 통해 LoRA 파라미터를 찾는다면, T2L은 단 한 번의 forward pass로 이를 해결한다.

Introduction

생물학적 시스템은 제한된 감각 단서만으로도 빠르게 적응한다. 인간의 시각 시스템이 중심와와 막대세포의 신경조절을 통해 빛 민감도와 초점을 조절하는 것처럼 말이다. 하지만 최근 LLM들은 다양한 능력과 지식을 보여주면서도 task-specific 기능을 추가할 때는 여전히 경직되어 있다.

이런 경우 보통 LoRA 같은 parameter-efficient fine-tuning 기법을 사용해서 모델의 일부를 다시 훈련시킨다. 문제는 각 downstream task마다 별도의 LoRA adapter를 최적화해야 하고, task-specific 데이터셋과 하이퍼파라미터 설정이 필요하다는 점이다. 이런 fine-tuning 방식은 작업 간 지식 전이 가능성을 제한하고 엔지니어링 오버헤드를 증가시킨다.

예를 들어 감정 분석, 요약, QA 작업을 위해 3개의 LoRA가 필요하다면, 각각을 독립적으로 훈련해야 한다. 이때 감정 분석과 요약이 유사한 언어 이해 능력을 요구함에도 불구하고 이런 공통점을 활용할 수 없다. T2L은 이런 공통 패턴을 학습해서 새로운 작업에 적용할 수 있다.

최근 연구에서는 구조적 제약을 가하면 LoRA adapter가 학습한 low-rank matrix들을 더 압축할 수 있다는 것이 관찰되었다. 기존 adapter의 lossy version을 훈련시키면서도 downstream 성능을 유지할 수 있고, 추론 시점에 여러 LoRA를 새로운 작업을 위해 결합할 수도 있다. 이런 접근법들의 핵심에는 기존 LoRA들의 더 나은 압축과 온라인 구성을 위한 분해나 차원 축소 기법들이 명시적으로 사용된다.

  1. Joint Diagonalization을 통한 압축 (Brüel Gabrielsson et al., 2024) 여러 LoRA adapter들을 공통된 basis로 압축하는 방법이다. 각 LoRA의 $\Delta W_i = B_i A_i$를 $\Delta W_i = U \Sigma_i V^T$ 형태로 분해한다. 여기서 $U, V$는 모든 LoRA가 공유하는 basis이고, $\Sigma_i$는 각 LoRA별 scaling matrix다. 이 방식으로 1000개 이상의 LoRA를 압축해도 80% 이상의 성능을 유지하면서 throughput을 1.6배 향상시킬 수 있다.

  2. Lossy Compression (Brüel Gabrielsson et al., 2024) "Lossy version"이란 원본 LoRA의 모든 정보를 완벽히 보존하지는 않지만, 실제 성능에는 큰 영향을 주지 않는 압축된 버전을 의미한다. 실제로 reconstruction error가 60% 정도 발생해도 실제 downstream task 성능은 거의 동일하거나 오히려 향상되는 경우가 많았다. (압축 과정에서 노이즈가 제거되고 일반화 성능이 개선되기 때문이다.)

  3. LoRA 조합 및 재사용 (Ostapenko et al., 2024) 서로 다른 작업을 위해 훈련된 LoRA들을 새로운 작업에 조합하여 사용하는 방법이다. Arrow routing 같은 기법을 사용해서 입력에 따라 동적으로 가장 관련성 높은 LoRA들을 선택하고 가중평균한다: $A^* = \sum_{i=1}^{|L|} w_i A_i$, $B^* = \sum_{i=1}^{|L|} w_i B_i$. 이를 통해 전혀 새로운 작업도 기존 LoRA들의 조합만으로 해결할 수 있다.

→ 이런 기법들은 수천 개의 LoRA를 실시간으로 서빙해야 하는 상황에서 유용함. (customized)

논문에서는 서로 다른 LoRA adapter들이 동일한 기본 적응 메커니즘을 공유하며 명시적인 구조나 결합 레시피 없이도 동시에 최적화될 수 있다고 가정했다. T2L은 task-specific LoRA들을 압축하고 추론 시점에 새로운 LoRA adapter를 zero-shot으로 생성하는 hypernetwork다. 자연어로 된 작업 설명을 입력으로 받아서 처음 보는 작업에 대한 zero-shot LoRA 생성을 가능하게 한다.