exo-explore/exo
Run frontier AI locally.
exo – Apple silicon(및 Linux) 클러스터용 분산 AI 추론
제품 개요 – exo(Exo Labs 제공)는 여러 Mac(또는 Linux 머신)을 단일 AI "클러스터"로 묶는 로컬 실행 플랫폼입니다. 장치를 자동으로 검색하고 네트워크를 통해 모델 샤드를 공유하며 전체를 익숙한 OpenAI 호환 API와 웹 대시보드로 노출합니다. 핵심 추론 엔진은 Apple의 Metal 기반 ML 라이브러리인 MLX이며, 시스템은 자체 토폴로지 인식 병렬 처리와 Thunderbolt 5를 통한 RDMA를 추가하여 노드 간 지연 시간을 줄입니다.
주요 기능(README에 설명됨)
| 기능 | 설명 |
|---|---|
| 자동 장치 검색 | exo를 실행하는 노드는 수동 구성 없이 LAN에서 서로를 찾습니다. |
| Thunderbolt 5를 통한 RDMA | Thunderbolt 5를 통한 원격 직접 메모리 액세스에 대한 Day-0 지원으로 노드 간 지연 시간을 약 99% 줄인다고 주장합니다. |
| 토폴로지 인식 자동 병렬화 | exo는 각 노드의 리소스와 네트워크 대역폭/지연 시간을 검사한 다음 클러스터 전체에 모델을 분할하는 방법을 결정합니다. |
| 텐서 병렬화 | 모델을 장치 간에 샤딩하여 2개 노드에서 약 1.8배, 4개 노드에서 약 3.2배 속도 향상(README 기준). |
| MLX 백엔드 | 추론에 MLX 라이브러리를 사용하고 통신에 MLX-distributed를 사용합니다. |
| 다중 API 호환성 | OpenAI Chat Completions, Claude Messages, OpenAI Responses, Ollama API를 노출하므로 기존 클라이언트가 즉시 작동합니다. |
| 사용자 지정 모델 로드 | HuggingFace의 모든 모델(4비트/8비트 양자화 변형 포함)을 가져와 클러스터에서 실행합니다. |
| 대시보드 | 내장 웹 UI(http://localhost:52415)가 클러스터 상태, 모델 인스턴스를 표시하고 모델과 채팅할 수 있습니다. |
| 크로스 플랫폼 | macOS 앱(Homebrew cask 또는 DMG)과 macOS 및 Linux용 소스 빌드(현재 Linux에서는 CPU 전용)를 제공합니다. |
빠른 시작 요약
- 설치 – macOS 사용자는
brew install --cask exo또는 DMG 다운로드; Linux/macOS 소스 빌드에는uv,node,rust및 macOS에서는 Metal 툴체인용 Xcode가 필요합니다. - 실행 –
uv run exo는 포트 52415에서 코디네이터, 대시보드 및 API를 시작합니다. 앱은 exo를 실행하는 다른 머신을 자동으로 검색합니다. - RDMA 활성화(macOS 26.2+) – 복구 모드로 재부팅하고
rdma_ctl enable을 실행한 다음 재부팅합니다. - 모델 배포 – 대시보드 또는 REST 엔드포인트(
/instance/previews,/instance,/v1/chat/completions등)를 사용하여 모델을 클러스터에 배치하고 채팅을 시작합니다.
예: API 흐름(README에서)
# 1. 모델을 배치할 수 있는 위치 확인
curl "http://localhost:52415/instance/previews?model_id=mlx-community/Llama-3.2-1B-Instruct-4bit"
# 2. 인스턴스 생성(1단계의 JSON 페이로드 사용)
curl -X POST http://localhost:52415/instance \
-H 'Content-Type: application/json' -d '{"instance": {...}}'
# 3. 인스턴스가 준비될 때까지 대기
curl -N "http://localhost:52415/instance/await?model_id=mlx-community/Llama-3.2-1B-Instruct-4bit"
# 4. 채팅(OpenAI 호환 엔드포인트)
curl -N -X POST http://localhost:52415/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"mlx-community/Llama-3.2-1B-Instruct-4bit","messages":[{"role":"user","content":"What is Llama 3.2 1B?"}],"stream":true}'
# 5. 완료 후 삭제
curl -X DELETE http://localhost:52415/instance/<INSTANCE_ID>
저장소에 표시된 벤치마크
README에는 4개의 M3 Ultra Mac Studio에서 텐서 병렬 처리와 RDMA를 사용하여 실행된 세 가지 벤치마크 스크린샷(Qwen-3 235B, DeepSeek v3.1 671B, Kimi K2 Thinking)이 포함되어 있으며, Jeff Geerling 블로그 게시물에서 가져왔습니다. 멀티 TB VRAM 사용량과 여러 배의 속도 향상을 보여주지만 저장소는 텍스트 형식의 원시 수치를 제공하지 않습니다.
설치 참고 사항 및 플랫폼 특이 사항
- macOS – RDMA 지원을 위해 macOS 26.2 이상 및 Thunderbolt 5 지원 Mac(M4 Pro/Max, M3 Ultra 등)이 필요합니다. 앱은 네트워크 프로필을 설치하며 시스템 설정 변경에 대한 사용자 권한이 필요할 수 있습니다.
- Linux – 현재 CPU 전용; GPU 지원은 "개발 중"입니다. README는 트래픽만 조정하는 노드에 대해
--no-worker플래그를 사용자에게 안내합니다. - 모델 저장소 –
EXO_DEFAULT_MODELS_DIR,EXO_MODELS_DIRS,EXO_MODELS_READ_ONLY_DIRS로 구성 가능. 오프라인 모드(EXO_OFFLINE=true)를 지원합니다. - 네임스페이스 격리 –
EXO_ZENOH_NAMESPACE(또는--namespaceCLI 플래그)를 설정하여 동일한 LAN에서 여러 독립 클러스터를 실행합니다.
누가 사용해야 하나요?
- 여러 Apple silicon 머신을 보유하고 매우 큰 LLM(수천억 매개변수)을 로컬에서 실행하려는 연구원 또는 취미 개발자.
- 클라우드 비용 없이 온프레미스에서 실행되는 OpenAI 호환 엔드포인트가 필요한 개발자.
- Thunderbolt 5를 통한 저지연 노드 간 통신을 실험하려는 팀.
결론
exo는 Apple의 MLX 스택과 Thunderbolt 5 RDMA를 활용하여 로컬 하드웨어에서 프런티어 규모 언어 모델의 분산 추론을 목표로 하는 진정한 오픈 소스 프로젝트입니다. 저장소는 낮은 수준의 장치 검색부터 바로 사용 가능한 HTTP API 및 UI까지 전체 스택을 제공하며 단순한 튜토리얼이나 목록이 아닌 온프레미스 AI 워크로드용 도구로 명확하게 자리 잡고 있습니다.
이 프로젝트를 다룬 글
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트