LM Studio 새 Headless CLI로 Gemma 4를 로컬에서 실행하고 Claude Code와 연동하기
Running Gemma 4 locally with LM Studio's new headless CLI and Claude Code
TL;DR Highlight
Google Gemma 4 26B-A4B를 LM Studio 0.4.0의 lms CLI로 macOS 로컬에 구동하여 Claude Code와 연동함으로써, MoE 아키텍처 덕분에 48GB MacBook Pro에서 51 tok/s 성능을 달성하고 API 비용 없이 코딩 작업에 활용할 수 있다.
Who Should Read
API 비용이나 데이터 프라이버시 문제로 클라우드 AI 대신 로컬 모델을 도입하고 싶은 개발자. 특히 48GB 이상 메모리를 탑재한 Apple Silicon Mac을 보유하고 Claude Code 같은 AI 코딩 도구를 사용 중인 개발자.
Core Mechanics
- 클라우드 AI API는 rate limit, 비용, 프라이버시, 네트워크 지연 문제가 있는데, 로컬 모델은 API 비용 제로, 데이터 유출 없음, 안정적인 가용성이라는 장점으로 이를 대체할 수 있다.
- Google Gemma 4는 단일 모델이 아니라 E2B, E4B(온디바이스 최적화), 26B-A4B(MoE), 31B(Dense) 네 가지 모델 패밀리로 구성되어 있다. E2B·E4B는 오디오 입력을 지원하고, 31B Dense는 MMLU Pro 85.2%, AIME 2026 89.2%로 가장 높은 벤치마크 점수를 기록한다.
- 26B-A4B 모델은 MoE(Mixture of Experts, 전체 파라미터 중 일부만 선택적으로 활성화하는 아키텍처) 방식을 사용해서 128개 + 1개 공유 expert를 가지지만 토큰당 8개 expert(3.8B 파라미터)만 활성화한다. 이 덕분에 추론 비용은 4B dense 모델 수준이지만 품질은 훨씬 높다.
- 26B-A4B의 실효 성능은 sqrt(26B × 4B) ≈ 10B dense 모델 수준으로 추산되며, MMLU Pro 82.6%, AIME 2026 88.3%를 기록해 31B Dense(85.2%, 89.2%)에 근접한 성능을 보인다. Elo 점수 기준으로도 ~1441로, 400B~1000B 파라미터가 필요한 Qwen 3.5 397B-A17B나 Kimi-K2.5와 비슷한 수준이다.
- 14인치 MacBook Pro M4 Pro(48GB unified memory)에서 Gemma 4 26B-A4B가 51 tok/s로 동작하며, 256K 컨텍스트 윈도우, 비전 입력, 네이티브 함수/툴 호출, 설정 가능한 thinking mode를 모두 지원한다.
- LM Studio 0.4.0에서 llmster(데스크탑 앱에서 분리된 독립 추론 엔진)와 lms CLI가 도입되어 GUI 없이 터미널만으로 모델 다운로드·로드·서빙이 가능해졌다. headless 서버, CI/CD 파이프라인, SSH 세션에서도 사용할 수 있다.
- LM Studio 0.4.0의 주요 신기능으로는 llmster 데몬(백그라운드 서비스), lms CLI, parallel request processing(연속 배치로 동시 요청 처리), stateful REST API(/v1/chat 엔드포인트, 대화 히스토리 유지), MCP 통합이 포함된다.
- Claude Code를 통해 LM Studio로 서빙 중인 Gemma 4를 백엔드 모델로 사용할 수 있어서, Claude API 비용 없이 로컬 모델로 AI 코딩 어시스턴트를 구동할 수 있다. 단 원문 필자 기준 Claude Code 내에서 사용 시 속도 저하가 눈에 띄게 발생했다고 한다.
Evidence
- 한 댓글 작성자가 M1 Max 64GB MacBook에서 llama.cpp 서버를 직접 사용해 Gemma 4 26B-A4B를 Claude Code와 연동하는 설정을 공유했다. 그는 Gemma 4 26B-A4B가 Qwen3.5 35B-A3B보다 토큰 생성 속도는 약 2배 빠르지만(40 tok/s), tau2 벤치마크(에이전트 작업 능력 측정)에서는 68% vs 81%로 Qwen에 크게 뒤진다고 지적했다. 따라서 도구 호출이 많은 heavy agentic 작업에는 적합하지 않을 수 있다는 의견을 남겼다.
- MoE에 대한 중요한 오해를 바로잡는 댓글이 있었다. MoE 아키텍처가 VRAM을 절약해준다고 생각하기 쉽지만, 실제로는 모든 가중치를 메모리에 올려야 하며 forward pass당 참조하는 파라미터 수만 줄어드는 것이라고 설명했다. 즉 tok/s는 향상되지만 VRAM 사용량은 dense 모델 대비 크게 줄어들지 않는다는 점을 짚었다.
- 실제로 Gemma 4를 agentic 작업에 써봤는데 성능이 기대 이하였다는 부정적인 경험이 공유됐다. '현재 하위 폴더에서 가장 큰 텍스트 파일을 찾아라'는 간단한 작업을 시켰을 때 tool call을 무한 반복하는 루프에 빠졌다고 했으며, Q8 양자화 버전에서도 동일한 문제가 발생했다고 한다.
- 코딩 작업에는 Gemma 4보다 Qwen3-coder가 더 낫다는 경험도 공유됐다. 최근 Claude Code의 품질과 가격에 실망한 개발자들이 로컬 옵션을 찾는 흐름이 있으며, 비슷한 파라미터 크기의 Qwen3-coder가 코딩 쪽에서는 더 좋은 선택이라는 의견이었다.
- llama.cpp와 Swival을 사용해 Gemma 4를 구동하는 명령어가 댓글로 공유됐다. `llama-server --reasoning auto --fit on -hf unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL --temp 1.0 --top-p 0.95 --top-k 64` 로 서버를 띄운 뒤 `uvx swival --provider llamacpp` 를 실행하면 바로 사용 가능하다고 했다.
- Apple Silicon에서는 Ollama보다 mlx(omlx)가 더 나은 성능을 보인다는 의견이 있었다. 또한 로컬 모델이 '가능한 것' 수준에서 '쾌적하게 사용 가능한 것' 수준으로 넘어가고 있다는 긍정적인 평가도 있었으며, LM Studio, Ollama, vLLM, llama.cpp 등 여러 로컬 백엔드를 동일한 방식으로 쓸 수 있는 코딩 에이전트 CLI인 cloclo 프로젝트도 소개됐다.
How to Apply
- API 비용을 줄이고 싶거나 코드·데이터를 외부 서버에 보내고 싶지 않은 경우, LM Studio 0.4.0 이상을 설치하고 `lms` CLI로 Gemma 4 26B-A4B를 다운로드·로드한 뒤 OpenAI 호환 API로 서빙하면 Claude Code의 백엔드 모델을 무료 로컬 모델로 교체할 수 있다.
- 48GB 미만 메모리 환경이거나 더 빠른 속도가 필요한 경우, MoE 모델 전체 가중치가 메모리에 올라간다는 점을 감안해 모델 선택을 조정해야 한다. 예를 들어 32GB 환경에서는 Gemma 4 E4B나 더 작은 양자화 버전을 검토하거나, Ollama나 llama.cpp를 사용해 `unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL` 같은 경량 양자화 GGUF 파일로 메모리를 줄일 수 있다.
- 도구 호출이 많은 agentic 코딩 작업에 로컬 모델을 적용하려는 경우, Gemma 4 26B-A4B는 tau2 벤치마크 68%로 Qwen3.5 35B-A3B(81%)에 비해 취약하다는 점을 참고해야 한다. 이런 용도에는 Qwen3-coder 같은 coding-specialized 모델을 먼저 평가해보는 것이 좋다.
- GUI 없는 서버나 CI/CD 환경에 로컬 LLM을 통합하고 싶다면, LM Studio 0.4.0의 headless 모드(lms CLI + llmster 데몬)를 사용하거나 llama.cpp server를 직접 실행하는 방식을 선택할 수 있다. llama.cpp는 `llama-server --reasoning auto --fit on -hf <모델명> --temp 1.0` 형태로 바로 서버를 띄울 수 있어 설정이 간단하다.
Code Example
# llama.cpp + Swival을 사용한 Gemma 4 26B-A4B 로컬 서버 실행
$ llama-server \
--reasoning auto \
--fit on \
-hf unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL \
--temp 1.0 --top-p 0.95 --top-k 64
# 별도 터미널에서 Swival 에이전트 실행
$ uvx swival --provider llamacpp
# Ollama로 실행하는 경우
$ ollama run gemma4:26bTerminology
관련 논문
Swift로 LLM 학습시키기 Part 1: 행렬 곱셈을 Gflop/s에서 Tflop/s로 끌어올리기
Apple Silicon에서 Swift로 직접 행렬 곱셈 커널을 구현하며 CPU, SIMD, AMX, GPU(Metal)를 단계별로 최적화해 Gflop/s에서 Tflop/s 수준까지 성능을 높이는 과정을 상세히 설명한 글이다. 프레임워크 없이 LLM 학습의 핵심 연산을 밑바닥부터 구현하고 싶은 개발자에게 Apple Silicon의 성능 한계를 체감할 수 있는 드문 자료다.
fsync 없이 로컬 스토리지 엔진을 crash-consistent하게 만든 방법
FractalBits가 fsync 없이 SSD 전용 KV 스토리지 엔진을 구현해 동일 조건 대비 약 65% 높은 쓰기 성능을 달성한 설계 방법을 공유했다. fsync의 메타데이터 오버헤드를 피하기 위해 사전 할당, O_DIRECT, SSD 원자 쓰기 단위 정렬 저널을 조합한 구조가 핵심이다.
Google Chrome, 사용자 동의 없이 4GB AI 모델(Gemini Nano)을 몰래 설치
Google Chrome이 사용자 동의 없이 Gemini Nano 4GB 모델 파일을 자동 다운로드하고, 삭제해도 재다운로드되는 문제가 발견됐다. GDPR 위반 가능성과 수십억 대 기기에 적용될 때의 환경 비용 문제가 제기되고 있다.
OpenAI가 대규모 저지연 Voice AI를 제공하는 방법
OpenAI가 9억 명 이상의 사용자에게 실시간 음성 AI를 제공하기 위해 WebRTC 스택을 어떻게 재설계했는지 설명하는 글로, relay + transceiver 분리 아키텍처의 설계 결정과 trade-off를 상세히 다룬다.
Truncated Decoding Tree의 결정론적 탐색을 통한 효율적인 Test-Time Inference
Self-consistency의 중복 샘플링 낭비를 없애는 결정론적 트리 탐색 디코딩 기법 DLE로 수학/코드 추론 성능과 속도를 동시에 개선
GoModel – Go로 작성된 오픈소스 AI Gateway
OpenAI, Anthropic, Gemini 등 여러 AI 프로바이더를 하나의 OpenAI 호환 API로 묶어주는 Go 기반 오픈소스 AI 게이트웨이로, LiteLLM의 컴파일 언어 대안이다.