AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

로컬 LLM 팁 – Apple M4 24GB MacBook에서 로컬 모델 실제 사용기

M4 칩 24GB 메모리 MacBook Pro에서 인터넷 없이 로컬 LLM을 실용적으로 운용하는 방법을 정리한다. 모델 선택부터 LM Studio 설정, pi·OpenCode 연동 설정, SOTA 모델과의 현실적 차이까지 다룬다.

어떤 모델이 맞을까

24GB 메모리 환경에서 실행 가능한 모델은 많지만, 실제로 쓸 만한 조합은 좁다. 테스트 결과 Qwen 3.6 Q3, GPT-OSS 20B, Devstral Small 24B는 메모리에는 들어가지만 실사용하기엔 너무 느렸다. Gemma 4B는 빠르지만 도구 사용(tool use)에서 실패가 잦았다.

현재 가장 좋은 선택지는 Qwen 3.5-9B (Q4 quant)다:

  • 속도: ~40 tokens/sec
  • 사고(thinking) 모드 활성화 가능
  • 도구 사용 성공
  • 128K 컨텍스트 윈도우
  • 일반 앱들과 함께 실행해도 메모리 여유 있음

HuggingFace에서 unsloth/Qwen3.5-9B-GGUF를 사용한다.

LM Studio 설정

LM Studio를 런타임으로 사용한다. 사고(thinking) 모드와 코딩 작업에 권장되는 파라미터:

temperature=0.6, top_p=0.95, top_k=20,
min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0

사고 모드를 활성화하려면 모델 선택 후 Configuration → Inference 탭 맨 아래에서 Prompt Template에 다음을 추가한다:

{%- set enable_thinking = true %}

pi 설정

pi와 연동하려면 ~/.pi/agent/models.json에 다음을 추가한다:

{
  "providers": {
    "lmstudio": {
      "baseUrl": "http://localhost:1234/v1",
      "api": "openai-completions",
      "apiKey": "lm-studio",
      "models": [
        {
          "id": "qwen3.5-9b@q4_k_s",
          "reasoning": true,
          "compat": { "thinkingFormat": "qwen-chat-template" }
        }
      ]
    }
  }
}

사고 과정이 화면에 출력되어 방해가 된다면 ~/.pi/agent/settings.json에 다음을 추가한다:

{ "hideThinkingBlock": true }

OpenCode 설정

OpenCode~/.config/opencode/opencode.json에서 설정한다:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "lmstudio": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Studio (local)",
      "options": {
        "baseURL": "http://127.0.0.1:1234/v1"
      },
      "models": {
        "qwen3.5-9b@q4_k_s": {
          "name": "Qwen 3.5 9B Q4_K_S",
          "tools": true,
          "context_length": 131072,
          "max_tokens": 32768
        }
      }
    }
  },
  "model": "lmstudio/qwen3.5-9b@q4_k_s"
}

SOTA 모델과의 현실적 차이

Qwen 3.5-9B Q4는 SOTA 모델처럼 복잡한 문제를 독립적으로 오랫동안 해결하지 못한다. 앱 전체를 한번에 만들라고 하면 실패한다.

잘 되는 것:

  • 단계별 작업에서 명확한 지시를 받아 수행
  • 코드 린터 경고 분석 및 수정 (병렬 편집 포함)
  • 간단한 git 충돌 해결
  • 리서치 어시스턴트, 러버덕 디버깅, 코딩 언어 문법 즉시 답변

안 되는 것:

  • 복잡한 문제를 장기간 자율적으로 해결
  • git rebase --continue처럼 대화형 터미널 명령어 처리

로컬 모델의 장점

  • 오프라인 동작: 비행기 안에서도 사용 가능
  • 비용 없음: 구독료 없이 전기 요금만 지불
  • 프라이버시: 외부 서버로 데이터가 나가지 않음
  • 재미: 직접 설정하고 튜닝하는 과정 자체가 학습

참고 자료

관련 문서



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)