Lumabri: Mixture-of-Experts 모델을 위한 P2P 스웜 추론

Lumabri는 모델 가중치와 실제 연산을 모두 peer-to-peer (P2P) 스웜에 분산함으로써 거대한 Mixture-of-Experts (MoE) 모델의 실행을 가능하게 합니다. 트랜스포머 레이어를 여러 장치에 나누는 전통적인 분산 추론과 달리, Lumabri는 전문가(expert) 단위로 분할하여 GPU가 없는 장치를 포함한 리소스가 제한된 노드들도 추론 과정에 기여할 수 있도록 합니다.

분산 전문가 실행

Lumabri는 밀집 가중치(dense weights), 라우터(router), 그리고 KV 캐시를 로컬 "chatter" 머신에만 유지함으로써 MoE 희소성(sparsity)을 최적화합니다. 토큰에 대해 특정 전문가가 필요할 때, chatter는 해당 전문가를 보유한 피어(peer)에게 작은 4 KB 활성화(activation) 데이터를 보냅니다. 피어는 전문가를 실행하고 결과를 반환합니다.

이 아키텍처는 전문가 가중치가 chatter에 도달할 필요가 없도록 보장하여, 가중치 스트리밍 방식에 비해 필요한 대역폭을 크게 줄여줍니다. chatter와 피어 모두 동일한 엔진 소스에서 빌드되었기 때문에 출력은 로컬 실행과 바이트 단위로 동일합니다. 서로 다른 하드웨어 명령어(예: -march=native)로 인한 무언의 오류를 방지하기 위해, Lumabri는 피어가 소스 해시, ISA, 컴파일러를 포함한 정확한 빌드 정보를 광고하도록 요구합니다. chatter는 빌드 정보가 다른 피어를 거부합니다.

P2P 모델 분산 및 지연 로딩

Lumabri는 LD_PRELOAD 심(shim) (liblumabri.so)을 통해 모델 바이트에 대한 지연 로딩 메커니즘을 구현합니다. 이 심은 표준 libc 호출(open, fopen, opendir, pread)을 가로채어 원격 모델 파일이 희소한 로컬 미러처럼 보이게 만듭니다.

  • 온디맨드 페칭(On-demand fetching): 추론 엔진이 실제로 데이터에 접근할 때만 피어로부터 바이트를 가져옵니다.
  • 로컬 캐싱(Local Caching): 가져온 바이트는 로컬 미러와 체크포인트 간에 공유되는 콘텐츠 주소 지정 저장소(CAS)에 저장됩니다. 동일한 바이트에 대한 후속 요청은 로컬 디스크에서 최대 속도로 제공됩니다.
  • 무결성(Integrity): 모델의 모든 MiB는 sha256을 통해 검증됩니다. 오리진(origin)은 ed25519 키로 모델 루트에 서명할 수 있으며, 이를 통해 chatter는 신뢰할 수 있는 공개 키를 사용하여 모든 블록을 검증할 수 있습니다.

신뢰할 수 없는 스웜에서의 신뢰 및 검증

피어들은 신뢰할 수 없는 대상이므로, Lumabri는 원격 연산의 정확성을 보장하기 위해 여러 메커니즘을 채택합니다:

  • 레플리카 검증(Replica Verification): LUMABRI_VERIFY=N 설정을 통해 chatter는 전문가 호출의 일정 비율을 두 번째 레플리카에서 다시 실행할 수 있습니다. 만약 두 정직한 피어가 서로 다른 결과를 내놓는다면, 이는 거짓의 증거이므로 실행이 중단됩니다.
  • 헤지 요청(Hedged Requests): 느린 피어로부터 발생하는 지연을 완화하기 위해, LUMABRI_HEDGE_MS=N은 지정된 타임아웃 후 두 번째 레플리카에 중복 요청을 보낼 수 있으며, 수신된 첫 번째 유효한 결정론적 결과를 사용합니다.
  • 암호화된 전송(Encrypted Transport): LUMABRI_ENCRYPT=1이 활성화되면, 토큰, 모델 블록, 그리고 활성화 데이터는 X25519/Ed25519 핸드셰이크와 ChaCha20-Poly1305 프레임으로 보호됩니다.

지원되는 엔진 및 모델

Lumabri는 Colibri 엔진과 통합되어 여러 MoE 아키텍처를 지원합니다. 각 엔진은 결정론적 출력을 보장하기 위해 엔진 자체 소스에서 빌드된 특정 전문가-노드 바이너리를 요구합니다.

| Engine | Supported Model | Expert Node Provenance | | :--- | :--- | | olmoe | OLMoE | phase2_test.sh | | colibri | GLM | phase2_glm_test.sh | | inkling | Inkling | phase2_inkling_test.sh | | kimi_k3 | Kimi K3 | phase2_kimi_test.sh | | deepseek | DeepSeek V4 | phase2_deepseek_test.sh |

다른 P2P 추론과의 비교

Lumabri는 Petals나 llama.cpp RPC와 같은 프로젝트와 분할 지점(partitioning)이 다릅니다. Petals나 llama.cpp RPC는 연속적인 트랜스포머 레이어를 여러 장치에 나누는 방식이며, 이는 실용성을 위해 일반적으로 고속 GPU 상호 연결이 필요합니다. 반면, Lumabri는 전문가 단위로 분할합니다. 이는 전체 레이어 활성화 데이터가 아닌 4 KB 활성화 데이터만 네트워크를 통해 이동하므로, CPU와 SSD로 구성된 네트워크에서도 스웜이 효과적으로 작동할 수 있게 합니다.

커뮤니티 인사이트 및 사용 사례

사용자들 사이의 논의는 저전력 장치나 RAM 제약이 있는 GPU를 활용하여 로컬 영역 네트워크(LAN)에서 자원을을 풀링(pooling)할 수 있는 Lumabri의 잠재력을 강조합니다.

"가장 큰 이점은 RAM이 제한된 GPU가 놀라운하게 높은 처리량을 가진 대규모 파라미터 모델의 추론을 수행할 수 있게 하는 것입니다... 네트워크를 통한 메모리 대 연산 비율은 가중치가 아닌 활성화 데이터에 의 의해한정됩니다."

다른 사용자들은 이 아키텍처가 클라우드 제공업체의 중앙 집중식 검열열이나 모니터링을즘을 위한 "보험 정책" 역할을 하여, LLM 추론을 더 분산화되고 커뮤니티 중심적인 문화로 되돌려 놓는다고 언급했습니다.

Sources

관련

  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트