Simon의 AI 시대에 살아남는 법

메모리관리

메모리관리 총 2개의 포스트
맥 로컬 LLM 시리즈 — 여러 로컬 모델 전환 시 ollama ps·keep_alive 활용법
개발 일지

여러 로컬 LLM 모델을 번갈아 테스트할 때 알아야 할 것 — ollama ps와 keep_alive

4개 모델을 순서대로 벤치마크하던 중, 이상하게 다음 모델의 로딩이 평소보다 느리게 느껴지는 순간이 있었다. ps aux로 확인해보니 원인이 바로 보였다. $ ps aux | grep llama-server simon 41203 539.6 ... llama-server --model .../qwen2.5-coder-14b ... simon 40891 0.0 ... llama-server --model .../deepseek-coder-v2-16b ... 새로 시작한 14B 테스트는 CPU 539.6%로 활발히 계산 중인데, 바로 아래에 방금 전에 테스트했던 DeepSeek 16B 프로세스가 CPU 0%로 여전히 살아있었다. 이미 다른 터미널에서 Aider 세션을 종료했는데도 말이다. keep_alive, 알아서 안 꺼주는 5분 원인은 Ollama의 keep_alive 메커니즘이었다. Ollama는 한 번 로드한 모델을 요청이 끝난 뒤에도 기본 5분간 메모리에 유지한다. 같은 모델로 연속 요청이 들어올 걸 대비한 최적화인데, 이게 여러 모델을 짧은 간격으로 번갈아 테스트하는 상황에서는 오히려 방해가 된다 — 이전 모델이 여전히 RAM을 점유하고 있어서, 새 모델이 로드될 때 쓸 수 있는 메모리 대역폭이 줄어들기 때문이다.

2026.10.17 18:25 조회수: – 댓글: –
맥 로컬 LLM 시리즈 — MoE 모델이 메모리는 그대로 다 잡아먹는 이유
개발 일지

MoE 모델인데 왜 다 무겁다 — Ollama가 모델 전체를 메모리에 올리는 이유

이번 로컬 LLM 프로젝트를 시작할 때 세웠던 가설 하나가 있다. “MoE(Mixture of Experts) 구조 모델은 토큰마다 일부 전문가(expert) 파라미터만 활성화하니까, 활성 파라미터 수가 작을수록 CPU에서도 더 빠르고 가벼울 것이다.” DeepSeek-Coder-V2(활성 2.4B)를 Qwen3-Coder-30B(활성 3.3B)보다 더 유리하게 볼 근거로 삼았던 가설이다. 실측해보니 속도 면에서는 어느 정도 맞아떨어졌지만(DeepSeek이 가장 빨랐다), 메모리 사용량 관점에서는 이 가설이 틀렸다. 계산에 쓰는 파라미터 ≠ 메모리에 올려야 하는 파라미터 MoE 모델이 “일부 파라미터만 쓴다"는 건 매 토큰의 계산량에 대한 이야기다. 그런데 어떤 토큰에서 어떤 expert가 선택될지는 그 순간의 입력에 따라 동적으로 정해진다. 즉 이번 토큰에서 안 쓰인 expert가 다음 토큰에서는 쓰일 수 있다 — 결국 모든 expert가 언제든 호출될 수 있으므로, 전체 파라미터가 메모리에 상주하고 있어야 한다.

2026.10.16 13:35 조회수: – 댓글: –