시스템 RAM·CPU·GPU에 맞게 LLM 모델을 자동 최적화하는 터미널 도구

3 weeks ago 9

  • 수백 개의 LLM 모델과 제공자를 대상으로, 사용자의 하드웨어에서 실제로 실행 가능한 모델을 한 번의 명령으로 찾아주는 도구
  • 시스템의 RAM, CPU, GPU를 자동 감지하고, 각 모델을 품질·속도·적합도·컨텍스트 기준으로 점수화해 실행 가능 여부를 표시
  • TUI(터미널 UI)CLI 모드를 모두 지원하며, 다중 GPU·MoE 구조·동적 양자화·속도 추정·로컬 런타임(Ollama, llama.cpp, MLX)과 통합
  • 모델별로 실행 모드(GPU, CPU+GPU, CPU)적합 수준(Perfect, Good, Marginal, Too Tight) 을 분석해 최적 조합을 제시
  • 로컬 환경에서 LLM을 효율적으로 활용하려는 개발자에게 하드웨어 기반 모델 선택 자동화를 제공

주요 기능 개요

  • llmfit은 터미널 기반 도구로, 시스템의 하드웨어 사양을 감지해 LLM 모델이 실제로 실행 가능한지 평가
    • RAM, CPU, GPU 정보를 읽어 모델별로 품질·속도·적합도·컨텍스트 점수를 계산
    • 결과는 인터랙티브 TUI 또는 전통적인 CLI 형태로 표시
  • 다중 GPU, Mixture-of-Experts(MoE), 동적 양자화 선택, 속도 추정, 로컬 런타임 통합 기능 지원
  • 로컬 런타임으로 Ollama, llama.cpp, MLX를 지원하며, 설치된 모델 자동 감지 및 다운로드 가능
  • Plan 모드를 통해 특정 모델에 필요한 최소·권장 하드웨어를 역으로 계산 가능
  • macOS, Linux, Windows, Ascend 등 다양한 플랫폼에서 동작

설치 및 실행

  • macOS/Linux에서는 brew install llmfit 또는 curl -fsSL https://llmfit.axjns.dev/install.sh | sh 명령으로 설치
  • Windows는 cargo install llmfit을 통해 설치 가능
  • 실행 시 llmfit 명령으로 TUI가 열리며, 시스템 사양과 모델 목록이 표시
  • CLI 모드에서는 llmfit --cli, llmfit fit --perfect -n 5, llmfit recommend --json 등 다양한 하위 명령 제공

작동 방식

  • 하드웨어 감지: sysinfo, nvidia-smi, rocm-smi, system_profiler 등을 이용해 RAM·CPU·GPU 정보 수집
  • 모델 데이터베이스: HuggingFace API에서 수백 개 모델을 가져와 data/hf_models.json에 저장
    • Meta Llama, Mistral, Qwen, Google Gemma, Microsoft Phi, DeepSeek, IBM Granite 등 주요 모델 포함
  • 동적 양자화: Q8_0~Q2_K 계층을 순회하며, 사용 가능한 메모리 내에서 최고 품질 양자화를 자동 선택
  • 속도 추정: GPU 메모리 대역폭 기반 계산식 (bandwidth_GB_s / model_size_GB) × 0.55 사용
    • 약 80종 GPU에 대한 대역폭 테이블 내장
  • 적합도 분석: GPU·CPU+GPU·CPU 모드별로 실행 가능 여부와 메모리 여유도 평가

사용자 인터페이스

  • TUI 조작키:
    • f로 적합도 필터, a로 가용성 필터, s로 정렬 기준 변경
    • p로 Plan 모드 진입, d로 모델 다운로드, t로 테마 변경
  • Plan 모드에서는 컨텍스트 길이, 양자화, 목표 토큰 속도 등을 수정하며 필요한 VRAM/RAM/CPU를 계산
  • 테마: Default, Dracula, Solarized, Nord, Monokai, Gruvbox 등 6가지 내장 색상 테마 제공

런타임 및 통합 기능

  • Ollama 통합: 로컬 또는 원격 Ollama 인스턴스(OLLAMA_HOST 환경 변수)와 연결해 설치 모델 감지 및 다운로드
  • llama.cpp 통합: HuggingFace GGUF 파일을 로컬 캐시에 다운로드하고 설치 여부 표시
  • MLX 통합: Apple Silicon용 모델 캐시 및 서버 연동 지원
  • OpenClaw 연동: llmfit-advisor 스킬을 통해 OpenClaw 에이전트가 하드웨어에 맞는 모델을 자동 추천 및 설정

모델 데이터베이스 관리

  • scripts/scrape_hf_models.py 스크립트로 HuggingFace API에서 모델 목록 자동 생성
  • make update-models 명령으로 데이터 갱신 및 바이너리 재빌드
  • 모델은 일반, 코딩, 추론, 멀티모달, 채팅, 임베딩 등 카테고리로 분류
  • GGUF 소스 캐시(data/gguf_sources_cache.json)를 통해 다운로드 경로를 7일간 캐싱

프로젝트 구조 및 배포

  • 주요 모듈: hardware.rs(하드웨어 감지), models.rs(모델 DB), fit.rs(점수 계산), providers.rs(런타임 통합), tui_app.rs(UI 상태 관리)
  • Cargo.toml에 메타데이터 포함, cargo publish로 crates.io 배포 가능
  • MIT 라이선스 기반 오픈소스

대안 도구

  • llm-checker(Node.js 기반): Ollama를 통해 실제 모델을 실행·벤치마크하는 방식
    • MoE 구조는 지원하지 않으며, 모든 모델을 밀집형으로 처리

플랫폼 지원

  • Linux/macOS(Apple Silicon): 완전 지원
  • Windows: RAM·CPU 감지 및 NVIDIA GPU(nvidia-smi) 지원
  • GPU 감지 실패 시 --memory=<SIZE> 옵션으로 VRAM 수동 지정 가능

Read Entire Article