로컬 LLM 입문 10단계 요약 정리
요약
본 기사는 로컬 LLM(대규모 언어 모델)을 자신의 PC에서 구동하는 방법을 10단계로 요약 정리하며, 오픈 모델의 개념과 필수 기초 지식을 설명합니다. 핵심은 외부 의존성을 줄이고 주도권을 되찾는 것이며, 사용자는 먼저 직접 구동해보고 성능을 측정하여 하드웨어 구매를 결정해야 한다고 조언합니다.
핵심 포인트
- 로컬 LLM은 데이터 유출 없이 PC에서 작동하는 오픈 모델 방식이다.
- 모델 선택 시에는 자신의 메모리(VRAM/Unified Memory) 용량을 기준으로 삼아야 한다.
- 성능 테스트 후, 상시 업무가 있을 때만 하드웨어 구매를 고려해야 한다.
ローカルLLM 입문을 위한 10단계 요약 기사를 정리해 보았습니다. 사전 지식도 설명되어 있으니 읽어보시면 좋겠습니다.
■ 미리 알아두면 좋은 기초 지식
-
LLM (대규모 언어 모델):
ChatGPT나 Claude의 내용물에 해당하는 AI입니다. 정체는 '수십억 개의 수치(가중치)를 채운 거대한 파일'입니다. -
로컬LLM:
그 파일을 자신의 PC에 다운로드하여, 자신의 PC 위에서 구동하는 방식입니다. 인터넷에 연결되어 있지 않아도 작동하며, 입력한 데이터가 외부로 나가지 않습니다. -
오픈 모델 (Open Model):
누구나 다운로드할 수 있도록 공개된 모델입니다. Qwen, DeepSeek, Gemma, gpt-oss 등이 있습니다. -
파라미터 수 (4B, 27B 등):
가중치의 개수로, B는 10억을 나타냅니다. 많을수록 똑똑해지기 쉽지만, 파일도 커지고 무거워집니다. -
토큰 (Token):
AI가 글을 읽고 쓸 때의 단위로, 단어의 조각에 해당합니다. 영어의 경우 100토큰으로 약 75단어, 일본어의 경우 대략 한 글자가 1토큰 전후입니다. -
tok/s (토큰당 초):
답변이 나오는 속도입니다. 빠르면 쾌적합니다. -
컨텍스트 윈도우 (Context Window):
모델이 한 번에 볼 수 있는 글의 양입니다. 대화 기록이나 읽게 한 파일도 여기에 포함됩니다. 이것을 넘어서면, 오래된 내용부터 '잊어버립니다'. -
양자화 (Quantization) (Q4, Q8 등):
가중치의 정밀도를 낮춰 파일을 작게 만드는 압축 기술입니다. Q4로 하면 크기가 약 1/3이 되며, 품질은 거의 변하지 않습니다. -
VRAM / 유니파이드 메모리 (Unified Memory):
VRAM은 그래픽 카드(GPU) 전용 메모리로, Windows나 Linux PC에서는 모델을 여기에 올립니다. Apple 사의 M 시리즈 칩이 장착된 Mac은 CPU와 GPU가 공유하는 메모리(unified memory)를 사용하며, 그 대부분을 모델에 사용할 수 있습니다. -
API:
다른 프로그램에서 모델을 호출하기 위한 창구입니다.
■ 이 기사가 전달하고 싶은 것
핵심은 '로컬LLM은 저렴하게 해결할 수 있는 수단이 아니다. 주도권을 자신의 손으로 되찾는 수단이다'라는 점입니다.
닫힌 모델(ChatGPT나 Claude 등, 내용물이 공개되지 않은 모델)을 월 단위로 빌리는 방식에서는 이용 상한이나 내용물 자체가 제공 측의 사정에 따라 바뀝니다.
반면, 오픈 모델은 최첨단부터 일반 PC에서도 구동할 수 있게 되었습니다.
그래서 가지고 있는 PC로 먼저 하나를 구동해 보고, 속도와 품질을 실측하여 그 숫자를 본 후에 무엇을 살지 결정하자고 주장합니다.
결론은 다음 세 가지로 요약됩니다.
- 시험해 볼 때는 주말에만 GPU를 빌린다.
- 하드웨어를 구매하는 것은 상시 구동하는 업무가 있을 때만 한다.
- 업무는 내용에 따라 크고 작은 모델이나 클라우드를 사용한다.
Step 0: 먼저 하나를 구동하기
로컬LLM에 필요한 것은 '모델 파일'과 그 외 아무것도 없습니다.
먼저 자신의 메모리 양을 확인합니다.
- Mac: Apple 메뉴 → '이 Mac에 관하여'
Windows: Ctrl+Shift+Esc를 눌러 작업 관리자(Task Manager)를 열고, '성능(Performance)' 탭의 메모리 섹션과 GPU 섹션의 '전용 GPU 메모리'를 확인한다. 다음으로 모델을 선택한다. 기준은 '다운로드 크기'이다.
- 메모리 8GB Mac 또는 GPU가 없는 PC → qwen3:
- 메모리 16GB Mac 또는 12~16GB GPU → gemma4:12b (약 8GB)
- 메모리 32GB 이상 Mac 또는 24GB GPU → qwen3.8:2
- 잘 모르겠다면 qwen3:4b부터 시작한다.
다음으로 Ollama를 설치한다. Windows의 경우 'PowerShell', Mac의 경우 '터미널(Terminal)'을 열고 실행한다.
Windows (PowerShell)
irm https://t.co/tUs5xpcpNG | iex
Mac / Linux
curl -fsSL https://t.co/eyHYbA7Ygb | sh
공통: 모델을 다운로드하고 대화를 시작한다
ollama run qwen3:4b
처음 한 번만 진행률 표시줄이 나타나며, 다운로드가 완료되면 질문을 입력하고 Enter를 누르면 답변이 돌아오고, /bye로 종료한다. Wi-Fi를 꺼도 답변이 돌아오는 것을 확인하면, 정말 로컬에서 구동되고 있음을 실감할 수 있다.
Step 1: 무엇을 얻고, 무엇을 얻지 못하는가
로컬에서 얻을 수 있는 것은 네 가지다.
데이터가 외부로 나가지 않는 것, 이용 상한선을 누구도 바꿀 수 없는 것, 추가 요청 비용이 발생하지 않는 것, 모델이 임의로 바뀌지 않는 것이다. 다만, 모델 자체가 손에 들어오는 것은 아니다.
기사 그림은 두 가지 사실을 보여준다.
- 첫째는 '크기가 성능을 결정하는 시대가 끝났다'는 것으로, 27B는 종합 지능 지표에서 34점을 받았다. 이는 파라미터가 60배인 DeepSeek V4 Pro(36점)에 거의 근접하다.
- 둘째는 '같은 17GB로 3세대를'라는 그림이다. 같은 3.5(23점) → 3.6(21점) → 3.8(34점)으로, 한 번의 출시만으로 13점이 상승했다.
그럼에도 불구하고, 폐쇄형 모델의 최고봉(Claude Opus 5.5에서 58점)과의 차이는 명확하게 남아있다.
Step 2: 정액 요금제의 이면
도표에 따르면, 200달러짜리 정액 플랜을 다 사용하면 Max의 경우 약 8,000달러, ChatGPT Pro의 경우 약 14,000달러가 발생한다고 보도되었다. 헤비 유저에게는 원가 이하로 팔리고 있다는 것이다.
실제로 2026년 9월 Code의 주간 상한선이 여름 피크 대비 17% 하락했고, Ope(OpenAI) 즉, 자신의 작업량 상한선은 타 회사의 이윤율에 의해 결정된다.
반면, 토큰 단가만 비교하면 로컬이 저렴하지 않다. M5 Ultra 탑재 Mac Studio를 24시간 가동시켜 3년간 감가상각해도 비용이 발생한다.
같은 모델을 클라우드 API로 사용하면 0.47달러이다. 로컬을 선택하는 이유는 '제어'와 '무제한 사용'에 있다.
Step 3: 먼저 '시킬 일'을 정하기
순서는 '일 → 모델 → 머신'이다.
이 그림은 로컬 LLM 커뮤니티에서 수집된 1만 건 이상의 용도를 분류한 것이다. 세부 내역은 코딩 에이전트가 20.4%, 자동화가 20.0%, 자택 서버 구축이 18.5%로, 로컬 LLM은 'ChatGPT의 대체재'라기보다는 사람이 없는 동안 작동하는 '에이전트의 기반'으로 사용되고 있다.
기사가 보여주는 일의 배분은 다음과 같다.
기밀 문서나 고객 데이터 처리, 야간 상시 구동 작업 → 로컬
- 분류・추출・요약 → 로컬의 소형 모델(4B)
- 평소 코딩 → 로컬의 27B급
- 어려운 설계 판단이나 장시간 리팩토링 → 클라우드 (하드웨어를 사도 본전이 안 된다)
자신의 지난주 AI 작업을 붙여 넣고, 각 작업에 필요한 모델 규모를 AI가 추정하게 하는 프롬프트도 있으니 그대로 사용하면 됩니다.
Step 4: 하드는 '메모리 용량' → '메모리 대역폭'
1 토큰을 생성할 때마다, 모델의 가중치를 메모리에서 읽어와야 합니다. 따라서 성능에 영향을 미치는 요소의 우선순위는 다음과 같습니다.
- 메모리 용량: 어떤 모델이 올라갈 수 있는지를 결정합니다.
- 메모리 대역폭(읽기 속도): 속도의 상한선을 결정합니다.
- 연산 성능: 영향은 세 번째입니다.
그림은 17GB의 모델을 구동했을 때 이론적인 속도 상한선을 보여줍니다. DGX Spark는 16 tok/s, M5 Max는 35, RTX 3090(중고)은 54, RTX 4090은 58, M5 Ultra는 69입니다. 실제 성능은 이 상한선의 55~77% 정도가 됩니다.
여기서 두 가지 사용법이 도출됩니다.
- 모델이 24~32GB에 들어간다면, NVIDIA의 GPU를 이용합니다.
- 100GB가 넘는 모델을 구동하려면, 대용량 메모리를 장착한 Mac Studio가 저렴한 추론 머신이 됩니다.
또 다른 그림은 2,700달러로 조립한 RTX 3090 머신이 클라우드에서 동일 GPU를 임대하는 비용(1시간당 0.22달러)을 초과한다는 것을 보여줍니다.
하루에 2시간만 사용한다면 28.4년, 24시간 풀 가동한다면, 우선 RunPod 등에서 10달러 정도 사용하고 주말에만 GPU를 빌려 시험해 보라고 권장합니다. 하루 4시간밖에 쓰지 않는 자체 서버는 '실리콘으로 만든 난방 기구'에 불과합니다.
Step 5: 모델 선택
주요 선택지는 다음과 같습니다.
- LFM2.5-2.6B (2.5GB 미만): 기기(단말) 상에서 에이전트 처리
- Gemma 4 12B (7~8GB): 16GB급 기기에 적합한 범용 모델
- gpt-oss 20B (16GB에 수납 가능): 추론 및 에이전트 처리에 사용
- Qwen 3.8 27B (17.4GB): 코딩 및 에이전트 작업의 기본 권장 모델
- Qwen 3.8 Flash-Next (11GB): 대용량 메모리 Mac에 적합
- DeepSeek V4 Pro: 데이터센터급 성능을 보여주며, 코딩 성능(SWE-bench Pro)에서는 Claude Opus 5.5의 89.9% 수준입니다.
많은 리포지토리 작업에는 충분하지만, 가장 어려운 태스크에는 미치지 못합니다.
같은 GPU에서 속도를 비교한 그림에서는 MoE 모델(Nemotron 3.5 Lightning은 334 tok/s)이 일반적인 Dense 모델(Qwen 3tok/s)보다 4배 빠릅니다. MoE(전문가 혼합)는 전체 파라미터 수로 메모리량이 결정되고, 속도는 실제로 사용하는 파라미터 수로 결정되는 방식입니다.
Step 6: 양자화는 Q4_K_M이 기본
Qwen 3.8 27B의 경우, 원래 크기는 55GB이지만, Q4_K_M으로 양자화하면 17GB가 됩니다. 그림에 따르면, 이때 성능(GPQA)은 원본 모델(92, 78)과 거의 동일했습니다. 용량이 부족할 때만 Q4보다 더 낮추면 됩니다. 그 경우, 잡학 문제보다 에이전트적인 작업이 먼저 무너진다는 것을 기억해 두는 것이 좋습니다.
자주 잊는 점은 필요한 메모리가 '모델 본체 + 대화의 기억 영역(KV 캐시) + 여유 공간 1~2GB'로 결정된다는 것입니다. GPU에서 Qwen 3.8 27B를 구동할 경우, 64K 토큰을 처리하지 못합니다.
1.76bit으로 학습된 Ternary Bonsai 2 (5.9GB)도 있습니다. 하지만 장시간 태스크에서는 52.8 대 69.7로 크게 뒤처지며, 전용 런타임이 필요합니다. 16GB Mac에는 매력적이지만, Q4를 대체할 수는 없습니다.
Step 7: 실행 엔진 설정
주요 엔진은 세 가지가 있습니다. 사용하기 쉬운 Ollama, 데스크톱 앱으로 조작하는 LM Studio, 그리고 이 두 가지의 기반이 되는 llama.cpp입니다.
가장 흔한 불만은 '대화 내용이 몇 페이지 만에 잊히는 것'이 아니라, Ollama의 초기 설정에서 컨텍스트(context) 길이가 수천 토큰밖에 안 된다는 점입니다.
Mac / Linux
OLLAMA_CONTEXT_LENGTH=65536 ollama serve
Windows (PowerShell).
$env:OLLAMA_CONTEXT_LENGTH=65536; ollama serve
16GB 기기라면 16384부터 시작하는 것이 안전하다.
llama.cpp를 직접 사용할 경우에는 --jinja 옵션을 반드시 붙여야 한다. 이것을 붙이지 않으면 모델 고유의 대화 템플릿이 사용되어 중간에 잘리거나 끝없이 이어지는 현상이 발생한다. 이것이 '이것'의 주된 원인이다.
[그림]의 결론은 '혼자 사용할 때는 엔진 차이가 크지 않다.' 하지만 동시에 처리할 경우에는 vLLM은 6,623 tok/s, llama.cpp는 2,391, Ollama는 2,018로 큰 차이가 난다. 팀에서 공유하거나 일괄 처리를 할 거라면 vLLM을 사용하는 것이 좋다.
Step 8: API로 사용하기
채팅 화면에서 사용할 수만 있는 모델은 장난감에 불과하다. API로 호출할 수 있게 되어야 비로소 인프라가 된다. Ollama만으로 포트 11434에서 OpenAI 호환 및 Anthropic 호환을 확인할 수 있다.
curl http://localhost:11434/v1/chat/completition/json" -d'{"model":"qwen3:4b","messages":[{"role":"user","content":"메모리 대역폭이란? 한 문장으로"}]}'
(Windows에서 입력할 경우에는 curl.exe라고 쓰거나 Git Bash에서 실행한다.)
Claude Code를 로컬 모델에 연결하려면, ~/.claude/settings.json 파일에 다음을 작성해야 한다.
하지만 프롬프트 캐시, 토큰 수 측정, PDF 읽기 등은 사용할 수 없다. 일단 작동은 하지만 완성도가 떨어지는 코디네이터라고 생각하는 것이 좋다. 컨텍스트는
Step 9: 간단한 처리는 소형 모델에 맡기기
에이전트가 수행하는 처리의 대부분은 단순하다. 추출하거나, 인간의 판단이 필요한지 구분하는 것 같은 것이다.
NVIDIA 연구에 따르면, 7B 모델의 운영 비용은 70B175B 모델의 1/101/30 수준이며, 에이전트의 40~70%는 소형 모델로 대체될 수 있다.
그림은 GPU가 없는 노트북 PC에서 소형 모델의 '두'를 보여준다. lfm2.5 (1.2B)와 qwen3 (0.6B)이 최고 0.88을 기록하며, 3B의 llama3.2 (0.66)를 능가했다. 작은 모델이라도 이러한 판단은 충분히 수행할 수 있다.
기사의 라우터(분배 역할) 코드는 소형 모델로 작업 종류를 판별하고, 내용에 따라 소형 모델/대형 모델로 분배한다. 시험해 볼 때는 끝에 클라우드 호출을 직접 정의하거나, 그 줄을 지우고 사용한다.
Step 10: 자신의 환경에서 실측하기
SNS에 게시된 속도는 타인의 머신이다. 자신의 환경에서 다음을 실행한다.
ollama run qwen3:4b --verbose "KV 캐시"
ollama ps
--verbose를 붙이면 마지막에 두 가지 속도가 표시된다. prompt eval rate (프리필)은 질문을 읽는 속도이고, eval rate (디코드)는 답을 쓰는 속도이다. 하지만 긴 문서나 코드베이스를 읽게 하면, 대기 시간의 대부분은 '읽는' 쪽이 된다.
이 느림은 Mac에서 특히 눈에 띈다. ollama ps에서 '100% GPU'라고 표시되어 있다면, 모델 전체가 GPU에 올라
품질도, 답을 아는 자신의 업무 10가지 질문을 사용하여 풀어보게 하여 확인한다.
■바로 시도해 볼 수 있는 6가지 작업
B・C・D를 시도하기 전에, Python 작업 폴더(폴더명)를 만들고 그 안에 넣어둡니다. (기사에서는 이 절차의 코드가 생략되어 있으므로, 표준적인 절차를 보충합니다.)
python -m venv .venv
.venv\Scripts\Activate.ps1 # Mac/Linux
pip install openai ollama numpy
A. 커밋 메시지 자동 생성
기사의 셸 스크립트를 리포지토리 내의 (폴더명)이라는 이름으로 저장합니다. Mac/Linux에서는 chmod +x로 실행 권한을 부여합니다. 그 후 git commit만 하면, qwen3:4b가 변경점(diff)을 읽고 초안을 작성해 줍니다.
B. 문의 사항 일괄 분류
'text'라는 열을 가진 tickets.csv를 준비하면, 실제 대응 필요 여부를 표시한 labeled.csv가 출력됩니다. 8건씩 병렬로 처리합니다.
처음에 50건을 눈으로 확인하고, 5건을 초과하여 불일치가 발생한다면, '인간 대응 필요' 행만 27B 모델로 재처리합니다.
C. 자신의 문서에 질문하기 (RAG)
먼저 ollama pull nomic-embed-text를 실행하여 (폴더명) 폴더에 .md 파일을 두고 스크립트를 실행하면, 관련 있는 5개의 조각을 근거로 답변합니다. 정확도를 좌우하는 것은 조각의 크기 조정입니다.
D. 청구서 이미지(invoice.jpg)를 JSON으로 변환하기
invoice.jpg를 두고 실행합니다. 핵심은 unreadable 폴더를 준비하지 않으면, 모델이 그럴듯한 숫자를 지어낸다는 것입니다. 총 금액 검산은 프롬프트에 의존하지 않고 코드 측에서 수행해야 합니다.
E. 코딩 에이전트에게 스킬과 MCP를 각각 1개씩 추가하기
스킬은 지정된 절차대로 작업하게 하는 것이고, 서버는 에이전트가 도구를 하나 가지게 하는 구조입니다. 도구의 정의는 매 턴 로드되며, 로컬 환경에서는 그만큼 대기 시간이 늘어납니다. 따라서 MCP는 1~2개로 제한하는 것이 좋습니다.
F. 야간 다이제스트(Night Digest)
전날의 커밋과 TODO를 모아 모델에게 아침 보고서를 작성하게 하는 스크립트입니다. cron (Windows의 경우 작업 스케줄러)으로 매일 아침 6:30에 실행합니다. '하루 일과'는 자동화 구매를 정당화할 수 있는 영역입니다.
'셸에서 문장을 모으고, 엄격한 형식을 지정하여 모델에게 전달하고, 파일로 저장한다'라는 유형은 이메일 요약 등에도 전용될 수 있습니다.
■요약
처음 사용하는 로컬 모델은 빌려 쓰는 모델보다 느리고, 지능도 약간 떨어집니다. 그럼에도 상한선도 없고 과금 미터기도 없으며, 데이터가 외부로 나가지 않습니다. 우선 지금 가진 PC에서 명령어를 한 번 입력해 보고, 직접 측정하여 결정하는 것이 기사의 주장입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 X GPU/AI 하드웨어의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기