Nehanth/pooled
Peer-to-peer LLM inference in the browser: pool your devices to run big open models, for chat and coding agents.
Pooled란 무엇인가요?
Pooled는 노트북, 데스크톱, 스마트폰, 친구의 컴퓨터 등 일반적인 장치 그룹이 GPU를 결합하여 단일 장치로는 감당할 수 없는 대규모 언어 모델(LLM)을 실행할 수 있게 해주는 웹 기반 시스템입니다. 장치들은 URL을 열어 *방(room)*에 참여합니다. 각 장치는 자신이 계산할 모델의 일부(레이어 세트)만 다운로드하고, 사용자 지정 WebGPU(WGSL) 커널을 사용하여 해당 레이어를 실행합니다. 생성되는 각 토큰에 대해 호스트는 직접적인 WebRTC 데이터 채널을 통해 작은 은닉 상태 패킷(몇 KB)을 워커에게 보내고, 최종 로짓을 수집하여 다음 단어를 샘플링하는 과정을 반복합니다. 전체 파이프라인은 브라우저 내에서 유지되므로 네이티브 설치가 필요 없으며, 클라우드 서버가 추론을 수행하지도 않습니다. 브라우저를 떠나는 유일한 데이터는 모델 가중치 파일(Hugging Face 또는 피어로부터 가져옴)뿐입니다.
주요 기능 (README 설명 기준)
| 기능 | 의미 | 중요성 |
|---|---|---|
| 브라우저 내 P2P LLM 추론 | 장치 내 GPU 연산에 WebGPU를, 저지연 피어 연결에 WebRTC를 사용. | 서버 측 GPU 비용 없음; 최신 브라우저가 있는 누구나 연산에 기여 가능. |
| 레이어별 모델 샤딩 | 각 참여자가 모델 레이어의 연속된 블록을 보유 (예: 노트북 0-21 레이어, 데스크톱 22-42 레이어, 폰 43-63 레이어). | 여러 장치에 메모리를 분산하여 매우 큰 모델(270-350억 파라미터) 실행 가능. |
| 지원 모델 | Qwen 3.8 27B (Q4_0, 약 17GB), Qwen 3.6 35B MoE (Q4_0, 약 22.5GB), Qwen 3 1.7B (Q8_0, 약 5.6GB). | 밀집형 및 혼합 전문가(MoE) 아키텍처 모두 시스템에서 작동함을 입증. |
| 추론 디코딩 | 모델에 포함된 초안 레이어가 토큰을 제안하고 호스트가 이를 검증하여 생성 속도를 획기적으로 향상. | 단일 GPU의 네이티브 llama.cpp에 근접한 초당 토큰 속도를 유지하면서 정확성 보장. |
| 코드 모드 | 파일을 작성하고, 샌드박스 미리보기(:5173)를 제공하며, 콘솔 오류를 읽고 반복적으로 수정하는 에이전트 루프. |
공유 LLM을 브라우저 내 코딩 어시스턴트로 변환하여 모든 참여자가 볼 수 있는 작은 앱(예: 테트리스 게임)을 구축 가능. |
| OpenAI 호환 Serve API | 작은 CLI(npx @pooled/cli serve …)가 방을 OpenAI 스타일의 /v1/chat/completions 엔드포인트(Anthropic 메시지 포함)로 노출. |
기존 도구(Codex CLI, Claude Code, Continue, LiteLLM, curl 등)가 호스팅된 API처럼 pooled 모델과 통신 가능. |
| 설치 및 계정 불필요 | 링크만 열면 되며, 호스트는 선택적으로 토큰을 사용하여 방을 보호할 수 있음. | 임시 협업이나 데모에 대한 진입 장벽이 낮음. |
| 릴레이 폴백 | 기업 네트워크가 UDP를 차단하는 경우, TURN 릴레이(443 포트의 TCP/TLS)로 폴백 가능. | 방화벽 뒤에서도 시스템을 사용할 수 있게 하면서 모델 가중치는 릴레이 외부로 유지. |
| 테스트 및 벤치마크 | 단위 테스트(CPU 전용), GPU 없는 E2E 테스트, 0.6B 모델의 GPU 골든 테스트 및 상세 벤치마크 로그. | 재현성을 고려하여 설계된 프로젝트임을 입증. |
| 오픈 소스 및 MIT 라이선스 | 모든 코드, 커널, 문서가 MIT 라이선스 하에 공개됨. | 커뮤니티 기여 및 재사용 장려. |
누가 사용할 수 있나요?
| 사용 사례 | Pooled의 도움 |
|---|---|
| 라이브 코딩 데모 / 워크숍 | 참여자가 노트북과 폰을 가져와 모델을 공동 실행함으로써 클라우드 크레딧 없이 300억 파라미터 LLM을 시연 가능. |
| 개인정보 보호 중시 팀 | 프롬프트를 처리하는 중앙 서버가 없으므로, 자신의 장치만 신뢰하는 팀이 강력한 모델을 로컬에서 실행 가능. |
| 엣지 장치 연구 | 레이어별 샤딩, MoE 오프로딩, WebGPU 커널을 연구하는 연구자가 브라우저에서 직접 실험 가능. |
| AI 강화 웹 앱의 신속한 프로토타이핑 | 내장된 코드 모드는 코드를 작성하고 제공하는 에이전트를 즉시 제공하여 빠른 개념 증명에 유용. |
제한 사항 및 과제 (프로젝트 측 인정)
- 네트워크 지연 중요 – 왕복 지연 시간이 길어질수록 초당 토큰 수가 감소합니다. 추론 디코딩이 이를 완화하지만 완전히 제거하지는 못합니다.
- 프리필 속도 – 긴 프롬프트의 첫 번째 토큰은 여전히 네이티브 llama.cpp보다 느립니다. 로드맵에 더 빠른 프리필이 우선순위로 올라와 있습니다.
- 브라우저 지원 – macOS의 Chrome에서만 완전히 검증되었습니다. iPhone의 Safari는 워커로 작동하지만, Mac의 Safari는 메모리 압박 시 재로드될 수 있습니다. Firefox/Linux는 WebGPU를 수동으로 활성화해야 합니다.
- 은닉 상태의 프라이버시 – 은닉 상태 패킷은 암호화되지 않으므로 방에 있는 누구나 프롬프트를 재구성할 수 있습니다. 신뢰할 수 있는 참여자 간의 사용을 권장합니다.
- 장치 메모리 요구 사항 – 분할하더라도 270-350억 파라미터 모델은 방 전체에서 약 17-22GB의 RAM/VRAM이 필요하므로, 저사양 폰만으로는 가장 큰 모델을 호스팅할 수 없습니다.
빠른 시작 (README 기준)
# 정적 사이트 복제 및 호스팅
git clone https://github.com/Nehanth/pooled && cd pooled
npx -y serve -l 8080 . # http://localhost:8080/room 열기
각 참여자의 브라우저에서 표시된 URL을 열고 "Start a room"을 클릭한 다음, 장치들이 레이어 할당을 협상하는 과정을 지켜보세요.
결론
Pooled는 협업형 브라우저 내 LLM 추론의 경계를 넓히는 진정한 오픈 소스 프로젝트입니다. WebGPU 가속 커널, WebRTC 기반 피어 네트워킹, 완전한 OpenAI 호환 API 인터페이스를 결합하면서도 네이티브 설치가 전혀 필요 없습니다. README는 상세한 아키텍처 문서, 성능 수치, 명확한 로드맵을 제공하여 분산 추론, 브라우저 기반 AI 또는 클라이언트 측에서 실행되는 코딩 에이전트 구축에 관심 있는 사람들에게 신뢰할 수 있는 참고 자료가 됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트