콘텐츠로 이동
Data Prep
상세

MoSLoRA: 다중 기하학 공간을 활용한 PEFT

Parameter-Efficient Fine-Tuning of LLMs with Mixture of Space Experts

항목 내용
arXiv 2602.14490
저자 Buze Zhang et al.
발표 2026-02-16
카테고리 cs.LG, cs.AI, cs.CL, cs.NE

1. 문제 정의

기존 PEFT의 한계

LoRA 등 기존 Parameter-Efficient Fine-Tuning 방법들은 유클리드 공간에서만 동작:

[유클리드 공간의 한계]

언어 데이터의 특성:
- 계층 구조: 단어 → 구 → 문장 → 문단  (트리 형태)
- 순환 패턴: 문법 규칙, 반복 구조     (원형 형태)
- 관계 네트워크: 의미적 연관           (그래프 형태)

유클리드 공간:
- 평평한 공간
- 계층/순환 구조 표현에 비효율적
- 차원 낭비 발생

대안적 기하학 공간

공간 특성 적합한 데이터
유클리드 평면, 선형 일반적 데이터
쌍곡 (Hyperbolic) 음의 곡률 계층적/트리 구조
구면 (Spherical) 양의 곡률 순환/주기 패턴

2. Mixture of Space (MoS) 개념

핵심 아이디어

단일 기하학 공간 대신 여러 공간을 동시에 활용:

입력 임베딩
┌────┬────┬────┐
│유클│쌍곡│구면│  ← 여러 기하학 전문가
│리드│공간│공간│
└──┬─┴──┬─┴──┬─┘
   └────┼────┘
   라우터 (가중치 결정)
   가중 결합된 출력

공간별 표현

유클리드 공간:

\[d_E(x, y) = \|x - y\|_2\]

쌍곡 공간 (Poincaré Ball):

\[d_H(x, y) = \text{arcosh}\left(1 + 2\frac{\|x - y\|^2}{(1-\|x\|^2)(1-\|y\|^2)}\right)\]

구면 공간:

\[d_S(x, y) = \arccos(\langle x, y \rangle)\]

3. MoSLoRA 아키텍처

LoRA 확장

기존 LoRA:

\[W' = W + BA\]
  • \(B \in \mathbb{R}^{d \times r}\), \(A \in \mathbb{R}^{r \times d}\)
  • 유클리드 공간에서만 동작

MoSLoRA:

\[W' = W + \sum_{i=1}^{K} g_i(x) \cdot \phi_i(B_i A_i)\]
  • \(K\): 기하학 전문가 수
  • \(g_i(x)\): 입력에 따른 전문가 가중치 (라우터)
  • \(\phi_i\): i번째 공간으로의 사영/변환

이종 기하학 전문가

[Expert 1: 유클리드]
- 일반적인 선형 변환
- 범용적 적용

[Expert 2: 쌍곡]
- 계층 구조 인코딩
- 트리 형태 관계 표현

[Expert 3: 구면]
- 순환/주기 패턴
- 방향성 있는 관계

라우팅 메커니즘

입력 컨텍스트에 따라 적절한 공간 선택:

\[g_i(x) = \frac{\exp(r_i(x) / \tau)}{\sum_j \exp(r_j(x) / \tau)}\]
  • \(r_i(x)\): 전문가 i에 대한 라우팅 점수
  • \(\tau\): temperature (선택의 날카로움)

Lightweight Router:

입력 x → [Linear(d, K)] → Softmax → 가중치 g
         작은 FC 층으로 구현
         → 계산 오버헤드 최소화

4. 곡률 최적화

학습 가능한 곡률

각 전문가의 공간 곡률을 학습:

\[c_i = \text{softplus}(\hat{c}_i)\]
  • \(c_i > 0\): 쌍곡 공간
  • \(c_i < 0\): 구면 공간
  • \(c_i \approx 0\): 유클리드에 근사

학습 안정성

곡률 최적화 시 발생할 수 있는 불안정성:

문제 원인 해결책
수치 불안정 극단적 곡률 곡률 클리핑
느린 수렴 곡률-가중치 상호작용 별도 학습률
지역 최적점 비볼록 공간 Warm-up 스케줄

5. 실험 결과

수학 추론 벤치마크

모델 MATH500 MAWPS GSM8K
Base LLM 28.4% 67.2% 45.1%
LoRA 32.1% 71.8% 51.3%
DoRA 33.5% 73.2% 52.8%
MoSLoRA 37.7% 87.7% 56.4%

향상폭

벤치마크 향상
MATH500 +5.6%
MAWPS +15.9%
GSM8K +5.1%

공간별 기여 분석

어떤 입력에 어떤 공간이 활성화되는지:

[수학 계층 문제] (예: 집합 포함 관계)
- 쌍곡 전문가: ████████░░ 78%
- 유클리드:    ██░░░░░░░░ 15%
- 구면:        █░░░░░░░░░ 7%

[수열/패턴 문제] (예: 주기 수열)
- 구면 전문가: ███████░░░ 65%
- 유클리드:    ███░░░░░░░ 25%
- 쌍곡:        █░░░░░░░░░ 10%

[일반 산술 문제]
- 유클리드:    █████████░ 85%
- 쌍곡:        █░░░░░░░░░ 8%
- 구면:        █░░░░░░░░░ 7%

6. Ablation Study

전문가 수의 영향

전문가 수 MATH500 파라미터 오버헤드
1 (LoRA) 32.1% 1x
2 35.2% 1.8x
3 37.7% 2.6x
4 37.9% 3.4x

결론: 3개 전문가가 효율적

곡률 학습 여부

설정 성능
고정 곡률 34.8%
학습 가능 곡률 37.7%

라우터 복잡도

라우터 성능 오버헤드
고정 가중치 35.1% 0
Linear 37.5% 낮음
2-layer MLP 37.7% 중간
Transformer 37.8% 높음

7. 구현 세부사항

공간 변환 연산

# 쌍곡 공간 (Poincare Ball) 사영
def to_poincare(x, c):
    norm = torch.norm(x, dim=-1, keepdim=True)
    return x * torch.tanh(c * norm) / (c * norm + 1e-8)

# 구면 공간 사영
def to_sphere(x):
    return F.normalize(x, dim=-1)

# MoSLoRA Forward
def moslora_forward(x, experts, router):
    weights = router(x)  # [batch, num_experts]
    outputs = []
    for i, expert in enumerate(experts):
        out = expert(x)  # 각 공간에서 변환
        outputs.append(out * weights[:, i:i+1])
    return sum(outputs)

하이퍼파라미터

파라미터 권장값
Rank (r) 16-32
Num experts 3
Router hidden 64
Curvature init 1.0
Curvature lr 1e-3
LoRA lr 2e-4

8. 참고 자료

  • arXiv 원문
  • 관련 연구: LoRA, Hyperbolic Embeddings, Mixture of Experts
  • 참고 라이브러리: geoopt (기하학 최적화)

정리일: 2026-03-01