<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>메모리관리 on Simon의 AI 시대에 살아남는 법</title><link>https://mhub.uk/tags/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B4%80%EB%A6%AC/</link><description>Recent content in 메모리관리 on Simon의 AI 시대에 살아남는 법</description><generator>Hugo</generator><language>ko-KR</language><copyright>2026 mhub. 이 블로그의 모든 글·그림과 전자책(그림으로 배우는 시리즈)의 저작권은 mhub에 있으며, 저작권자의 허락 없는 무단 복제·배포·전재를 금지합니다. 이용 허락이나 오류 제보는 문의하기로 보내 주세요.</copyright><lastBuildDate>Sat, 17 Oct 2026 18:25:00 +0900</lastBuildDate><atom:link href="https://mhub.uk/tags/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B4%80%EB%A6%AC/index.xml" rel="self" type="application/rss+xml"/><item><title>여러 로컬 LLM 모델을 번갈아 테스트할 때 알아야 할 것 — ollama ps와 keep_alive</title><link>https://mhub.uk/posts/mac-12-ollama-ps-keep-alive-model-switching/</link><pubDate>Sat, 17 Oct 2026 18:25:00 +0900</pubDate><guid>https://mhub.uk/posts/mac-12-ollama-ps-keep-alive-model-switching/</guid><description>&lt;p&gt;4개 모델을 순서대로 벤치마크하던 중, 이상하게 다음 모델의 로딩이 평소보다 느리게 느껴지는 순간이 있었다. &lt;code&gt;ps aux&lt;/code&gt;로 확인해보니 원인이 바로 보였다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ps aux &lt;span class="p"&gt;|&lt;/span&gt; grep llama-server
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;simon &lt;span class="m"&gt;41203&lt;/span&gt; 539.6 ... llama-server --model .../qwen2.5-coder-14b ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;simon &lt;span class="m"&gt;40891&lt;/span&gt; 0.0 ... llama-server --model .../deepseek-coder-v2-16b ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;새로 시작한 14B 테스트는 CPU 539.6%로 활발히 계산 중인데, &lt;strong&gt;바로 아래에 방금 전에 테스트했던 DeepSeek 16B 프로세스가 CPU 0%로 여전히 살아있었다.&lt;/strong&gt; 이미 다른 터미널에서 Aider 세션을 종료했는데도 말이다.&lt;/p&gt;
&lt;h2 id="keep_alive-알아서-안-꺼주는-5분"&gt;keep_alive, 알아서 안 꺼주는 5분&lt;/h2&gt;
&lt;p&gt;원인은 Ollama의 &lt;code&gt;keep_alive&lt;/code&gt; 메커니즘이었다. Ollama는 한 번 로드한 모델을 요청이 끝난 뒤에도 &lt;strong&gt;기본 5분간 메모리에 유지&lt;/strong&gt;한다. 같은 모델로 연속 요청이 들어올 걸 대비한 최적화인데, 이게 여러 모델을 짧은 간격으로 번갈아 테스트하는 상황에서는 오히려 방해가 된다 — 이전 모델이 여전히 RAM을 점유하고 있어서, 새 모델이 로드될 때 쓸 수 있는 메모리 대역폭이 줄어들기 때문이다.&lt;/p&gt;</description></item><item><title>MoE 모델인데 왜 다 무겁다 — Ollama가 모델 전체를 메모리에 올리는 이유</title><link>https://mhub.uk/posts/mac-11-why-moe-models-still-eat-all-your-ram/</link><pubDate>Fri, 16 Oct 2026 13:35:00 +0900</pubDate><guid>https://mhub.uk/posts/mac-11-why-moe-models-still-eat-all-your-ram/</guid><description>&lt;p&gt;이번 로컬 LLM 프로젝트를 시작할 때 세웠던 가설 하나가 있다. &amp;ldquo;MoE(Mixture of Experts) 구조 모델은 토큰마다 일부 전문가(expert) 파라미터만 활성화하니까, 활성 파라미터 수가 작을수록 CPU에서도 더 빠르고 가벼울 것이다.&amp;rdquo; DeepSeek-Coder-V2(활성 2.4B)를 Qwen3-Coder-30B(활성 3.3B)보다 더 유리하게 볼 근거로 삼았던 가설이다.&lt;/p&gt;
&lt;p&gt;실측해보니 속도 면에서는 어느 정도 맞아떨어졌지만(DeepSeek이 가장 빨랐다), &lt;strong&gt;메모리 사용량 관점에서는 이 가설이 틀렸다.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="계산에-쓰는-파라미터--메모리에-올려야-하는-파라미터"&gt;계산에 쓰는 파라미터 ≠ 메모리에 올려야 하는 파라미터&lt;/h2&gt;
&lt;p&gt;MoE 모델이 &amp;ldquo;일부 파라미터만 쓴다&amp;quot;는 건 &lt;strong&gt;매 토큰의 계산량&lt;/strong&gt;에 대한 이야기다. 그런데 어떤 토큰에서 어떤 expert가 선택될지는 그 순간의 입력에 따라 동적으로 정해진다. 즉 이번 토큰에서 안 쓰인 expert가 다음 토큰에서는 쓰일 수 있다 — &lt;strong&gt;결국 모든 expert가 언제든 호출될 수 있으므로, 전체 파라미터가 메모리에 상주하고 있어야 한다.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>