Mac에서 llama.cpp 사용하기: 파워 유저 가이드

laptop_mac macOS Sonoma Intermediate schedule 8 min read
Author by Alex Rivera • May 14, 2024

최대 성능, 완전한 제어권, 그리고 불필요한 군더더기를 원천 차단하고 싶다면, 소스 코드에서 직접 llama.cpp를 컴파일하는 것이 유일한 정답이다. Apple Silicon에서 정확히 어떻게 수행하는지 알아보자.

Step 1 소개

llama.cpp는 Ollama 및 LM Studio를 포함한 거의 모든 로컬 AI 도구를 구동하는 기반 C++ 엔진이다. 터미널에서 네이티브로 직접 실행함으로써 UI 오버헤드를 완전히 제거하고 성능 플래그에 대한 전적인 제어권을 확보할 수 있다.

Step 2 사전 요구 사항

C++ 코드를 컴파일하려면 Apple의 Xcode Command Line Tools와 Homebrew가 설치되어 있어야 한다.

Terminal
xcode-select --install
brew install cmake python3

Step 3 컴파일

레포지토리를 클론하고, Apple GPU를 활용할 수 있도록 LLAMA_METAL=1 플래그를 사용하여 컴파일을 수행한다.

Terminal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j LLAMA_METAL=1

Step 4 가중치 다운로드

.gguf 형식의 모델을 다운로드해야 한다. huggingface-cli를 사용하여 Llama 3 8B를 다운로드한다.

Terminal
pip3 install huggingface-hub
huggingface-cli download bartowski/Meta-Llama-3-8B-Instruct-GGUF Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --local-dir ./models

Step 5 추론 실행

이제 모델과 대화를 시작해 보자. -ngl 99 플래그는 엔진이 모든 레이어를 Mac의 GPU로 오프로드하도록 지시한다.

Terminal
./llama-cli -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf \
  -n 512 \
  -ngl 99 \
  --color \
  -i -r "User:" \
  -p "You are a helpful AI assistant.\n\nUser: Hello!\nAI:"

Step 6 로컬 서버

터미널에서 직접 OpenAI 호환 API 엔드포인트를 호스팅하고 싶다면, llama-server 바이너리를 사용하라:

Terminal
./llama-server -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf -ngl 99 --port 8080

이제 고성능 백엔드가 http://127.0.0.1:8080에서 수신 대기 중이다.