본문 바로가기
C.W.K.
Stream
Lesson 02 of 06 · published

MLX와 llama.cpp/GGUF — CPU에서 출발한 차이

~12 min · llama-cpp, gguf, cpu-inference

Level 0호기심
0 XP0/51 lessons0/15 achievements
0/100 XP to next level100 XP to go0% complete

출발점이 다르면 최적화도 다르다

llama.cpp는 CPU 세계에서 태어났어. 첫 목표는 CPU만으로도 쓸 만한 속도로 LLM을 돌리는 것이었고, GPU 가속은 나중에 차근차근 붙었지. llama.cpp가 개척한 GGUF 형식도 그 뿌리를 드러내. 모델 하나를 파일 하나에 담고, Linux와 Windows, Mac의 CPU·GPU 실행 환경 사이를 옮기기 쉽게 설계됐어.

MLX는 GPU와 통합 메모리 세계에서 출발했어. Apple Silicon의 계산 방식을 전제로 삼아 Metal에 바로 대응하는 커널과 CPU·GPU가 함께 보는 배열을 제공하지. 이 전제는 Mac에서는 강점이지만, Mac을 벗어나면 한계가 돼.

llama.cpp가 앞서는 곳

  • 여러 운영체제에 배포 — 같은 실행 파일을 Linux와 Windows, Mac에서 쓸 수 있어. Apple 밖의 하드웨어까지 배포해야 한다면 llama.cpp가 분명한 선택이야.
  • CPU 중심 추론 — CPU만 있는 기기에서도 쓸 만하게 돌아. MLX는 Apple Silicon의 GPU를 전제로 해.
  • 넓은 양자화 선택지 — GGUF는 MLX의 아핀 양자화보다 더 많은 방식을 지원해. Q2_K부터 Q8_0까지 여러 K-quant가 있어서 크기를 극한까지 줄일 때 전통적으로 유리하지.
  • 파일 하나로 옮기기.gguf 파일 하나에 모델 전체가 들어가므로 배포하거나 새 환경에 놓기 쉬워.

MLX가 앞서는 곳

  • Apple Silicon에 맞춘 성능 — MLX 커널은 번역층 없이 Metal을 직접 겨냥해. Mac에서는 보통 llama.cpp의 Metal 백엔드보다 작게나마, 때로는 제법 빠를 수 있어.
  • Python 연동 — MLX는 Python을 중심으로 설계됐어. llama.cpp는 C++이 중심이고 Python은 래퍼를 통해 연결해.
  • 파인튜닝 — MLX에는 파인튜닝을 위한 일급 작업 흐름이 있어(트랙 5). llama.cpp는 추론에 집중하지.
  • 함수 변환과 연구mx.grad, mx.vmap, 맞춤 모델 구조는 MLX의 영역이야. llama.cpp는 서빙 실행 환경이지 연구용 프레임워크가 아니야.

실전에서 고르는 법

Mac에만 배포한다면 MLX를 먼저 보고, 여러 운영체제를 아우른다면 llama.cpp와 GGUF를 먼저 봐. 이 선택은 Mac 한 대에서 누가 조금 더 빠른가보다 어디에 배포할지, 어떤 언어 생태계를 쓸지, 추론 뒤에 모델로 무엇을 할지에 달렸어.

Code

같은 모델을 llama.cpp와 MLX로 실행하기(개요)·bash
# llama.cpp side (assumes a .gguf file you've downloaded)
./llama-cli -m models/llama-3-1b.Q4_0.gguf -p "Hello" -n 30

# MLX side
python -c "from mlx_lm import load, generate; m, t = load('mlx-community/Llama-3.2-1B-Instruct-4bit'); print(generate(m, t, prompt='Hello', max_tokens=30))"

# Same conceptual workload, two different command shapes.
# Compare wall-clock; on Mac, MLX usually wins by a modest margin.

External links

Exercise

llama.cpp가 설치돼 있거나 설치할 생각이 있다면, 같은 기반 모델과 같은 프롬프트를 llama.cpp(GGUF Q4)와 mlx-lm(MLX Q4)에서 각각 실행해 시간을 재. 차이도 보되, 둘 다 일반적인 대화형 사용에는 충분히 빨라서 차이가 생각보다 작다는 점도 확인해. 평소 작업에는 무엇을 고를지와 그 이유를 두 문장으로 적어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.