https://arxiv.org/pdf/2507.07024
1. 논문의 목적 및 핵심 아이디어
배경
- 기존 LLM(대형 언어 모델)들은 모든 데이터를 중앙에서 모아서 한 번에 학습시켜야 하며, 어떤 데이터가 모델에 영향을 미쳤는지 추적하거나, 특정 데이터의 효과를 제거하는 것이 불가능함.
- 현실적으로 규제나 프라이버시, 라이선스 문제로 인해 데이터 공유가 제한되는 경우가 많음 (예: 의료, 금융, 저작권 문제 등).
FLEXOLMO의 제안
- 서로 데이터를 공유하지 않고 각자 자신만의 데이터로 전문가(Expert) 모듈을 독립적으로 학습할 수 있음.
- 이후에는 각자가 학습한 모듈(Expert)을 합쳐(MoE, Mixture-of-Experts 구조) 하나의 모델로 만들 수 있음.
- 추론 단계에서 각 Expert(및 해당 데이터)를 자유롭게 포함/제외(opt-in/opt-out) 할 수 있음. 예를 들어, "뉴스 데이터 Expert는 뺀 모델로 추론"과 같은 유연한 사용 가능.
- 데이터 제공자는 데이터 자체가 아니라, 데이터로 학습한 모듈(Expert)만 공유함으로써 데이터 노출 없이 협업 가능.
2. 모델 구조 및 학습 방식
MoE (Mixture-of-Experts) 구조
- Transformer의 FFN(feedforward network) 부분을 여러 Expert로 교체하고, 각 Expert는 특정 도메인 데이터(뉴스, 코드, 수학 등)로 독립적으로 학습됨.
- Router 모듈이 입력에 따라 어떤 Expert를 쓸지 확률적으로 선택함.
독립적 학습 (Training without Data Sharing)
- 각 데이터 소유자는 공개(pretrained) 모델(Mpub)을 Anchor로 삼아, 자신의 데이터로만 Expert 모듈(FFN)을 업데이트함.
- 공개 모델의 Attention, FFN 중 하나(Anchor)는 고정(freeze)하고, 자신의 Expert만 업데이트.
Router (라우터) 설계
- 라우터는 입력 벡터에 대해 각 Expert를 선택할 확률을 계산함.
- 각 Expert마다 자체 도메인에 대한 임베딩을 초기화하여 Router Embedding으로 사용, 이후 추가로 자신의 데이터로 파인튜닝.
- 추론 시에는 여러 Expert의 Router Embedding을 그냥 붙여서(Wr concat) 사용함. Expert 추가/제거가 매우 간단함.
Bias Term
- 실제 Router는 pairwise로만 훈련되어 서로 다른 Expert 간 직접 비교 경험이 없음.
- 이를 보정하기 위해, 각 Expert마다 negative bias를 추가하여, 다양한 Expert 간 비교 시 제대로 작동하도록 보정.
Router 추가 파인튜닝(선택)
- 데이터 제공자가 공개 데이터에서 자신의 도메인과 비슷한 데이터(proxy)를 선별해 주면, Router를 좀 더 최적화할 수 있음.
- 본 논문에서는 이 과정 없이도 merging이 가능하지만, proxy 데이터가 있으면 Router 성능이 더 올라감.
3. 실험 구성 및 결과
FLEXMIX 데이터셋
- 공개 데이터(Public Mix)와 7개 도메인별(뉴스, 창작, 코드, 학술, 교육, 수학, Reddit) 데이터로 구성.
- 각 도메인은 실제 폐쇄/반폐쇄/고품질 도메인 데이터로 가정.
벤치마크
- 총 31개 Task(ARC, BoolQ, SQuAD, MMLU, AGIEval, BBH, GSM8K, MATH, MBPP, HUMANEVAL 등)에 대해 평가.
비교 Baseline
- Model Soup(가중치 평균)
- Branch-Train-Merge (BTM, output ensembling)
- BTX (모델 파라미터 복사 + 추가 joint training)
- Prompt-based Routing (질문 도메인 분류 후 해당 Expert로만 추론)
- Unrestricted MoE (데이터 제한 없이 전체 데이터로 joint training)
- 단일 전문가(Individual Expert) 모델
주요 결과
- FLEXOLMO가 모든 Baseline 대비 평균 10% 이상 더 높은 성능 (특히 BTM 대비).
- 각 도메인 Expert는 해당 도메인에서는 강하지만, 타 도메인에는 약함. FLEXOLMO는 이를 보완해 전체적인 성능을 끌어올림.
- Unrestricted MoE(완전히 통합된 데이터로 joint training)과 비교 시 FLOP(연산량) 동일할 때 더 좋은 성능, 데이터 양 동일할 때 약간 낮은 성능.
- FLEXOLMO는 도메인 전문가의 특화 능력을 잃지 않으면서 여러 전문가를 조합하여 시너지 효과 발생.
- Opt-out(특정 Expert 제거) 시, 해당 도메인 성능만 하락하고 다른 도메인은 영향이 거의 없음.
- 데이터 추출 공격 위험성도 실험: 데이터 소유자가 Differential Privacy 등으로 추가 방어 가능.
4. 결론 및 의의
- 실제 데이터 규제가 있는 산업(의료, 금융 등)에서 데이터 제공자는 데이터 자체를 노출하지 않고도 LLM에 기여 및 협업 가능.
- 추론 시, 라이선스/규정에 따라 특정 Expert(=데이터)만 포함/제외하는 등 유연하고 fine-grained한 제어 가능.
- 기존 연합학습/Model merging/Federated Learning 대비, 성능 저하 없이 데이터 프라이버시와 유연성 모두 확보.
- Differential Privacy를 각 Expert에 적용하여 추가적인 데이터 보안도 가능.
- 오픈소스 모델/코드 모두 공개(https://github.com/allenai/FlexOlmo).
5. 핵심 한 줄 요약
FLEXOLMO는 데이터 소유자가 데이터를 공개하지 않고도 독립적으로 전문가(Expert) 모듈을 학습·공유할 수 있고, 추론 시 해당 모듈을 자유롭게 합쳐 사용할 수 있는 새로운 MoE LLM 프레임워크입니다.
FLEXOLMO 논문에서 말하는 "라우터(router)"의 의미와,
실험 결과 표에서 "router: OLMo"가 정확히 무엇을 뜻하는지, 논문 원문 근거로 아주 명확하게 설명
1. FLEXOLMO의 라우터(router)란?
MoE(Mixture-of-Experts) 구조의 핵심 컴포넌트
- FLEXOLMO는 MoE 구조입니다. 여기서 "라우터(router)"는 입력 토큰의 임베딩을 받아, 어떤 Expert(전문가 모듈)를 사용할지 확률적으로 분배(gating)하는 역할을 합니다.
논문 원문 설명
The router plays a critical role in MoE: the router function r maps an input vector x to a distribution over expert modules, including the public model as one of the experts.
r(x) = W₍r₎x, W₍r₎ ∈ ℝ⁽ⁿ⁺¹⁾×ʰ
In typical MoEs, W₍r₎ is trained end-to-end alongside all expert modules, using access to the full training dataset.
Instead, we decompose W₍r₎ into individual expert-specific router embeddings, where each row rᵢ represents the router embedding for expert Mᵢ, learned only from Dᵢ.
각 expert별로 훈련된 라우터 임베딩을 합쳐놓은 행렬이며, 입력 임베딩 x와 곱해서 softmax로 각 expert의 참여 비율(확률)을 만듭니다.
2. 실험 결과에서 "router: OLMo"가 의미하는 것
Prompt-based Routing (router: OLMo)
- Prompt-based routing이란, 입력 쿼리가 들어왔을 때 간단한 분류(혹은 규칙 기반)로 "이 입력은 Math, 이 입력은 Code" 등 도메인을 정해 그 도메인 Expert 하나만 선택해서 inference 하는 방식입니다.
- 여기서 "router: OLMo"란, 이 분류(=도메인 예측/Expert 선택) 과정을 OLMo-7B 모델을 이용해 수행했다는 뜻입니다.
논문 표기 원문:
Prompt-based Routing We use an LM-based domain classifier via prompting to route each query to the most suitable model, which is then used exclusively. We use Llama-3.1-8B-Instruct and OLMo-2-1124-7B-Instruct as classifiers.
→ **입력 쿼리를 OLMo-7B로 분류해서, 그 결과(예: Math/Code/News 등 도메인)에 맞는 Expert 하나만 활성화**
→ 그 Expert가 응답 생성, 나머지 Expert는 사용하지 않음
- router: Llama도 동일하게, 분류에 Llama 모델을 사용한 것
3. FLEXOLMO의 MoE 라우터와 Prompt-based Routing의 차이
- FLEXOLMO MoE 라우터는 실제로는 soft mixture, 즉 여러 Expert를 동시에 활성화하고 layer/토큰별로 동적으로 조합
- (논문에서 FLEXOLMO의 강점: 여러 expert를 동시에 쓸 수 있음, synergies)
- *Prompt-based Routing(router: OLMo, router: Llama)**은 오직 하나의 expert만 선택해서 그 expert로만 응답을 생성(즉, hard routing, 선택적 사용)
- 이 때 "라우터"는 사실상 도메인 분류기 역할(분류기로서 OLMo/Llama를 사용)
4. 결론 요약
- FLEXOLMO 논문에서 "라우터(router)"란?
- MoE 구조에서 입력 임베딩으로부터 어떤 expert를 얼마나 쓸지 결정하는 핵심 모듈
- FLEXOLMO는 expert별 라우터 임베딩을 독립적으로 학습해 합치는 구조
- 실험표에서 "router: OLMo"란?
- Prompt-based Routing 방식에서, 입력 쿼리의 도메인(Expert 선택)을 OLMo-7B로 분류한 결과
- 즉, OLMo-7B가 "이 쿼리는 Math/Code/News 등"을 판별 → 그 도메인 Expert 하나만 사용해서 답을 생성하는 방식
한 줄 요약
FLEXOLMO 논문에서 "router: OLMo"는, 입력 쿼리를 OLMo-7B로 도메인 분류(Expert 선택)해서, 그 Expert 하나만 사용하는 "Prompt-based Routing" 실험 조건을 의미합니다.
FLEXOLMO 논문에서 "Prompt-based Routing (router: OLMo)"에서 입력 쿼리를 OLMo-7B로 분류한다는 것은
정확히 어떤 절차(프롬프트, 방법, 분류 기준)로 도메인을 판단하는지,
즉 "쿼리 → OLMo-7B → 도메인 선택 → 해당 expert"
이 흐름이 어떻게 동작하는지 구체적으로 설명.
1. 기본 구조 및 논문 근거
논문에서는 Prompt-based Routing을 이렇게 정의합니다:
Prompt-based Routing We use an LM-based domain classifier via prompting to route each query to the most suitable model, which is then used exclusively. We use Llama-3.1-8B-Instruct and OLMo-2-1124-7B-Instruct as classifiers. More details are in §A.1.
즉,
- OLMo-7B(Instruct)가 분류기(도메인 판별기) 역할을 하며
- 쿼리(입력 문제/문장 등)를 주면 "이 쿼리는 어떤 도메인(expert)에 가장 적합한가?"를 분류해서
- 해당 도메인 expert만 사용하여 응답을 생성합니다.
2. 분류 과정 실제 예시 (일반적인 방식)
논문에서는 구체적으로 다음과 같이 사용합니다(실제 Prompt 기반 도메인 분류):
1. 분류용 프롬프트 설계
- 쿼리(입력 질문, 문제, 문장 등)를 OLMo-7B에게 입력할 때
- 프롬프트에는 도메인 후보(ex: Math, Code, News, 등)를 명시하고
- "이 쿼리가 어떤 도메인에 속하는지"를 텍스트로 답하게 유도
예시 프롬프트
Given the following query, classify which domain it belongs to from among: Math, Code, News, Educational, Public.
Query: "Solve the following equation: x^2 + 2x + 1 = 0"
Domain:
→ OLMo-7B의 생성 응답: "Math"
- 이 방식은 최근 LLM을 분류기로 사용할 때 널리 쓰는 프롬프트 기반 다중 선택 분류와 동일합니다.
2. 응답을 해석하여 expert 선택
- OLMo-7B의 텍스트 출력(예: "Math", "Code", "News" 등)에서
- 가장 먼저 등장하는 도메인 혹은 softmax 확률이 가장 높은 도메인을 Expert 선택으로 간주
- 그 선택된 Expert만 활성화하여 downstream 생성(정답, 요약 등) 실행
3. 논문 Appendix A.1의 구체적 실험 설정
- *논문 부록 A.1 (Implementation Details)**에는 다음과 같이 나옵니다(핵심 부분 요약):
- "We prompt OLMo-7B-Instruct and Llama-3.1-8B-Instruct with a zero-shot classification prompt, which asks to choose the most appropriate domain among candidates for the input query. We use the model's completion (the first domain mentioned in the output) as the routing decision."
즉,
- 실제로 분류용 프롬프트를 넣고
- 생성된 첫 번째 도메인 이름을 해당 쿼리의 expert 선택 결과로 사용합니다.
4. 흐름 요약
- 입력 쿼리를 프롬프트에 넣어서 OLMo-7B에게 질의
- OLMo-7B의 응답 텍스트에서 "Math", "Code" 등 도메인 이름 추출
- 그 도메인에 해당하는 Expert만 활성화
- 해당 expert로 downstream(정답 생성, 요약 등) 실행
(예시)
- "How do I implement a binary search in Python?" → OLMo-7B 응답: "Code" → Code expert만 활성화
- "Summarize the latest news about the 2024 Olympics." → OLMo-7B 응답: "News" → News expert만 활성화
5. 핵심 요약
- OLMo-7B로 쿼리 분류 = 쿼리와 도메인 후보가 포함된 프롬프트를 LLM에게 주고,
- LLM이 생성한 도메인명 텍스트를 parsing해서 expert 선택에 사용
- 이 방식은 "output 텍스트 해석" 기반이며,
- LLM의 zero-shot/multi-choice 분류 능력을 그대로 활용