
원신(Genshin Impact)의 '아카샤'에서 영감을 받아, 실제로 분산 AI 기반을 만들기 시작한 이야기
요약
MoE(Mixture of Experts) 아키텍처를 네트워크로 확장하여, 여러 단말에 분산된 전문가 모델들을 협조시키는 'ArcAsha-OS' 프로젝트를 소개합니다. 거대 GPU 대신 네트워크 전체를 하나의 지능으로 활용하며, ODAR 알고리즘을 통해 효율적인 라우팅 문제를 해결하고자 합니다.
핵심 포인트
- MoE 구조를 활용해 전문가 모델을 네트워크로 분산 배치
- 거대 GPU 대신 복수의 소형 모델 협조를 통한 지능 구현
- 단순 라우팅의 한계를 극복하기 위한 ODAR 알고리즘 개발
- 네트워크 전체를 하나의 거대 지능으로 다루는 것을 목표
최근에는 LLM이나 AI 에이전트의 진보가 엄청난 기세로 진행되고 있습니다.
저는 테크 계열을 좋아해서, 논문을 읽거나 실제로 모델을 구동해 보곤 합니다.
그 과정에서,
"나도 직접 AI를 만들어보고 싶다"
라는 생각을 하게 되었습니다.
하지만 곧 현실에 부딪힙니다.
예를 들어 최근의 LLM은 수십 B~수백 B 파라미터 규모입니다.
학습에는 대량의 GPU가 필요합니다.
게다가 추론에도
- 고성능 GPU
- 대용량 VRAM
- 전기 요금
- 서버 유지비
- 장시간/고비용의 모델 학습
등이 필요합니다.
자금난에 시달리는 저로서는 도저히 준비할 수 없었습니다.
"역시 개인으로서는 무리인 걸까."
처음에는 그렇게 생각했습니다.
그러던 중 알게 된 것이 **MoE (Mixture of Experts)**라는 아키텍처였습니다.
MoE에서는,
- 수백 개의 전문가 (Expert)가 존재하며
- 매번 전부를 구동하는 것이 아니라
- 필요한 전문가만을 기동한다
라는 메커니즘으로 되어 있습니다.
즉,
모든 것을 매번 구동할 필요는 없다
라는 사고방식입니다.
여기서 한 가지 의문이 떠올랐습니다.
MoE에서 전문가는 1대의 GPU 안에 존재합니다.
하지만,
전문가 한 명 한 명은 독립되어 있습니다.
그렇다면
스마트폰 A
↓
수학 담당
...
이와 같이
전문가마다 별도의 단말로 배치하는 것
도 이론상 가능하지 않을까?
라고 생각했습니다.
즉,
GPU를 거대화하는 것이 아니라
전문가 그 자체를 네트워크로 분산한다
는 발상입니다.
사실 이 시점에서는,
사실, 이 아이디어를 떠올렸을 당시에는 "분산 AI"라는 연구 분야가 있다는 것조차 몰랐습니다.
"MoE를 네트워크로 확장하면 재미있겠는데"
그런 소박한 발상에서 시작되었습니다.
이 구성을 생각하고 있을 때,
문득 머릿속에 떠오른 것이
**원신의 「아카샤 (Akasha)」**였습니다.
게임 내에서는
- 지식을 집약하고
- 필요한 정보에 즉시 액세스할 수 있으며
- 사람들을 지식 네트워크로 연결하는
시스템으로 묘사됩니다.
"어라?"
"이거 지금 생각하고 있는 메커니즘과 조금 닮았는데."
그렇게 느꼈습니다.
물론 게임과 현실은 다릅니다.
하지만
"지식을 네트워크 전체에서 다룬다"
라는 사상이 매우 유사했기 때문에,
프로젝트 이름을
『ArcAsha』
라고 명명했습니다.
이름뿐만 아니라,
"지식을 네트워크 전체에서 협조시킨다"
라는 사상 그 자체가,
이 프로젝트의 원점이 되고 있습니다.
ArcAsha-OS에서는,
"거대 모델을 1대에서 구동하는" 것이 아니라,
"복수의 작은 전문가 모델을 협조시키는"
방식을 채택하고 있습니다.
Master
│
┌──────────────┐
...
각 노드는
각자 특기 분야만을 담당합니다.
Master는
- 태스크 분해
- 최적 노드 선택
- 품질 평가
- 학습
- 기억
만을 담당합니다.
거대 GPU를 만드는 대신,
네트워크 전체를 하나의 지능으로 다루는 것
을 목표로 하고 있습니다.
처음에는
"전문가를 선택하면 끝"
정도로 생각했습니다.
하지만 실제로 만들어 보니,
예상치 못한 문제들이 대량으로 발생했습니다.
예를 들어
- 한 번 평가가 낮아지면 다시는 선택되지 않는다
- 속도를 중시하여 가벼운 모델만 선택하다 품질이 악화된다
- 시도 횟수가 적다는 이유만으로 능력을 오판정한다
- FP16과 FP32에서 출력이 갈라진다
- WebGPU와 PyTorch에서 동작이 달라진다
등,
단순한 라우팅(Routing)으로는 전혀 제대로 작동하지 않았습니다.
"왜 실패하는가"
를 조사하기 시작하자, 라우팅 알고리즘 자체를 다시 설계해야 한다는 것을 알게 되었습니다.
그로부터 현재의
「ODAR (Observation-Driven Adaptive Routing)」
라는 라우팅 방식으로 발전하게 되었습니다.
ArcAsha-OS에서는 현재, 라우팅 알고리즘으로 **ODAR (Observation-Driven Adaptive Routing)**를 채택하고 있습니다.
제가 만든 조어입니다만, 이름 그대로,
"실제로 관측(Observation)한 결과로부터, 라우팅을 지속적으로 학습해 나가는 것"
을 목적으로 한 알고리즘입니다.
ODAR에서는 각 모델에 대해
- 코딩 능력
- 수학 능력
- 추론 능력
- 번역 능력
등을 **Belief (신념)**로서 보유합니다.
태스크를 처리할 때마다,
Observation (관찰)
↓
Belief Update (신념 업데이트)
...
라는 흐름으로 능력을 추정하여 업데이트해 나갑니다.
즉,
"처음부터 누가 잘하는지 미리 정해두는" 것이 아니라, 경험을 통해 능력을 학습하는 라우터 (Router)
가 됩니다.
모델을 선택하는 것뿐이라면,
"가장 점수가 높은 모델을 선택하면 된다"
라고 생각할 수도 있습니다.
하지만 실제로는,
미지의 모델도 시도해 보지 않으면 진정한 능력을 알 수 없습니다.
그래서,
**Exploration (탐색)**과 Exploitation (활용)
의 균형을 맞출 수 있는 LinUCB를 채택했습니다.
나아가 ArcAsha에서는,
실제로 채택된 모델뿐만 아니라,
다른 모델도 병렬로 평가하는 Shadow Feedback을 도입하고 있습니다.
이를 통해,
"선택되지 않은 모델도 학습할 수 있다"
라는 특징이 있습니다.
온라인 학습 (Online Learning)이면서도, 더욱 효율적으로 각 모델의 능력을 업데이트할 수 있도록 설계되었습니다.
ODAR에 대해서는 30개 시드(Seed)를 통한 통계 실험을 실시했습니다.
그 결과,
- ✅ 고정 라우팅 (Fixed Routing)보다 유의미하게 성능 향상
- ✅ 서로 다른 모델 구성 (Set A / Set B)에서도 결과 재현
- ✅ Feature Ablation (특징 제거 실험) 결과
**Capability Feature (역량 특징)**가 가장 중요하다는 것을 확인
등,
단순한 아이디어가 아니라,
통계적인 검증을 통해 유효성을 확인했습니다.
(다만, 시행 횟수를 더 늘린 결과도 검증할 예정입니다.)
현재는 이 ODAR를 npm (@arcasha/router) 과 Python (arcasha-router) 양쪽 모두에서 사용할 수 있도록 라이브러리로 분리하여, ArcAsha-OS뿐만 아니라 다른 AI 시스템에도組み込める(組み込める, 포함할 수 있는) 형태로 공개를 진행하고 있습니다.
현재의 ArcAsha-OS에서는 다음과 같은 기능까지 구현이 진행되었습니다.
- 스마트폰(iPhone은 어려움)과 PC 브라우저를 AI 노드로 연결
- 각 모델의 능력을 학습하며 라우팅
- 복잡한 태스크를 여러 개로 분해
- 여러 플랜을 탐색하여 최적의 것을 채택
- 실패 원인을 분석하여 재실행
- 과거의 실행 결과를 다음 라우팅에 반영
- ODAR Router를 라이브러리로 공개
"ArcAsha"라는 이름이나 각 기능(아래 표에 기재)의 이름은 원신의 아카샤나 수메르의 이야기 등에서 영감을 얻었지만, 실제 아키텍처는 게임 내 설정을 재현한 것이 아니라 현실의 LLM, MoE, 온라인 학습, 밴딧 알고리즘 (Bandit Algorithm)을 기반으로 설계되었습니다.
| ArcAsha-OS | 역할 | 명명 이미지 |
|---|---|---|
| ArcAsha | 분산 AI 기반 전체 | 아카샤 |
| Heart of Wisdom | 오케스트레이터 (Master) | 지혜의 마음 |
| Expert Nodes | 각 전문 AI | 학자·지식 전달자의 이미지 (+MoE) |
| Belief | 각 노드의 능력 상태 | 지식 (네트워크가 보유함) |
| ODAR | 적응형 라우팅 | ※원신 유래가 아닌 독자 알고리즘 |
※ 기능 및 아키텍처 명명은 작업하다 보니 어린 시절로 돌아간 기분으로 약간 중이병스럽게 지어보았습니다 (웃음)
여기까지 읽어주셔서 감사합니다.
↓ (아래 링크를 클릭하시면 기술 상세 내용이 있습니다)
라우팅 알고리즘에 대해서는 프리프린트 (Preprint) 논문도 공개했습니다.
GitHub
Zenodo
이 프로젝트는
"분산 AI를 만들자"
에서 시작된 것은 아닙니다.
AI가 좋다
↓
나도 직접 만들고 싶다
...
그러한 흐름에서 자연스럽게 태어난 것이
ArcAsha-OS입니다.
아직 발전 단계에 있지만,
"개인이라도 AI 기반 그 자체를 설계할 수 있다"
그런 가능성을 조금씩 형상화해 나가고 싶습니다.
이 글이,
"나도 무언가 만들어 볼까"
라고 생각하는 계기가 된다면 기쁘겠습니다.
혹시 관심이 생기신다면,
GitHub에서 개발 상황을 살펴봐 주시면 감사하겠습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기