실행 프로그램과 확장
Apple Silicon에서 MLX로 로컬 AI 실행: Mac용 프레임워크와 모델 도구 구분
먼저 Mac의 칩과 원하는 모델 파일을 확인하세요. MLX가 있다고 모든 CUDA 코드나 모델이 자동으로 옮겨지지는 않습니다.
Apple Silicon Mac에서 로컬 언어 모델을 실행할 때 MLX1는 연산 프레임워크, MLX-LM2은 언어 모델 도구, Metal3은 GPU4 실행 기반, PyTorch MPS5는 다른 프레임워크의 백엔드입니다. GUI 앱도 별도의 선택지입니다. CPU6와 GPU가 공유하는 통합 메모리7는 운영체제, 앱, 모델, KV 캐시8도 함께 사용하므로 설치된 용량을 전부 모델에 쓸 수 없습니다. Intel Mac 지원, CUDA9 코드, 모델별 호환성을 확인한 뒤 목적에 맞는 실행 경로를 고릅니다.
Apple Silicon에서 MLX를 쓰면 무엇이 달라질까요?
Apple Silicon Mac에서 언어 모델을 하나 실행하려면 먼저 ‘이 Mac에 관하여’에서 M 시리즈 칩인지 확인하세요. 이 가이드는 MLX용 체크포인트10를 MLX-LM으로 불러와 짧은 대화를 실행하는 경로를 다룹니다. Intel Mac, CUDA 전용 코드, MLX 가중치가 없는 모델은 이 명령으로 자동 변환되지 않습니다. 각 도구 이름은 실행 과정에서 필요한 역할을 구분할 때 설명하겠습니다.

이름 네 개는 서로 다른 일을 가리킵니다
이 실행 경로에서 MLX는 Apple silicon의 CPU·GPU 연산을 제공하는 프레임워크이고, MLX-LM은 그 위에서 언어 모델을 불러와 추론하거나 미세 조정하는 Python 패키지입니다. 짧은 대화를 시작하려면 MLX-LM이 읽을 수 있는 체크포인트와 실행 명령도 필요합니다. 선택한 저장소에 MLX용 가중치나 호환 설정이 없다면 이름이 같은 원본 모델만으로는 실행할 수 없습니다.
MLX-LM은 그중 언어 모델의 추론과 미세 조정을 위해 만들어진 Python 패키지입니다. 모델을 지정해 터미널에서 한 번 실행하거나, mlx_lm.chat으로 대화 세션을 열 수 있습니다. 따라서 MLX는 연산 프레임워크, MLX-LM은 언어 모델을 실제로 불러오는 도구라고 구분하면 됩니다. 선택한 Hugging Face 저장소에 MLX용 가중치와 호환 구성이 없다면, 이름이 비슷한 원본 모델이 있다는 이유만으로 실행이 보장되지는 않습니다.
Metal은 macOS에서 그래픽과 병렬 계산을 실행하는 Apple의 저수준 GPU 기술입니다. MLX가 Mac에서 GPU 연산을 수행할 때 쓰이는 실행 기반이라고 보면 됩니다. Metal 자체는 모델 목록이나 대화 인터페이스가 아닙니다. 반면 PyTorch MPS는 PyTorch11에서 Apple GPU를 쓰기 위한 백엔드입니다. 같은 Mac에서 돌더라도 PyTorch 모델과 MLX용 모델은 사용하는 패키지와 모델 파일 형식, 실행 경로가 다를 수 있습니다.
LM Studio처럼 그래픽 화면을 제공하는 앱은 또 다른 범주의 선택지입니다. GUI 앱은 모델을 내려받고 대화하는 과정을 화면에서 안내할 수 있고, 내부적으로 MLX 같은 엔진을 포함하거나 선택하게 할 수 있습니다. 터미널의 MLX-LM과 GUI 앱을 비교할 때는 ‘어느 것이 더 빠른가’부터 묻기보다, 내가 원하는 모델 형식을 지원하는지, 설정을 어디까지 조정할 수 있는지, 대화 내용을 어떻게 관리하는지 확인해야 합니다. 기능과 지원 모델은 앱 버전마다 달라질 수 있습니다.

먼저 칩 이름을 확인해야 하는 이유
MLX의 Mac용 설치와 최적화 경로는 Apple Silicon을 전제로 합니다. Mac의 ‘이 Mac에 관하여’ 화면에서 칩이 M 시리즈인지 확인하세요. Intel 프로세서가 표시된다면 Apple Silicon용 MLX 명령을 그대로 따라도 같은 경로로 실행되지 않습니다. 이 경우에는 GGUF12를 지원하는 llama.cpp 계열 도구나, Intel Mac을 명시적으로 지원하는 GUI 엔진을 따로 비교하는 편이 낫습니다. Mac이라는 제품 이름만으로 같은 가속 기능이 있다고 보면 안 됩니다.
여기서 CUDA를 떠올릴 수도 있습니다. CUDA용 명령에 .to("cuda")가 있거나 NVIDIA GPU를 지정하는 코드가 있다면, 그 부분을 mlx로 이름만 바꾸어 Apple Silicon에서 사용할 수 있는 것은 아닙니다. MLX 프로젝트는 Linux CUDA 백엔드도 안내하지만, 이는 별도로 구성하는 MLX의 또 다른 실행 경로입니다. PyTorch CUDA 모델을 자동으로 MLX 모델로 바꾸거나, CUDA 전용 확장과 연산이 Mac에서 그대로 동작한다는 뜻은 아닙니다. 모델 구현, 가중치 형식, 커널과 의존성까지 따로 확인해야 합니다.

통합 메모리에서도 작업 공간은 남겨야 합니다
Apple Silicon의 CPU와 GPU는 별도 VRAM13 칩 대신 물리 메모리 풀을 공유합니다. MLX 배열은 이 공유 메모리 안에 놓일 수 있어, CPU와 GPU 사이에서 배열을 복사하는 과정을 줄이는 설계가 가능합니다. 이 점은 모델 추론14을 구성할 때 유용하지만, 장착된 메모리 총량을 늘려 주는 기능은 아닙니다. macOS와 다른 앱이 먼저 메모리를 쓰고, 모델 가중치와 계산 중간값, 대화가 길어지며 쌓이는 KV 캐시도 같은 자원을 사용합니다.
가령 24GB 통합 메모리가 있는 Mac이라고 해서 24GB 전체를 모델 가중치에 배정할 수 있는 것은 아닙니다. 모델이 로드될 때 필요한 공간만 보는 것도 부족합니다. 질문을 길게 넣으면 입력을 처리하는 동안 작업 공간이 더 필요하고, 답을 생성하면서 KV 캐시도 커집니다. 브라우저나 이미지 편집 앱을 함께 열어 두면 모델에 남는 여유는 더 줄어듭니다. 따라서 양자화15된 파일 크기만 보고 ‘이 모델은 이 Mac에서 된다’고 결론 내리지 말고, 다른 앱을 포함한 실제 메모리 압력과 작업 길이를 함께 살펴야 합니다.
양자화는 모델 수치를 더 적은 비트로 표현해 가중치 메모리를 줄일 수 있는 방법입니다. 하지만 양자화된 모델도 로드 중 임시 메모리, 계산 공간, KV 캐시를 사용합니다. 같은 모델 이름에 4비트 파일이 있다고 해도, 양자화 방식과 모델 구조, 실행 도구가 다르면 결과와 요구량이 달라질 수 있습니다. 메모리가 빠듯할 때는 더 작은 호환 체크포인트를 고르는 방법이 있지만, 답변 품질이나 지원 기능이 달라질 수 있으므로 실제로 확인해야 합니다.
내 모델이 MLX 경로에 있는지 확인하세요
원하는 모델 카드에서 MLX용 체크포인트가 있는지 확인한 뒤, MLX-LM 지원 목록에서 모델 구조를 찾고 짧은 텍스트 생성을 시험하세요. Hugging Face에 PyTorch 버전만 있다고 MLX 버전도 있는 것은 아닙니다. 커뮤니티 변환본은 변환 날짜, 원본 모델 버전, 토크나이저 설정, 라이선스를 확인하세요. 이미지 입력이나 도구 호출16이 필요하면 기본 생성이 성공한 다음 각각 따로 시험합니다.
MLX-LM은 많은 언어 모델을 지원하지만 ‘모든 언어 모델’은 아닙니다. 같은 계열이라도 모델 카드가 요구하는 특별한 토크나이저 코드나 사용자 코드 실행 허용이 필요한 경우가 있습니다. 알 수 없는 코드를 신뢰하도록 설정하기 전에 출처와 코드를 검토하고, 필요하지 않으면 해당 허용 옵션을 켜지 마세요. 특정 아키텍처나 기능이 지원되는지 불분명하면 기본 생성부터 확인하고, 이미지 입력이나 도구 호출 같은 기능은 해당 저장소와 MLX-LM의 현재 버전에서 별도로 검증합니다.
목적에 따라 터미널과 GUI를 고르기
모델을 빠르게 시험하고 Python 코드에서 직접 불러오려는 사람에게는 MLX-LM이 간단한 시작점입니다. 공식 저장소가 안내하는 기본 모델 중 하나를 골라 mlx_lm.generate나 대화형 mlx_lm.chat으로 실행할 수 있습니다. 반면 모델을 클릭해서 고르고 로컬 API17 연결이나 대화 기록 관리까지 한 화면에서 하려면 MLX 엔진을 지원하는 GUI 앱이 더 편할 수 있습니다. 다만 그래픽 앱이 내부에서 MLX를 쓴다고 해서 MLX-LM의 모든 옵션이나 모든 Hugging Face 모델을 제공하는 것은 아닙니다.
PyTorch MPS를 이미 사용하는 개발자는 기존 PyTorch 코드와 모델이 MPS에서 동작하는지 확인하는 것이 자연스러운 다음 단계일 수 있습니다. 같은 하드웨어라는 이유로 MLX와 PyTorch MPS의 성능을 미리 순위 매길 수는 없습니다. 모델 구현, 연산, 라이브러리 버전, 입력 크기, 메모리 상태가 결과를 바꿉니다. 가능한 한 같은 모델 계열과 비슷한 양자화, 같은 입력·출력 길이에서 비교하되, 두 실행 경로의 구현 차이도 남습니다. 조건을 맞추기 어렵다면 어떤 항목이 달랐는지 함께 기록하세요. 다른 사람이 서로 다른 모델이나 설정으로 얻은 tok/s를 곧바로 대조하면 실행 조건 차이를 성능 차이로 오해할 수 있습니다.
이미 Linux와 NVIDIA GPU를 기준으로 만들어 둔 CUDA 프로젝트를 그대로 Mac으로 옮기려는 목적이라면, MLX를 자동 변환기로 기대해서는 안 됩니다. MLX를 위해 지원되는 체크포인트와 실행 예제가 있는지 먼저 찾아보고, 없다면 CUDA 환경을 유지하거나 llama.cpp·GUI 앱처럼 해당 모델을 별도로 지원하는 경로를 확인하세요. 사진·음성 모델을 실행하려는 경우에도 MLX-LM 안내만으로 지원을 판단할 수 없습니다. MLX 생태계에는 언어 모델 외의 별도 도구가 있지만, 각 도구가 지원하는 구조와 기능을 따로 살펴야 합니다.
이미 갖고 있는 Apple Silicon Mac에서 지원되는 언어 모델을 터미널이나 Python으로 시험한다면 MLX-LM은 현실적인 출발점입니다. 원하는 모델의 MLX 체크포인트가 있고, 양자화 상태와 문맥 길이, 함께 켜 둘 앱을 고려해 메모리에 여유가 있는지도 확인하세요. 설치와 모델 선택을 화면에서 처리하는 편이 중요하면 MLX를 제공하는 GUI 앱을 살펴볼 수 있습니다. Intel Mac이라면 Apple Silicon MLX 가이드를 그대로 따를 수 없고, CUDA용 모델과 스크립트도 자동으로 옮겨지지 않습니다. 먼저 칩, 모델 체크포인트, 필요한 기능, 실제 메모리 여유 네 가지를 확인한 뒤 도구를 정하세요.
용어 각주
MLX — Apple이 개발하는 머신러닝 프레임워크입니다. Apple silicon에서는 통합 메모리와 Metal을 활용하며, 별도로 Linux 실행 경로도 제공합니다. 지원 모델과 기능은 MLX 기반 도구마다 다릅니다.
본문으로 돌아가기MLX-LM — MLX를 사용해 언어 모델을 불러오고 추론·미세 조정을 수행하는 패키지입니다. MLX 프레임워크 자체나 모든 MLX 기반 앱을 뜻하지는 않습니다.
본문으로 돌아가기Metal — Apple 기기에서 그래픽과 GPU 병렬 계산을 실행하는 저수준 기술입니다. 모델을 골라 대화하는 앱 자체와는 다릅니다.
본문으로 돌아가기GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.
본문으로 돌아가기PyTorch MPS — PyTorch에서 Apple GPU로 연산을 보내는 실행 백엔드입니다. MLX와 별도 경로이며, 사용할 연산과 모델이 MPS에서 지원되는지 확인해야 합니다.
본문으로 돌아가기CPU — 컴퓨터에서 일반적인 프로그램 명령을 실행하는 중앙 처리 장치입니다. AI 작업에서는 GPU 등 다른 프로세서와 역할을 나누기도 합니다.
본문으로 돌아가기통합 메모리 — CPU와 GPU가 같은 물리 메모리 풀을 공유하는 구조입니다. 메모리 용량이 자동으로 늘어나는 것은 아니며, 실제 사용 가능량은 시스템에 따라 다릅니다.
본문으로 돌아가기KV 캐시 — 어텐션에서 이전 토큰의 키·값을 저장해 다음 토큰 생성 때 재사용하는 메모리입니다. 문맥 길이와 배치 크기에 따라 용량이 달라집니다.
본문으로 돌아가기CUDA — NVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다. CUDA용으로 만든 프로그램은 다른 GPU에서 그대로 동작한다고 보장되지 않습니다.
본문으로 돌아가기체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.
본문으로 돌아가기PyTorch — AI 모델을 만들고 실행하는 소프트웨어 프레임워크입니다. 모델과 함께 호환되는 PyTorch 버전 및 하드웨어 지원도 확인해야 합니다.
본문으로 돌아가기GGUF — 모델 정보를 담는 파일 형식으로 llama.cpp 계열 도구에서 널리 사용됩니다. 파일 형식만으로 특정 하드웨어 호환성이나 속도가 보장되지는 않습니다.
본문으로 돌아가기VRAM — 그래픽카드의 GPU가 사용하는 메모리입니다. 모델 가중치와 계산 중간값을 저장하며 시스템 RAM과 구분됩니다.
본문으로 돌아가기모델 추론 — 학습된 모델을 사용해 입력에 대한 출력을 계산하는 과정입니다. 이 사이트에서 로컬 추론은 사용자의 기기에서 모델을 실행하는 경우를 뜻합니다.
본문으로 돌아가기양자화 — 모델의 수치를 더 적은 비트로 표현하는 방법입니다. 메모리 사용량과 함께 정확도나 실행 속도도 달라질 수 있으며, 영향은 형식과 구현에 따릅니다.
본문으로 돌아가기도구 호출 — 모델이 파일 읽기·검색·명령 실행 같은 외부 기능의 이름과 인자를 요청하는 형식입니다. 요청을 실제로 실행할지는 에이전트 런타임과 권한 설정이 결정합니다.
본문으로 돌아가기API — 프로그램의 기능을 다른 코드에서 호출하기 위한 약속된 인터페이스입니다. API라는 말만으로 외부 서버 전송을 뜻하지는 않습니다.
본문으로 돌아가기