t8/hypura

Run models too big for your Mac's memory

해결하는 문제

Hypura는 Apple Silicon 맥에서 물리적 메모리(RAM/GPU)에 들어가지 못할 정도로 큰 대규모 언어 모델(LLM)을 실행할 수 있게 해줍니다. 일반 소비자용 하드웨어의 제한된 메모리 용량으로 거대한 모델을 로드하려 할 때 흔히 발생하는 시스템 충돌과 "스왑-스래싱"을 방지합니다.

작동 방식

Hypura는 스토리지 티어를 인지하는 추론 스케줄러로 작동합니다. 모델 아키텍처와 하드웨어 능력을 분석하여 모델 텐서를 세 가지 티어에 분배합니다: GPU(Metal), RAM, NVMe 스토리지.

  • GPU(Metal): 주로 어텐션 레이어, 정규화, 임베딩과 같은 자주 접근되는 핵심 구성 요소를 저장.
  • RAM: GPU 워킹 세트에 들어가지 못하는 오버플로우 레이어를 보유.
  • NVMe: 나머지 레이어를 저장하며, 직접 I/O와 사전 프리페치를 사용해 포워드 패스 전에 필요 시 스트리밍.

Mixture-of-Experts(MoE) 모델의 경우, "에이전트 스트리밍"을 사용하여 토큰에 필요한 특정 에이전트만 로드함으로써 I/O를 75% 감소시킵니다. 밀도형 모델의 경우, "FFN 스트리밍"을 사용하여 피드포워드 네트워크 텐서를 동적 풀 버퍼를 통해 스트리밍합니다. 또한 중복된 SSD 읽기를 최소화하기 위한 뉴런 캐시도 포함되어 있습니다.

대상 사용자

Apple Silicon 맥을 사용하며, Llama 70B나 Mixtral 8x7B와 같이 기존에 사용 가능한 통합 메모리를 초과하는 고파라미터 모델을 실행하고자 하는 개발자 및 AI 애호가.

주요 특징

  • OOM 충돌 방지: 원래 llama.cpp에서는 실행 불가능한 모델도 실행 가능하게 함.
  • 오버헤드 없음: 이미 메모리에 들어가는 모델은 Metal GPU 최고 속도로 실행.
  • 하드웨어 인식: GPU, RAM, NVMe 대역폭을 자동으로 프로파일링하여 텐서 배치 최적화.
  • Ollama 호환: HTTP API를 포함하여 Ollama와 통합되는 도구의 즉시 대체 가능.
  • SSD 안전: 추론 중 읽기 전용 작업만 수행하여 SSD 마모 방지.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트