Mesh LLM - iroh 기반 분산 AI 컴퓨팅
요약
본 글은 Mesh LLM과 같은 분산 AI 컴퓨팅 방식을 다루며, 대형 언어 모델(LLM)을 여러 노드에 분할하여 실행하는 기술적 원리와 성능 제약 요인을 분석합니다. 특히 네트워크 지연 시간이 주요 병목이며, 로컬/기업망 환경에서 추측 디코딩 사용 시 효율적인 활용이 가능함을 설명합니다.
핵심 포인트
- 분산 구성은 가중치를 느린 저장장치 대신 VRAM에 유지하여 빠른 대역폭을 활용한다.
- 실제 성능의 주요 제약 요인은 네트워크 지연 시간(Latency)이다.
- 로컬 또는 기업망 환경에서 분산 추론이 가장 효율적이며, 전 세계 WAN에서는 어려움이 있다.
- 대형 모델보다 특정 목적에 맞게 학습된 소형/밀집 모델을 여러 개 사용하는 것이 더 적합할 수 있다.
첫 이미지의 GPU 장비, 노트북, 서버, 클라우드 노드 등을 보니 내가 가진 연산 자원이 얼마나 적은지 실감했다. 24GB VRAM 노트북이나 96GB 워크스테이션도 없고, 친구들의 게이밍 PC를 모두 동원해 LLM을 실행해도 사진 속 총 VRAM에는 못 미칠 듯하다
글에서 공개 메시 네트워크도 소개했지만 자세한 정보는 찾지 못했다
성능 정보가 부족한 점이 눈에 띈다. 시스템 RAM이나 디스크 스트리밍을 포함해 다른 어떤 대형 모델 실행 방식보다 훨씬 느릴 것이라 예상했다. 소비자용 네트워크는 10Gbps 이더넷조차 로컬 RAM이나 디스크에 비하면 매우 느리니, 분할 모델이 초당 1토큰이나 그 이하인지 궁금했다
모델 목록을 보니 Qwen 235B A22B가 “2개 노드에서 16 tok/s로 검증된 MoE 235B/22B”라고 되어 있었다. 노드 사양과 네트워크 연결은 공개하지 않았지만 꽤 준수한 속도이며, 대화형으로 편안한 수준에는 약간 못 미쳐도 상당히 근접한다
반드시 더 느린 것은 아니며, 오히려 그렇지 않은 구성도 많을 듯하다. 가중치를 RAM이나 NVMe로 오프로딩하면 토큰마다 각 계층을 처리할 때 거대한 가중치를 느린 저장장치에서 GPU로 옮겨야 하므로 DRAM 대역폭이나 디스크 읽기 속도가 병목이 된다 분산 구성에서는 각 장비의 VRAM에 가중치가 남아 있어 훨씬 빠른 GPU 메모리 대역폭을 활용한다. 장치 간에 넘기는 계층 출력은 기가바이트급 가중치가 아니라 킬로바이트급이므로 네트워크 처리량이 병목이 되지는 않는다
실제 제약은 네트워크 지연 시간이다. 모델을 4개 장치로 나누면 토큰마다 네트워크 지연이 세 번 발생하며, 지연 시간이 1ms라면 토큰당 3ms가 추가된다. 연산 시간이 0이라고 가정해도 추측 디코딩 없이 이론상 최대 속도는 약 30 tok/s다
인터넷에서는 지연 시간이 너무 커 실용적이지 않을 가능성이 높지만, 로컬·기업 네트워크에서 추측 디코딩을 사용하면 충분히 가능하다. 프리필이나 프롬프트 처리에서는 지연 시간이 누적되지 않으므로 분산 구성이 거의 확실히 더 빠르다
내 홈 랩에서 장비 간 5ms 지연과 지터를 모의해 측정했다. 분할 실행은 대도시권 수준의 WAN 지연에서는 꽤 잘 작동하지만 전 세계 WAN에서는 그다지 빠르지 않다
전용 RDMA나 NVLink 패브릭이 없는 여러 장비를 묶어 소유한 하드웨어로 대형 모델을 제공하고 다른 사람과 공유하는 것이 목표다. 현재 같은 분할 구성에서 GLM 5.2를 약 10 tok/s로 실행하는 작업을 진행 중이다
성능은 비교적 간단히 어림잡을 수 있다. 자기회귀 디코딩에서는 토큰마다 대략 2 × hidden_size × num_shards바이트를 네트워크로 전송해야 하며, 프리필에서는 이 값을 청크 크기로 나누면 된다
AMD Ryzen AI 9 HX 370이 탑재된 Framework 13에서 Qwen3.6-35B-A3B를 실행할 때 내가 얻는 속도와 비슷하다. 훨씬 큰 모델에서도 같은 속도가 나온다면 인상적이다
코딩용 LLM보다 목적에 맞게 만든 소형 언어 모델의 분산 추론에 더 관심이 간다. 이미지 처리, 소프트웨어 정의 라디오(SDR), 지역 날씨 관측 등에 활용하면 평범한 사양에서도 실행되면서 신뢰할 만한 출력을 낼 수 있다
활성 전문가 X개를 둔 모델 하나 대신, 특정 정보로 학습한 작고 밀집된 서로 다른 모델 10개를 서버 10대에 올리고 라우터 하나로 연결하는 구성이 적합해 보인다
Mesh LLM 기여자이며, 대형 모델을 여러 노드로 분할할 수 있게 해주는 skippy 엔진을 만들었다. 질문이 있다면 답하겠다
IPFS 관련 기술이 다시 등장해 반갑다. 두 가지가 궁금하다
첫째, 이런 식으로 연산을 분산하면 연산 그래프의 모든 참여자가 처리 중인 시퀀스를 알게 되는데 개인정보 보호를 어떻게 처리하는가? 둘째, 악의적인 참여자가 모델 활성값을 오염시키지 못하게 하는 보호 장치가 있는가?
공개 메시 참여 유인이 무엇인지 궁금하다. 특정 모델 실행에 필요한 VRAM의 1/8을 제공하면 적어도 추론 사용량의 1/16을 받는 식의 공정성 보장이 있는가?
며칠 전 공개된 Colibri 프로젝트와 통합하면 이점이 있을까?
KV 캐시 구현을 깊이 살펴본 적이 없는데, 계층별로 사실상 독립된 캐시를 운용하는지 궁금하다
그렇다면 연산량과 데이터 크기 측면에서 깔끔하게 분할되고, 각 계층이 차례를 기다리는 시간만 느려질 듯하다. 파이프라인을 구성하면 여러 질의를 동시에 실행할 수도 있다
질의를 한 단계씩 어긋나게 투입하는 N단계 파이프라인으로 best-of-N을 구현한 사례가 있는가?
서로 다른 EPYC 프로세서와 모델이 많은 연구실을 운영하는데, 이를 이런 방식으로 하나로 묶을 수 있다는 점이 인상적이다
비슷한 분산 컴퓨팅 방식의 LLM을 찾다가 AI Horde, Aphrodite 쪽의 소규모 시도, Nous Research의 분산 학습 등을 발견했다
이 가운데 AI Horde가 가장 큰 듯하다. API는 채팅 완성이 아닌 KoboldCPP 텍스트 완성 형식을 사용한다. 더 많은 조절 변수를 노출해 역할극에서 결과가 좋아지므로 커뮤니티의 활발한 구성원들이 이 방식을 강하게 선호하는 듯하다. 다른 용도는 대부분 도구 호출이 필요할 테니 역할극 외에 어디에 쓸 수 있을지는 잘 모르겠다
이번 주에는 채팅 템플릿과 응답 파싱을 지원하도록 OpenAI 브리지를 개선하기 시작했다. 공식 배포에 성공하면 역할극 모델을 써야 하더라도 코딩에 활용할 수 있을 것이다 악용 방지 장치도 더 충실하다. 조직적인 공격을 막기 위해 작업자는 누적 가동 시간 1주를 채워야 신뢰 대상으로 인정되며, 사용자는 신뢰된 작업자만 선택할 수 있다. 작업자를 운영하면 kudos를 얻어 최대 512토큰을 넘는 생성에 사용할 수 있고, 무료 요청은 대기열 맨 뒤로 밀린다
하나 이상의 분산 LLM을 실행하는 다형성 봇넷이 무엇을 할 수 있을지 궁금했다. 봇넷의 모든 호스트를 클러스터 연산 자원으로 활용해 LLM을 돌리고, 각 봇넷 클러스터의 전파 방식과 페이로드가 진화하도록 이끄는 구상이다
나쁜 변종은 탐지돼 제거되고 효과 없는 전파 방식은 퍼지지 않지만, 가장 우수한 버전은 살아남아 계속 성장한다. 여기 소개된 구조와 상당히 비슷하며, QUIC은 매우 동적으로 작동해 생각보다 탐지하기 어려울 수 있다
https://query.mt/ 프로젝트는 한동안 iroh 기반 메시를 사용해 왔다. 메시 모델을 휴대전화에서도 쓰고 싶다면 시도해볼 만하다
mesh-llm을 실행하려고 한동안 씨름했지만, 설치 가능한 llama.cpp 빌드 가운데 내 구형 GPU에서 작동하는 것이 없었다. 외부 llama.cpp 서비스를 프록시할 수 있어 보였지만 그 설정도 성공하지 못했다
매우 흥미로운 프로젝트지만 아직 다듬어지지 않은 부분이 꽤 있다
버그 보고서를 보내주면 작동하도록 함께 해결해보고 싶다
이 방식이 가능하리라 생각해 약 1년 전 ChatGPT에 물었지만, 지연 시간이 너무 커 불가능하다는 답을 받았다. 당시 거의 1년 동안 libp2p를 공부하며 활용할 프로젝트를 찾고 있었다
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기