이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
맥 로컬 LLM 메모리 계산, 16GB에 들어가는 모델 고르는 법
맥 로컬 LLM을 돌리기 전에, 내 맥에 어떤 크기의 모델이 들어가는지 계산으로 미리 거르는 방법을 정리했습니다. 모델 파일 크기 구하는 식, 통합 메모리 중 GPU가 쓸 수 있는 몫, 메모리 대역폭으로 보는 속도 상한까지 세 숫자를 차례로 구하고, 16GB·

16GB 맥에서 모델이 쓸 수 있는 몫은 약 12GB
로컬 모델은 내 컴퓨터 안에서 도는 AI를 말합니다. 클라우드 API는 쓴 만큼 요금이 나가고, 보낸 문장이 밖으로 나갑니다. 로컬 모델은 둘 다 없지만, 대신 내 맥의 메모리가 돌릴 수 있는 모델의 크기를 정합니다.
결론부터 적으면, 16GB 맥에서 모델에 쓸 수 있는 몫은 약 12GB로 잡는 것이 출발점입니다. 통합 메모리 전체가 아니라 GPU가 가져갈 수 있는 몫과 비교해야 한다는 점이 핵심입니다. 다만 이 비율(약 75%)은 Apple 공식 문서에 적힌 값이 아니라 커뮤니티에서 잰 값이라, 참고선으로 쓰고 내 맥의 실제 값은 직접 확인하는 편이 정확합니다.
아래 계산에 쓴 기기 기준은 기본 M4 칩입니다. MacBook Air M4 32GB와 Mac mini M4 16~24GB 구성처럼 Pro·
세 가지는 구분해 둡니다.
- 이 글의 숫자는 문서값과 그것으로 한 계산값입니다. 초당 토큰 실측값은 없습니다.
- 계산으로 "경계 밖"이라는 말은 올려 봤더니 실패했다는 뜻이 아닙니다. 계산상 여유가 없다는 뜻입니다.
- 계산상 "범위 안"이어도 실제로 잘 돈다는 보장은 아닙니다.
숫자 1. 모델 파일 크기: "4비트"가 4비트가 아니다
4로 계산하면 안 맞습니다
양자화(가중치를 몇 비트로 저장할지 줄이는 작업)된 모델은 보통 4비트라고 부릅니다. 그런데 파라미터 수 × 4 ÷ 8로 계산하면 실제 파일보다 작게 나옵니다. Llama 3.1 8B는 파라미터가 80억 3천만 개이고 실제 파일은 4.9GB입니다.
가장 많이 쓰는 방식은 Q4_K_M입니다. 이름의 4는 평균 비트수가 아니라 기본 유형의 이름입니다. 층마다 중요도가 달라서 일부는 더 높은 비트로 남깁니다.
llama.cpp 양자화 문서의 측정값은 가중치당 4.8944비트입니다. 이 값은 Llama 3.1 8B를 측정해 얻은 값입니다.
검산 결과 (계산 / 배포 표시)
Ollama 모델 페이지에 표시된 파라미터 수로 계산해 배포 크기와 맞춰 보면 이렇습니다.
- Qwen2.5 7B: 4.66GB / 4.7GB
- Llama 3.1 8B: 4.91GB / 4.9GB
- Qwen2.5 14B: 9.05GB / 9.0GB
- Qwen2.5 32B: 20.07GB / 20GB
모두 표시 정밀도 안에서 맞습니다. 단, 이 계수는 미리 검산하는 용도이고 모든 모델에 맞는 공식은 아닙니다. 판정할 때는 실제 파일의 바이트 크기를 봅니다.
숫자 2. 올릴 수 있는 상한: 통합 메모리 전부가 아니다
16GB가 곧 모델 16GB는 아닙니다
통합 메모리(CPU와 GPU가 함께 쓰는 메모리) 16GB를 모델이 다 쓰지는 못합니다. GPU가 가져갈 수 있는 양에 따로 한도가 있고, 운영체제와 브라우저도 메모리를 씁니다.
Apple Metal 문서는 이 한도를 recommendedMaxWorkingSetSize라는 값으로 정의합니다. "실행 성능에 영향을 주지 않고 GPU가 할당할 수 있는 메모리의 근사치"라는 뜻입니다.
하지만 메모리가 16GB일 때 이 값이 몇 퍼센트인지 정하는 고정 비율이나 산식은 Apple 공식 문서에 없습니다. 숫자 자체가 없다는 말은 아닙니다. API는 기기마다 값을 돌려 줍니다. 모든 구성에 적용할 기준표나 산식이 공개돼 있지 않다는 뜻입니다.
약 75%는 커뮤니티 실측입니다
흔히 알려진 값은 약 75%이고, llama.cpp 토론 게시판과 Apple 개발자 포럼에 나옵니다. Apple 공식 답변이 아니라 사용자들이 잰 값이라, 확정선이 아니라 참고선입니다. 기기와 메모리 구성에 따라 이보다 작게 나오는 경우도 있습니다.
이 비율을 적용한 값은 이렇습니다.
- 16GB: 약 12GB
- 24GB: 약 18GB
- 32GB: 약 24GB
내 맥의 실제 값 확인하기
내 맥의 실제 값은 llama.cpp 계열 프로그램이 모델을 올릴 때 남기는 실행 기록에서 볼 수 있습니다. 시작할 때 recommendedMaxWorkingSetSize = ○○ MB 형태의 줄이 찍힙니다. Ollama를 쓰고 있다면 모델을 한 번 실행한 뒤 터미널에서 아래 명령으로 그 줄을 찾아봅니다.
grep -i recommendedMaxWorkingSetSize ~/.ollama/logs/server.log
나온 MB 값을 1024로 나누면 GB가 됩니다. 이 값이 3단계에서 쓸 "모델이 쓸 수 있는 몫"의 실제 기준입니다. 줄이 보이지 않으면 llama.cpp로 모델을 직접 띄웠을 때의 시작 기록에서 같은 줄을 찾습니다.
두 숫자를 붙이면: 경계 판정
24GB 맥의 기준값은 약 18GB입니다. 여기에 Qwen2.5 32B(Q4_K_M, 표시 20GB)를 올린다고 해 봅시다. 20이 18보다 크니 실행 전 계산에서 이미 경계 밖입니다. 24가 20보다 크지만, 비교할 대상은 24가 아니라 약 18이라는 점이 중요합니다.
"경계 밖"은 "불가능"과 다릅니다. 계산상 여유가 없다는 뜻이고, 실제로는 시스템 메모리로 넘쳐 아주 느리게 돌거나 로드에 실패할 가능성이 크다는 신호로 읽으면 됩니다.
반대로 계산상 들어간다고 안심할 수도 없습니다. 대화가 길어지면 KV 캐시(앞 대화 내용을 기억해 두는 메모리)와 실행 버퍼가 쌓여 실제 사용량이 파일 크기보다 커집니다. 컨텍스트를 길게 잡을수록 이 몫이 늘어납니다.
그래서 파일 크기 비교는 1차 거름망입니다. 최종 판정은 조건을 고정하고 직접 올려 봐야 나옵니다.
숫자 3. 속도의 상한: 메모리 대역폭
M4 대역폭은 120GB/s
M4 칩의 메모리 대역폭은 초당 120GB입니다. Apple 지원 사이트의 기술 사양 문서(Mac mini, MacBook Air 13인치·15인치 M4 모델) 모두 120GB/s로 적혀 있습니다. 현행 MacBook Air 제품 페이지는 M5 기준으로 바뀌어 있으니, M4 기기는 지원 사이트의 기술 사양에서 확인합니다.
토큰 하나를 만들 때마다 모델 가중치를 전부 한 번 읽어야 합니다. 그래서 글을 만들어 내는 속도의 병목은 계산 능력이 아니라 메모리를 읽는 속도입니다.
이론 상한 (대역폭 ÷ 모델 크기)
tok/s는 초당 만들어 내는 토큰 수입니다. M4(120GB/s)에서 Q4_K_M 파일 기준 이론 상한은 이렇습니다.
- 7B: 약 25.5 tok/s
- 8B: 약 24.5 tok/s
- 14B: 약 13.3 tok/s
- 32B: 약 6 tok/s
실측이 아니라 이론 상한이고, 실제는 더 낮습니다. 대화가 길어지면 읽을 양도 늘어납니다. 이 표는 "어떤 모델이 답답할지 미리 짐작"하는 용도로만 씁니다.
문서가 답하지 않는 것
양자화 비트수, 모델 배포 크기, 메모리 대역폭 세 가지는 모두 문서에 있었고 계산과 맞습니다. 비어 있는 것은 GPU가 쓸 수 있는 메모리 비율 하나입니다.
Ollama의 예전 README에는 "7B는 8GB, 13B는 16GB, 33B는 32GB"라는 권장 메모리 문구가 있었습니다. 지금 README에는 하드웨어 요구 사항이 없습니다. 이 문구는 모델별 요구량이 아니라 파라미터 규모별 일반 권장치였고, 지금 기준도 아닙니다. 남아 있었더라도 "24GB 맥에서 20GB 모델이 되나"라는 질문에는 답이 안 됐을 겁니다.
메모리별 판정: 되는 것과 빠듯한 것 (계산 기준)
- 7B·
8B: 16· 24· 32GB 모두 여유가 있습니다. 대부분의 사람에게 현실적인 선택은 7B~14B 사이입니다. - 14B: 16GB에서는 빠듯하고(파일 9GB에 캐시까지 더하면 약 12GB 몫에 거의 찹니다), 24·
32GB에서는 들어갑니다. - 32B: 16GB에서는 한참 벗어나고, 24GB에서도 계산상 경계 밖입니다. 32GB에서는 계산상 범위 안이지만, 캐시까지 생각하면 여유가 많지 않습니다.
이 표는 파일 크기만 본 것입니다. 캐시와 컨텍스트가 붙으면 여유가 줄어듭니다. 계산으로 후보를 좁히고, 경계에 걸린 모델은 직접 올려 보고 정하는 것이 실전 요령입니다.
따라 하기: 내 맥에 들어가는지 계산으로 거르는 12단계
준비물은 이렇습니다.
- 내 맥의 통합 메모리 용량. 사과 메뉴 > 이 Mac에 관하여에서 보입니다.
- 내 맥의 메모리 대역폭. M4는 120GB/s입니다. 다른 칩은 Apple 지원 사이트의 기술 사양에서 찾습니다.
- 후보 모델의 파라미터 수와 배포 크기. Ollama 모델 페이지나 Hugging Face 모델 페이지에 나옵니다.
- 계산기. 비용은 들지 않습니다.
Pro·
1. 내 맥의 한도 구하기
1단계. 내 맥의 통합 메모리 용량을 확인한다 (예: 16GB)
- 확인: 용량 숫자를 하나 적었습니다. 사과 메뉴 > 이 Mac에 관하여의 "메모리" 항목입니다.
2단계. 메모리 용량에 0.75를 곱한다
- 확인: 16GB는 약 12, 24GB는 약 18, 32GB는 약 24가 나옵니다.
- 주의: 약 75%는 Apple 공식 값이 아니라 커뮤니티 실측입니다. 앞의 로그 확인 방법으로 실제 값을 알았다면 그 값을 씁니다.
3단계. 나온 값을 "모델이 쓸 수 있는 몫"으로 적는다
- 확인: 몫 숫자를 하나 적었습니다. 16GB 맥이면 약 12GB입니다.
2. 후보 모델의 크기 구하기
4단계. 후보 모델의 파라미터 수를 적는다 (예: Qwen2.5 14B는 14.8B)
- 확인: 파라미터 수가 숫자로 적혀 있습니다. Llama 3.1 8B는 80억 3천만 개입니다.
- 위치: Ollama 모델 페이지는 모델 정보의 parameters 항목, Hugging Face는 모델 페이지 오른쪽의 Model size 항목에 나옵니다.
5단계. 양자화 방식이 Q4_K_M인지 확인한다
- 확인: Q4_K_M이면 가중치당 4.8944비트를 씁니다.
- 주의: 이 계수는 Q4_K_M 기준입니다. 다른 방식이면 llama.cpp 문서의 해당 비트수를 씁니다(예: Q8_0은 8.5008비트).
6단계. 계산식에 넣어 모델 크기를 구한다
4단계와 5단계를 마친 뒤에 합니다.
모델 파일 크기(GB) ≈ 파라미터 수(십억) × 4.8944 ÷ 8
- 확인: 검산값과 맞습니다. 7.62B는 4.66, 8.03B는 4.91, 14.8B는 9.05, 32.8B는 20.07입니다.
- 대안: 판정할 때는 근사 계산 대신 실제 파일의 바이트 크기를 봅니다. 모델 페이지의 표시 크기는 반올림된 값입니다.
3. 들어가는지 1차 판정
7단계. 모델 크기와 내 몫(3단계 값)을 비교한다
- 확인: 모델 크기가 몫보다 작으면 "계산상 범위 안", 크면 "경계 밖"입니다. 24GB 맥의 몫 약 18과 20GB 모델을 비교하면 경계 밖입니다.
8단계. 결과를 "경계 밖" 또는 "범위 안"으로만 적는다
- 확인: 후보마다 둘 중 하나로 적혀 있습니다.
- 주의: 계산 판정이지, 실제로 올려 본 판정이 아닙니다. 범위 안이어도 KV 캐시와 버퍼 때문에 실제 사용량은 파일 크기보다 큽니다. 몫과 파일 크기 차이가 1~2GB도 안 되면 빠듯한 것으로 봅니다.
4. 속도 상한 보기
9단계. 내 맥의 메모리 대역폭을 적는다 (예: M4는 120GB/s)
- 확인: 숫자를 하나 적었습니다. Apple 지원 사이트 기술 사양 문서의 "메모리 대역폭" 항목입니다.
10단계. 대역폭을 모델 크기로 나눈다
이론 상한(tok/s) ≈ 메모리 대역폭(GB/s) ÷ 모델 파일 크기(GB)
- 확인: M4 기준 7B 약 25.5, 8B 약 24.5, 14B 약 13.3, 32B 약 6.0이 나옵니다.
11단계. 나온 값을 "실측이 아닌 상한"으로 적는다
- 확인: 속도 값 옆에 "이론 상한"이라고 적혀 있습니다.
- 주의: 실제는 이보다 낮습니다. 어떤 모델이 답답할지 미리 짐작하는 용도로만 씁니다.
5. 경계에 걸린 모델 직접 올려 보기
12단계. 경계에 걸린 모델은 직접 올려 보고 결정한다
- 방법: Ollama라면 터미널에서
ollama run 모델이름으로 실행한 뒤, 다른 터미널 창에서 ollama ps를 입력합니다. PROCESSOR 칸이 "100% GPU"면 모델 전체가 GPU 몫 안에 올라간 것이고, CPU 비율이 섞여 있으면 몫을 넘쳐 일부가 CPU로 밀려난 것입니다. - 확인: 같은 질문을 넣고 답이 나오는 속도를 직접 느껴 봅니다. 활성 상태 보기 앱의 메모리 탭에서 "메모리 압력"이 빨간색으로 올라가면 그 맥에는 무리인 모델입니다.
마무리 점검
- 내 맥의 몫(메모리 × 약 75%, 또는 로그의 실제 값)을 계산했습니다.
- 후보 모델마다 크기를 계산하고 "범위 안/경계 밖"으로 나눴습니다.
- 이론 속도 상한에 "실측이 아님"을 적어 두었습니다.
- 경계에 걸린 모델은 직접 올려
ollama ps와 메모리 압력으로 확인했습니다.
자주 막히는 곳
계산 크기와 모델 페이지 표시 크기가 조금 다를 때
근사 계수와 반올림 때문입니다. 판정은 실제 파일 바이트 크기로 합니다.
24GB인데 20GB 모델이 경계 밖으로 나올 때
비교 대상이 24가 아니라 GPU 몫(약 18)이라서 그렇습니다. 정상적인 계산 결과입니다.
계산상 범위 안인데 느리거나 안 올라갈 때
KV 캐시, 버퍼, 컨텍스트 길이가 원인일 수 있습니다. 컨텍스트 길이를 줄이거나 한 단계 작은 모델로 바꿔 봅니다.
자주 묻는 질문
16GB 맥에서는 어떤 크기의 로컬 LLM이 맞나요?
7B·
맥 통합 메모리를 모델이 전부 쓸 수 있나요?
아닙니다. GPU가 가져갈 수 있는 양에 따로 한도가 있고, 운영체제와 다른 앱도 메모리를 씁니다. 흔히 약 75%로 알려져 있지만 Apple 공식 값은 아니니, 실행 기록의 recommendedMaxWorkingSetSize 값으로 내 맥을 확인하는 편이 정확합니다.
Q4_K_M 모델 크기는 어떻게 계산하나요?
파라미터 수(십억 단위)에 4.8944를 곱하고 8로 나누면 GB 단위 크기가 나옵니다. 4.8944는 llama.cpp 문서에 적힌 Q4_K_M의 가중치당 비트수입니다. 근사 계산이니 최종 판정은 실제 파일 크기로 합니다.
M4 맥에서 로컬 LLM 속도는 얼마나 나오나요?
M4의 메모리 대역폭 120GB/s를 모델 파일 크기로 나누면 이론 상한이 나옵니다. 7B는 약 25.5 tok/s, 14B는 약 13.3 tok/s, 32B는 약 6 tok/s입니다. 실제 속도는 이보다 낮습니다.
이 글의 본문은 아래 원본 유튜브 영상의 내용을 바탕으로 쓸모연구소가 다시 정리해 쓴 것입니다. 세부 내용과 최신 정보는 원본 영상과 공식 안내에서 확인해 주세요.
원본 영상 보러가기 ↗