jundot/omlx
LLM inference server with continuous batching & SSD caching for Apple Silicon — managed from the macOS menu bar
해결하는 문제
로컬 LLM 사용은 종종 편의성과 제어 사이의 절충을 강요합니다. 사용자는 메모리 관리, 모델 로드 유지 또는 시스템 리소스를 소진하지 않고 대규모 컨텍스트를 처리하는 데 어려움을 겪는 경우가 많습니다. oMLX는 Mac 하드웨어에서 LLM, 시각-언어 모델(VLM) 및 임베딩 모델을 높은 성능과 쉬운 관리로 실행할 수 있는 방법을 제공합니다.
작동 원리
Apple Silicon에서 실행되는 oMLX는 vLLM에서 영감을 받은 계층형 KV 캐시 시스템을 사용합니다. 빠른 액세스를 위해 RAM에 "hot" 티어를 유지하고, 메모리가 가득 차면 블록을 오프로드하기 위해 SSD에 "cold" 티어를 유지하여 재계산 없이 요청 간에 컨텍스트를 재사용할 수 있도록 합니다. 시스템은 동시 요청을 처리하기 위해 연속 배칭(continuous batching)을 사용하며, 총 메모리 제한을 강제하여 시스템 전체의 충돌을 방지하는 메모리 가드를 포함합니다.
대상 사용자
코딩(예: Claude Code 사용) 또는 일반 채팅과 같은 작업을 위해 로컬 AI 모델을 실행하려는 macOS 사용자(M1/M2/M3/M4)를 위해 설계되었으며, 개발자를 위한 명령줄 인터페이스와 쉬운 모니터링 및 제어를 위한 네이티브 macOS 메뉴 바 앱을 모두 제공합니다.
주요 특징
- 계층형 KV 캐시: RAM과 SSD 간에 컨텍스트를 유지하여 긴 대화를 실용적으로 만듭니다.
- 멀티 모델 서빙: 단일 서버에서 LLM, VLM, OCR, 임베딩 및 reranker를 지원합니다.
- macOS 통합: 모니터링을 위한 네이티브 SwiftUI 메뉴 바 앱과 관리를 위한 관리자 대시보드가 포함되어 있습니다.
- API 호환성: OpenAI 및 Anthropic API의 드롭인 교체(drop-in replacement)를 제공합니다.
- 자동 관리: LRU 에비션(eviction), 모델 고정 및 모델별 유휴 타임아웃 기능을 통해 메모리 사용을 최적화합니다.