메뉴
HN
Hacker News 17일 전

메시 LLM: Iroh 기반 분산 AI 컴퓨팅

IMP
8/10
핵심 요약

메시 LLM(Mesh LLM)은 기존에 보유한 여러 대의 컴퓨터 GPU와 메모리를 묶어 하나의 거대한 GPU처럼 작동하게 만드는 분산 AI 인프라 기술입니다. 이를 통해 고비용의 클라우드 API에 의존하지 않고도, 사내에 방치된 GPU를 활용해 대규모 언어 모델(LLM)을 자체 운영하고 통제권을 확보할 수 있어 실무자들에게 매우 유용한 대안입니다.

번역된 본문

사람들은 대규모 언어 모델(LLM)을 구동할 때를 떠올리면 보통 데이터 센터를 생각합니다. 타인의 소유인 수많은 GPU 랙, 사용량에 따라 요금이 부과되는 API, 그리고 서비스가 성공할수록 매달 불어나는 청구서를 상상하죠. 사용자는 프롬프트를 블랙박스에 던져 넣고, 가격과 모델, 개인정보처리방침이 가입할 때와 동일하게 유지되기를 바랄 뿐입니다. 하지만 많은 팀에게 이는 좋은 거래가 아닙니다. 모델이 언제 교체되는지, 데이터가 어디로 가는지, 어떤 하드웨어에서 작업이 처리되는지에 대한 통제권을 포기해야 하기 때문입니다. 사용량이 증가하면 청구 비용도 함께 증가하지만, 사용자가 당길 수 있는 통제 레버는 '돈을 더 지불하는 것'밖에 없습니다.

Mesh LLM은 다른 형태를 취합니다. 원하는 만큼 많은 머신을 추가하여 현재 보유한 GPU와 메모리를 하나로 묶고, 이 전체를 OpenAI 호환 API 단 하나로 노출합니다. 하나의 노드로 시작하고 나중에 더 추가할 수 있습니다. 모델이 지금 앞에 있는 컴퓨터에서 실행될지, 다른 피어로 전달될지, 아니면 여러 대의 머신에 분산될지 결정하는 것은 메시(Mesh)에 맡기면 됩니다.

문제: AI는 비싸고, 남의 소유다 유명한 모델들은 대부분 거대한 단일 구조(Monolith)입니다. 대부분의 사람들은 UI나 API 키를 통해 이 모델에 접근하며, 모든 것을 실행해 주는 대규모 공급자에게 비용을 지불합니다. 이는 편리하지만, 동시에 일종의 항복이기도 합니다. 모델이 언제 업데이트되는지, 어떤 메모리에서 실행되는지, 그리고 그 아래 어떤 하드웨어가 있는지 통제할 수 없습니다. 이러한 모델에 의존하는 수많은 기업과 서비스들은 정반대의 것을 원합니다. 더 많은 통제권, 더 높은 유연성(플러거빌리티), 더 낮은 비용을 원합니다. 사무실, 창고, 책상 아래 등에는 유휴 GPU가 방치되어 있습니다. 그들이 부족한 것은 이 컴퓨터들을 하나인 것처럼 작동하게 만들 방법뿐입니다.

Mesh LLM: 모델을 직접 실행하라 핵심 제안은 간단합니다. 더 큰 GPU를 구매하지 않고도 더 큰 모델을 실행하세요. 에이전트와 챗봇을 구동하기 위해 팀과 사적으로 컴퓨팅 파워를 공유하거나, 전 세계와 공개적으로 공유할 수 있습니다. 어떤 OpenAI 클라이언트든 http://localhost:9337/v1 만 가리키게 하면, 실제로 작업이 어디서 일어나는지 더 이상 신경 쓰지 않아도 됩니다.

내부적으로 Mesh LLM은 모델 연산을 iroh 엔드포인트들의 메시(Mesh) 네트워크로 분산합니다. 요청은 세 가지 방식으로 처리될 수 있습니다: 이 머신의 GPU에서 로컬로 실행합니다. 해당 모델을 이미 로드한 피어(Peer)로 요청을 라우팅합니다. 단일 머신에 담기엔 너무 큰 모델을 '파이프라인(Pipeline)' 형태로 여러 머신에 분할하여 실행합니다.

작동 방식 아키텍처는 플러그인(Pluggable) 방식입니다. 플러그인들은 매니페스트에 자신이 제공하는 기능을 선언하고, 런타임은 이를 시작하여 호출을 라우팅하며 MCP, HTTP, 추론(Inference) 및 메시 이벤트를 통해 해당 기능을 노출합니다. 기본 카탈로그에는 노트북에 탑재 가능한 5억 매개변수(Parameter) 모델부터 2,350억 매개변수 규모의 전문가 혼합(Mixture-of-Experts, MoE) 거인 모델까지 40개 이상의 모델이 함께 제공됩니다.

초대형 모델을 위해 Mesh LLM은 분할 모드(내부명 'Skippy')를 갖추고 있습니다. 모델은 레이어 범위별로 여러 스테이지로 파티셔닝 됩니다. 예를 들어 노드 1에는 015번 레이어를, 다음 노드에는 1631번 레이어를 할당하는 식으로 파이프라인을 구성합니다. 활성화 값(Activation)이 한 스테이지에서 다음 스테이지로 흘러가기 때문에, 여러 대의 평범한 머신이 단독으로는 감당할 수 없는 대형 모델을 함께 구동할 수 있습니다. OpenAI 클라이언트는 이러한 과정을 전혀 알지 못하며, 단지 평소처럼 localhost와 통신할 뿐입니다.

iroh의 활용 방법 모델을 서빙하든 요청만 보내든, 모든 노드는 iroh 엔드포인트를 부팅합니다. 이 엔드포인트는 해당 노드의 정체성인 공개 키(Public Key)이자 유일한 네트워크 인터페이스입니다. 중앙 서버는 존재하지 않습니다. iroh는 홀 펀칭(hole-punching), NAT 통과(NAT traversal), 릴레이 폴백(Relay fallback) 등을 처리하여, 위치에 상관없이 두 노드 간의 직접적이고 인증된 QUIC 연결을 엽니다. 이를 공용 인터넷 너머로도 유지하기 위해 Mesh LLM은 서로 다른 지역에서 두 개의 iroh 릴레이를 운영합니다. 따라서 직접 연결할 수 없는 노드들도 항상 가까운 대체 경로를 확보할 수 있습니다.

전체 프로토콜은 QUIC의 ALPN 협상을 기반으로 합니다. ALPN은 다음 세 가지가 있습니다:

ALPN | 전송 내용 mesh-llm/1 | 메인 메시: 가십(Gossip, 통신), 라우팅, HTTP 터널, 플러그인 채널 mesh-llm-control/1 | 소유자 제어 평면: 환경설정 동기화, 소유권 증명 skippy-stage/2 | 분할 모델을 위한 지연 시간에 민감한 활성화 값(Activation) 전송

메인 mesh-llm/1 연결 내부에서 모든 것은 스트림의 종류를 알려주는 단일 선행 바이트가 태그로 붙은 양방향 QUIC 스트림입니다. 하나의 연결이 가십, 추론, 경로 쿼리 및 피어 수명 주기 이벤트를 모두 운반하며, 이는 모두 첫 번째 바이트로 역다중화(Demux)됩니다:

Byte | 스트림 타입 | 설명 0x01 | GOSSIP | 피어 알림... (이하 원문 누락)

원문 보기
원문 보기 (영어)
When people picture running a large language model, they picture a data center. Racks of GPUs that belong to someone else, a metered API, and a bill that grows every month you succeed. You send your prompts off to a black box and hope the price, the model, and the privacy policy all stay the way they were when you signed up. For a lot of teams that is a bad trade. You give up control over when models change, where your data goes, and what hardware runs your workloads. And as usage grows, so does the bill, with no lever to pull except "pay more." Mesh LLM is a different shape. It pools the GPUs and memory you already have, across as many machines as you want to add, and exposes the whole thing as one OpenAI-compatible API. Start one node. Add more later. Let the mesh decide whether a model runs on the box in front of you, routes to a peer, or splits across several machines. The problem: AI is expensive, and it is somebody else's The popular models are monoliths. Most people reach them through a UI or an API key and pay a large provider to run everything. That is convenient, and it is also a surrender. You do not control when the model gets updated, what memory it runs in, or what hardware sits underneath. Plenty of businesses and services that depend on these models want the opposite: more control, more pluggability, lower cost. They have GPUs sitting in offices, in closets, under desks. What they are missing is a way to make those machines act like one. Mesh LLM: run the models yourself The pitch is simple. Run bigger models without buying bigger GPUs. Share compute privately with your team, or publicly with the world, to power agents and chat. Point any OpenAI client at http://localhost:9337/v1 and stop caring where the work actually happens. Under the hood, Mesh LLM distributes model compute across a mesh of iroh endpoints. A request can be served three ways: Run it locally, on this machine's GPU. Route it to a peer that already has the model loaded. Split a model too big for any single box across several machines, as a pipeline. How it works The architecture is pluggable. Plugins declare what they provide in a manifest, the runtime starts them, routes calls, and exposes their capabilities over MCP, HTTP, inference, and mesh events. The catalog ships with 40+ models, from half-a-billion-parameter models that fit on a laptop to 235B mixture-of-experts giants. For the giants, Mesh LLM has a split mode (internally, "Skippy"). A model gets partitioned by layer ranges into stages: layers 0 to 15 on one node, 16 to 31 on the next, and so on down the pipeline. Activations flow from one stage to the next, so several modest machines can run a model none of them could hold alone. The OpenAI client never sees any of this. It still just talks to localhost. How it uses iroh Every node, whether it serves models or only sends requests, boots an iroh endpoint. That endpoint is the node's identity, a public key, and its only network surface. There is no central server. iroh handles the hole-punching, NAT traversal, and relay fallback needed to open a direct, authenticated QUIC connection between any two nodes, wherever they sit. To keep that working across the open internet, Mesh LLM runs two iroh relays in different regions, so nodes that cannot reach each other directly always have a fallback path nearby. The whole protocol rides on QUIC's ALPN negotiation. There are three: ALPN What it carries mesh-llm/1 Main mesh: gossip, routing, HTTP tunnels, plugin channels mesh-llm-control/1 Owner control plane (config sync, ownership attestation) skippy-stage/2 Latency-sensitive activation transport for split models Inside the main mesh-llm/1 connection, everything is a bidirectional QUIC stream tagged with a single leading byte that says what kind of stream it is. One connection carries gossip, inference, route queries, and peer-lifecycle events, all demuxed by that first byte: Byte Stream type Description 0x01 GOSSIP peer announcements (models, GPU, RTT, capabilities) 0x04 TUNNEL_HTTP inference requests proxied to a peer 0x05 ROUTE_REQUEST "which models do you host?" 0x06 PEER_DOWN dead-peer notification 0x07 PEER_LEAVING graceful shutdown 0x08 PLUGIN_CHANNEL plugin RPC 0x0e DIRECT_PATH_REQUEST share direct addresses for NAT traversal The neat part is what this buys you. iroh gives authenticated, NAT-traversing QUIC between any two machines, addressed by public key. So "route to a peer" and "stream activations to the next pipeline stage" become the same primitive as "talk to localhost," just with a different endpoint ID. The networking stops being something you have to think about. iroh provides the secure transport. Mesh LLM builds its own gossip layer on top, so it controls exactly who gets admitted to the mesh, which versions are compatible, and which peers to trust. Getting started Users can install the lightweight software (about 18 MB) and either join the public mesh or configure private deployments. The system presents itself as localhost:9337/v1 to any standard OpenAI client. A mobile app is coming, built on iroh's Swift SDK. The plan is to speak ACP, the emerging agent standard, so other clients can join the mesh too. The throughline is the same one that motivated the whole project: more peer to peer, fewer closed servers, and no lock-in. See the code Mesh LLM Website Iroh is a dial-any-device networking library that just works. Compose from an ecosystem of ready-made protocols to get the features you need, or go fully custom on a clean abstraction over dumb pipes. Iroh is open source, and already running in production on hundreds of thousands of devices. To get started, take a look at our docs , dive directly into the code , or chat with us in our discord channel .