llama.cpp 및 llama.app: 로컬 LLM 추론 및 생태계

llama.cpp는 범용적이고 고성능인 로컬 LLM 추론을 제공합니다

lama.cpp는 소비자용 노트북부터 엔터프라이즈 클러스터에 이르기까지 다양한 하드웨어에서 대규모 언어 모델(LLM)을 실행하도록 설계된 하드웨어 불가지론적(hardware-agnostic) 추론 엔진입니다. Apple Silicon (M Pro, M Max, M Ultra), NVIDIA GPUs (RTX 3090, 4090, 5090, A100, H100, B200), AMD GPUs (Radeon RX, MI300), Intel Arc, 그리고 표준 CPU를 포함한 다양한 아키텍처 전반에서 성능을 최적화하기 위해 수동으로 튜닝된 커널을 활용합니다.

llama.app 및 'llama serve'를 통한 간소화된 배포

lama.app은 llama.cpp의 공식 홈 역할을 하며, 로컬 모델을 배포하기 위한 더욱 간소화된 사용자 경험을 제공합니다. 주요 추가 사항은 모델을 로컬에서 호스팅하는 프로세스를 단순화하는 llama serve 명령입니다.

에이전트 기반 코딩 워크플로우를 원하는 사용자는 llama.cpp를 Pi 코딩 에이전트와 결합할 수 있습니다. 설정 프로세스는 세 가지 주요 단계로 구성됩니다:

  1. llama serve를 실행하여 모델을 호스팅합니다.
  2. pi install git:github.com/huggingface/pi-llama를 통해 pi-llama 플러그인을 설치합니다.
  3. pi를 실행하여 에이전트 사용을 시작합니다. 에이전트는 API 키나 외부 설정 없이도 로컬 모델을 자동으로 감지합니다.

기술적 역량 및 최적화

멀티 모델 지원 및 구성

lama-server는 멀티 모델 배포를 지원합니다. 사용자는 테스트를 통해 최적화된 하드웨어별 파라미터를 사용하여 여러 모델을을 가리키는 .ini 파일을 정의할 수 있습니다. 이를 통해 API 클라이언트가 특정 모델을 선택하면 시스템이 라우팅 및 최적화를 자동으로 처리합니다.

성능 향상

사용자는 "실질적으로 무료인" 성능 향상을 위해 ngram-mod (또는 spec-default)를 사용하는 것이 권장됩니다. 커스텀 하네스를 구축하는 개발자의 경우, 빈번한 모델 전환이 필요한 멀티 모델 설정에서는 llama-server보다 llama-cpp-python을 사용하는 것이 권장됩니다.

커뮤니티 인사이트 및 생태계 비교

Ollama 및 기타 러너와의 비교

커뮤니티 논의에서는 llama.cpp와 Ollama와 같은 상위 수준의 래퍼(wrapper) 간의 차이점이 강조됩니다. 일부 사용자는 llama.cpp를 "AI의 ffmpeg"라고 설명하며, Ollama와 같은 도구들이 종종 llama.cpp의 핵심 기능에 quanh한 래퍼로 재브랜딩된 것임을 언급합니다.

다른 사용자는 특히 오래된 NVIDIA 하드웨어(예: RTX 3070)에서 vLLM에 비해 llama.cpp가 더 매끄러운 설치 경험을 제공한다고 보고했습니다. vLLM의 경우 CUDA 드라이버 재설치가 필요할 수 있습니다.

하드웨어별 문제 사항

llama.cpp는 범용 호환성을 목표로 하지만, 일부 사용자는 특정 문제를 보고했습니다:

  • AMD/ROCm 지원: Framework 13 노트북 사용자의 일부는 통합 AMD GPU에 대한 네이티브 ROCm 지원에서 퇴보(regression)가 발생했음을 경험했으며, 이로 인해 해결책으로 Vulkan 장치를 사용해야 했습니다.
  • Intel Arc: 일부 사용자는 Intel Arc A770 GPU에서 OpenVINO 지원을 활성화한 상태로 llama.cpp를 컴파일하는 데 어려움을 겪었다고 보고했습니다.

배포 대안

셸 스크립트(curl | sh)를 경계하는 사용자들을 위해, 커뮤니티는 저장소를 클론하고 CMake를 사용하여 소스에서 빌드하는 것을 권장합니다:

git clone https://github.com/ggml-org/llama.cpp
cmake -B build
cmake --build build --config Release

"Git clone llama.cpp를 실행하고 빌드하세요, 어렵지 않습니다... 기본 사항을 위한 단지 몇 단계뿐입니다."

Hugging Face와의 통합

lama.cpp는 최근 Hugging Face의 일부가 되었으며, 이는 생태계를 더욱 통합합니다. macOS 사용자는 llama.app을 설치하기 전에 Homebrew를 통해 llama.cpp를 설치하면 업데이트가 더 쉬워집니다. llama.app의 릴리스 주기가 llama.cpp보다 느릴 수 있기 때문입니다. 또한, Hugging Face CLI (hf)를 통해 설치된 모델은 llama.app에서 자동으로 감지됩니다.

Sources

관련

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