21P by neo 2달전 | favorite | 댓글 1개
  • 비싼 NVIDIA GPU를 잊고, 기존의 아이폰, 아이패드, 안드로이드, 맥, 리눅스 같은 장비 등을 묶어서 하나의 강력한 GPU로 활용
  • LLaMA 및 다양한 모델 지원
  • "동적 모델 파티셔닝"으로 현재 네트워크 토폴로지 및 사용 가능한 디바이스 리소스를 기반으로 모델을 최적으로 분할
    • 단일 디바이스에서 실행할 수 있는 것보다 더 큰 규모의 모델을 실행 가능
  • 자동 디바이스 디스커버리로 다른 기기를 찾음
  • ChatGPT 호환 API 제공
  • 각 기기들은 Master-Worker 구조가 아닌 p2p 방식으로 연결(기본 분할 전략은 링 메모리 가중 분할)
  • 추론 엔진 지원:
    • ✅ MLX
    • ✅ tinygrad
    • 🚧 llama.cpp
  • 네트워킹 모듈을 지원:
    • ✅ GRPC
    • 🚧 Radio
    • 🚧 Bluetooth
  • 알려진 문제
    • 라이브러리가 빠르게 발전하고 있어 iOS 구현이 Python보다 뒤처지고 있음
    • 장기적으로는 별도의 구현을 유지할 필요가 없도록 통합 접근 방식을 추진할 예정임

GN⁺의 정리

  • exo는 다양한 장치를 하나의 강력한 AI 클러스터로 통합할 수 있는 실험적 소프트웨어임
  • 자동 장치 발견, 동적 모델 분할 등 다양한 기능을 제공하여 단일 장치보다 더 큰 모델을 실행할 수 있음
  • ChatGPT 호환 API를 제공하여 쉽게 모델을 실행할 수 있음
  • iOS 구현이 뒤처지고 있는 문제를 해결하기 위해 통합 접근 방식을 추진 중임
Hacker News 의견
  • Apple Silicon 전용 라이브러리인 mlx가 필요함. "iPhone, iPad, Android, Mac, Linux, pretty much any device"에서 작동한다고 하는데, 실제로 테스트된 적이 있는지 의문임
  • 로컬 네트워크에서 최적화된 이 시스템을 크라우드소싱으로 쉽게 사용할 수 있는 방법에 대해 고민 중임. 사무실 내 모든 사람이 네트워크에 쉽게 참여하거나, QR 코드를 스캔하여 도메인 특정 모델에 기여할 수 있는 방법을 찾고 있음
  • 이 아이디어는 훌륭하고 사용자 친화적임. 여러 오래된 기기를 유용하게 변환할 가능성이 있음. 하지만 tok, 지연 시간 및 예제 설정에 대한 결과를 제공했으면 좋겠음
  • GitHub의 paddler를 윈도우에서 두 대의 기기에서 로드 밸런싱을 위해 작동시켰음. Llama 400B를 여러 기기에서 실행하는 데 유용할 것임. 하지만 윈도우 지원이 아직 없음
  • 이 기능은 단일 기기에서 실행할 수 있는 것보다 더 큰 모델을 실행할 수 있게 해줌. 그러나 구체적인 작동 방식에 대한 설명이 부족함. 예를 들어, 신경망의 일부 레이어가 deviceA에 있고 다른 레이어가 deviceB에 있다면, 매번 토큰이 생성될 때마다 deviceA의 마지막 레이어 출력 데이터를 deviceB로 전송해야 함
  • Swarm 컴퓨팅은 모든 컴퓨팅의 표준이 되어야 함. 우리가 소유한 모든 기기에서 사용되지 않는 CPU가 너무 많음
  • 네트워크 병목 현상 때문에 작동하지 않을 것임. 기가바이트의 데이터를 전송해야 함. 따라서 좋은 인터넷(20mb/s 이상)과 좋은 기기가 필요함. 이 시스템은 트위터에서 멋진 데모로 끝날 것임. 틀렸다는 것을 증명해주길 바람
  • 클라우드는 컴퓨팅/가격 면에서 이길 수 없지만, 로컬로 이동하면 프라이버시 문제를 해결할 수 있음. 세상은 컴퓨팅에 대한 두 번째 수정안이 필요함
  • 예전에는 Mac, PC 등에서 로컬로 모델을 실행하는 것에 대해 흥미를 느꼈음. 하지만 이제 대부분의 유용한 AI 컴퓨팅은 클라우드에서 이루어질 것이라고 생각함. 집 네트워크에서 느린 Llama3 모델을 실행할 수 있지만, 클라우드 서비스에서 저렴하거나 무료로 실행할 수 있는데 굳이 그럴 필요가 없음. Apple이 로컬 AI 모델을 추진하고 있지만, 배터리 성능에 미치는 영향에 대해 심각한 우려가 있음
  • 대형 클러스터가 RDMA 네트워크를 사용하여 통신 오버헤드가 병목 현상이라고 보고하는데, 이 시스템이 가정 네트워크에서 대규모 병목 현상을 겪지 않는 것이 어떻게 가능한지 궁금함