distributed-llama: 텐서 병렬 처리를 통해 홈 디바이스를 클러스터링하여 대규모 LLM을 실행하는 분산 추론 엔진

distributed-llama: 텐서 병렬 처리를 통해 홈 디바이스를 클러스터링하여 대규모 LLM을 실행하는 분산 추론 엔진

해결하는 문제

Distributed Llama는 여러 홈 디바이스(예: PC, Mac Mini, 또는 Raspberry Pi)를 하나의 강력한 클러스터로 연결하여 LLM 추론을 가속화할 수 있게 해줍니다. 이는 단일 기기의 제한된 하드웨어 리소스를 해결하며, RAM 제약으로 인해 실행할 수 없었던 대규모 모델(예: Llama 3.1 405B)의 실행을 가능하게 합니다.

작동 방식

이 프로젝트는 이더넷 연결을 통해 여러 노드에 걸쳐 신경망을 분할하는 텐서 병렬 처리를 사용합니다. 다음과 같은 루트-워커(root-worker) 아키텍처를 채택합니다:

  • Root Node: 모델 로딩, 가중치 분산 및 신경망 상태의 동기화를 관리합니다. 또한 자신의 네트워크 슬라이스를 처리함으로써 워커 역할도 수행합니다.
  • Worker Nodes: 할당된 신경망 슬라이스를 처리하며, 모델별 별도의 설정이 필요하지 않습니다.

시스템은 2의 거듭제곱 수의 노드(1, 2, 4... 2^n)를 지원하며, 모든 연결된 디바이스의 RAM 사용량을 분할합니다.

대상 사용자

이 프로젝트는 여러 대의 여유 디바이스를 보유하고 있으며, 고가의 엔터프라이즈 하드웨어에 투자하지 않고 대규모 LLM을 로컬에서 실행하고자 하는 사용자를 위해 설계되었습니다. Linux, macOS, Windows를 지원하며, ARM 및 x86_64 AVX2 CPU와 Vulkan을 통한 GPU 추론에 최적화되어 있습니다.

주요 특징

  • 교차 플랫폼 지원: Linux, macOS, Windows, Raspberry Pi에서 작동합니다.
  • 폭넓은 모델 지원: Llama 3.1, 3.2, 3.3, DeepSeek R1 Distill, Qwen 3 모델과 호환됩니다.
  • 하드웨어 유연성: CPU (ARM/x86_64) 및 GPU (Vulkan) 추론을 지원합니다.
  • 유연한 배포: CLI 채팅, 벤치마크 도구 및 API 서버를 포함합니다.

Sources