<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Llama.cpp on To the Moon</title><link>https://junstellar.github.io/tags/llama.cpp/</link><description>Recent content in Llama.cpp on To the Moon</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Mon, 06 Jul 2026 20:45:00 +0900</lastBuildDate><atom:link href="https://junstellar.github.io/tags/llama.cpp/index.xml" rel="self" type="application/rss+xml"/><item><title>게이밍 노트북으로 나만의 LLM 돌리기 — llama.cpp로 완전 무료·오프라인 AI 만들기</title><link>https://junstellar.github.io/p/llama-cpp-local-llm/</link><pubDate>Mon, 06 Jul 2026 20:45:00 +0900</pubDate><guid>https://junstellar.github.io/p/llama-cpp-local-llm/</guid><description>&lt;p&gt;요즘 클로드나 챗GPT 안 쓰는 사람이 없죠. 그런데 이걸 &lt;strong&gt;인터넷도 없이, 요금도 없이, 내 노트북에서 직접&lt;/strong&gt; 돌릴 수 있다면 어떨까요? &amp;ldquo;그건 서버실에 GPU 잔뜩 있어야 하는 거 아냐?&amp;rdquo; 싶은데, 결론부터 말하면 &lt;strong&gt;집에 있는 게이밍 노트북 한 대로, 돈 한 푼 안 들이고&lt;/strong&gt; 됩니다. 지난번엔 ComfyUI로 &amp;lsquo;그림 그리는 로컬 서버&amp;rsquo;를 만들었는데, 이번엔 &lt;code&gt;llama.cpp&lt;/code&gt;로 **&amp;lsquo;말하고 글 쓰는 LLM&amp;rsquo;**을 내 GPU에 올려본 실전 기록입니다.&lt;/p&gt;
&lt;h2 id="왜-굳이-로컬로-돌릴까요"&gt;왜 굳이 로컬로 돌릴까요?
&lt;/h2&gt;&lt;p&gt;솔직히 똑똑함만 따지면 클라우드 AI가 위입니다. 그런데도 로컬로 돌리는 이유가 분명히 있어요.&lt;/p&gt;
&lt;p&gt;가장 큰 건 &lt;strong&gt;토큰을 무제한으로 쓸 수 있다&lt;/strong&gt;는 점입니다. 클라우드 API는 글자(토큰) 하나하나에 요금이 붙죠. 문서 수백 개를 요약하거나, 로그 수만 줄을 분류하거나, 밤새 뭔가를 돌리다 보면 요금이 은근히 무섭게 불어납니다. 로컬은 전기값 빼곤 0원이라, &amp;ldquo;이거 토큰 아까운데…&amp;rdquo; 하고 망설일 일이 없어요. 프롬프트를 마음껏 길게 쓰고, 마음에 들 때까지 몇 번이고 다시 돌려도 됩니다.&lt;/p&gt;
&lt;p&gt;여기에 이런 것들이 더 붙습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;속도 제한이 없어요.&lt;/strong&gt; API는 분당 요청 수에 제한이 걸려서 대량 작업을 하면 계속 기다려야 하는데, 내 GPU는 온전히 내 것이라 줄 설 일이 없습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;데이터가 밖으로 안 나갑니다.&lt;/strong&gt; 회사 내부 문서, 개인정보, 아직 공개 안 한 코드처럼 외부에 올리기 껄끄러운 걸 다룰 때 이게 결정적이에요. 애초에 전송을 안 하니 유출될 게 없죠.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;인터넷이 필요 없습니다.&lt;/strong&gt; 비행기 안이든, 네트워크가 막힌 폐쇄망이든 그대로 돌아갑니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;모델이 갑자기 사라지지 않아요.&lt;/strong&gt; 클라우드 모델은 어느 날 구버전이 종료되곤 하는데, 내 디스크에 받아둔 파일은 영원히 그 버전 그대로입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;한마디로 **&amp;ldquo;똑똑함은 클라우드, 자유도·비용·프라이버시는 로컬&amp;rdquo;**입니다. 민감한 데이터를 다루거나 같은 작업을 잔뜩 반복할수록 로컬이 빛을 발해요.&lt;/p&gt;
&lt;h2 id="로컬-llm-뭘로-돌리죠--후보-3가지"&gt;로컬 LLM, 뭘로 돌리죠? — 후보 3가지
&lt;/h2&gt;&lt;p&gt;방법이 몇 가지 있는데, 셋을 비교해보고 골랐습니다.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;도구&lt;/th&gt;
					&lt;th&gt;장점&lt;/th&gt;
					&lt;th&gt;아쉬운 점&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Ollama&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;명령어 한 줄이면 바로 뜬다, 제일 쉬움&lt;/td&gt;
					&lt;td&gt;속은 결국 llama.cpp, 세밀한 튜닝엔 한 겹 껴 있음&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;LM Studio&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;예쁜 GUI, 클릭 몇 번&lt;/td&gt;
					&lt;td&gt;프로그램에서 불러다 자동화하기엔 무거움&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;llama.cpp ← 선택&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;엔진 그 자체&lt;/strong&gt;, VRAM 짜내기 최강, OpenAI 호환 API&lt;/td&gt;
					&lt;td&gt;명령어에 조금 익숙해져야 함&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;사실 위의 Ollama·LM Studio가 안에서 실제로 돌리는 &lt;strong&gt;엔진이 바로 llama.cpp&lt;/strong&gt;예요. GPU에 레이어를 몇 개나 올릴지까지 손으로 조절할 수 있어서 8GB 노트북에서 짜내기 가장 좋고, 딸려오는 &lt;code&gt;llama-server&lt;/code&gt;가 &lt;strong&gt;OpenAI랑 똑같은 형식의 API&lt;/strong&gt;를 열어줘서 어떤 앱이든 깔끔하게 붙습니다.&lt;/p&gt;
&lt;h2 id="전체-그림--원리는-간단합니다"&gt;전체 그림 — 원리는 간단합니다
&lt;/h2&gt;&lt;p&gt;원리는 ComfyUI 때랑 똑같아요. 무거운 계산은 로컬 GPU가 하고, 바깥 프로그램은 API로 부르기만 합니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;사용자/앱: &amp;#34;이 문단 요약해줘&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;llama-server (로컬, http://127.0.0.1:8080/v1) ← OpenAI 호환 API
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GGUF 모델이 RTX 4060에서 토큰을 하나씩 생성
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;스트리밍으로 답변이 흘러나옴
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;두 단어만 알고 가면 됩니다. &lt;strong&gt;llama.cpp&lt;/strong&gt;는 C/C++로 짠 LLM 추론 엔진이라 GPU가 약해도 모델을 CPU와 GPU에 나눠 올려 돌립니다. &lt;strong&gt;GGUF&lt;/strong&gt;는 llama.cpp 전용 모델 포맷인데, 원본 모델을 &lt;strong&gt;양자화&lt;/strong&gt;해서 용량과 VRAM 사용량을 확 줄여놓은 파일이에요.&lt;/p&gt;
&lt;h2 id="내-노트북으로-될까--사양부터-확인"&gt;내 노트북으로 될까? — 사양부터 확인
&lt;/h2&gt;&lt;p&gt;일단 될지부터 따져봤습니다. 지난 ComfyUI 글과 같은 HP Victus 16 노트북이에요.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;항목&lt;/th&gt;
					&lt;th&gt;필요 사양 (7~8B 모델)&lt;/th&gt;
					&lt;th&gt;내 노트북&lt;/th&gt;
					&lt;th&gt;판정&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;GPU VRAM&lt;/td&gt;
					&lt;td&gt;6GB 이상 (Q4 기준)&lt;/td&gt;
					&lt;td&gt;RTX 4060 Laptop 8GB&lt;/td&gt;
					&lt;td&gt;통과&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM&lt;/td&gt;
					&lt;td&gt;16GB&lt;/td&gt;
					&lt;td&gt;16GB&lt;/td&gt;
					&lt;td&gt;통과&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;디스크&lt;/td&gt;
					&lt;td&gt;모델당 약 5GB&lt;/td&gt;
					&lt;td&gt;여유 충분&lt;/td&gt;
					&lt;td&gt;통과&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;VRAM 8GB면 &lt;strong&gt;7~8B급 모델을 Q4로 양자화했을 때 통째로 GPU에 올라갑니다.&lt;/strong&gt; 이 구간이 제일 빨라요. 13~14B급부터는 일부를 RAM으로 내려야 해서 속도가 뚝 떨어지고, 30B 이상은 이 노트북엔 좀 욕심입니다.&lt;/p&gt;
&lt;h2 id="모델-고르기--양자화가-절반입니다"&gt;모델 고르기 — &amp;lsquo;양자화&amp;rsquo;가 절반입니다
&lt;/h2&gt;&lt;p&gt;같은 모델이라도 **양자화(quantization)**를 어떻게 하느냐에 따라 용량·속도·품질이 갈립니다. 여기서 첫 삽질을 했어요. &amp;ldquo;이왕이면 고품질이지&amp;rdquo; 하고 Q8을 받았다가 &lt;strong&gt;VRAM이 부족해서 모델이 반쪽만 GPU에 올라가는&lt;/strong&gt; 상황을 만났거든요. 결국 8GB의 현실적인 정답은 **&lt;code&gt;Q4_K_M&lt;/code&gt;**이었습니다.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;양자화&lt;/th&gt;
					&lt;th&gt;7B 모델 용량&lt;/th&gt;
					&lt;th&gt;특징&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Q8_0&lt;/td&gt;
					&lt;td&gt;~7.5GB&lt;/td&gt;
					&lt;td&gt;원본에 제일 가깝지만 8GB엔 버겁다&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Q4_K_M&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;~4.5GB&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;속도·품질 균형, 로컬의 사실상 표준&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Q3_K_M&lt;/td&gt;
					&lt;td&gt;~3.5GB&lt;/td&gt;
					&lt;td&gt;더 가벼운 대신 품질 저하가 슬슬 느껴진다&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;모델은 7~8B급 instruct 계열(예: Qwen2.5-7B-Instruct, Llama-3.1-8B-Instruct 등)이면 무난합니다. GGUF 파일은 보통 Hugging Face의 &lt;code&gt;bartowski&lt;/code&gt; 같은 배포처에서 양자화별로 받을 수 있어요.&lt;/p&gt;
&lt;h2 id="설치하기-windows-11-기준"&gt;설치하기 (Windows 11 기준)
&lt;/h2&gt;&lt;h3 id="1-llamacpp-바이너리-받기"&gt;1. llama.cpp 바이너리 받기
&lt;/h3&gt;&lt;p&gt;소스를 직접 빌드해도 되지만, 제일 빠른 길은 &lt;strong&gt;미리 빌드된 CUDA 바이너리&lt;/strong&gt;를 받는 겁니다. &lt;a class="link" href="https://github.com/ggml-org/llama.cpp/releases" target="_blank" rel="noopener"
 &gt;GitHub 릴리스&lt;/a&gt;에서 &lt;code&gt;llama-bxxxx-bin-win-cuda-x64.zip&lt;/code&gt; 같은 파일을 받아 &lt;code&gt;C:\llama&lt;/code&gt;에 풀면 끝이에요.&lt;/p&gt;
&lt;h3 id="2-gguf-모델-다운로드"&gt;2. GGUF 모델 다운로드
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 7B급 Q4_K_M 모델 (~4.5GB) → C:\llama\models\ 에 저장&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;curl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;-L&lt;/span&gt; &lt;span class="n"&gt;-o&lt;/span&gt; &lt;span class="n"&gt;C:&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;llama&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="nb"&gt;model-q4_k_m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;gguf&lt;/span&gt; &lt;span class="p"&gt;^&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://huggingface.co/bartowski/Qwen2.5-7B-Instruct-GGUF/resolve/main/Qwen2.5-7B-Instruct-Q4_K_M.gguf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="3-서버-실행"&gt;3. 서버 실행
&lt;/h3&gt;&lt;p&gt;여기서 딱 하나만 기억하면 됩니다. &lt;strong&gt;&lt;code&gt;-ngl&lt;/code&gt;&lt;/strong&gt; — GPU에 올릴 레이어 수예요. &lt;code&gt;-ngl 99&lt;/code&gt;는 &amp;ldquo;가능한 만큼 다 GPU에 올려라&amp;quot;라는 뜻이고, 7~8B Q4 모델은 8GB에 통째로 들어갑니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;C:&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;llama&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="nb"&gt;llama-server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;-m&lt;/span&gt; &lt;span class="n"&gt;C:&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;llama&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="nb"&gt;model-q4_k_m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;gguf&lt;/span&gt; &lt;span class="n"&gt;-ngl&lt;/span&gt; &lt;span class="mf"&gt;99&lt;/span&gt; &lt;span class="n"&gt;-c&lt;/span&gt; &lt;span class="mf"&gt;8192&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-port&lt;/span&gt; &lt;span class="mf"&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-ngl 99&lt;/code&gt; : 전 레이어 GPU에 올리기 (VRAM 모자라면 숫자를 낮춰 일부만)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-c 8192&lt;/code&gt; : 컨텍스트 길이 8k 토큰&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--port 8080&lt;/code&gt; : 서버 포트&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-잘-도나-확인"&gt;4. 잘 도나 확인
&lt;/h3&gt;&lt;p&gt;브라우저에서 &lt;code&gt;http://127.0.0.1:8080&lt;/code&gt;을 열면 채팅 UI가 바로 뜹니다. GPU를 제대로 쓰는지는 서버 켤 때 로그의 &lt;code&gt;offloaded 29/29 layers to GPU&lt;/code&gt; 같은 줄로 확인해요. 저 숫자가 꽉 차 있으면 성공입니다.&lt;/p&gt;
&lt;h3 id="흔한-함정-3가지-미리-알려드려요"&gt;흔한 함정 3가지 (미리 알려드려요)
&lt;/h3&gt;&lt;p&gt;설치 자체는 쉬운데, 딱 이 세 군데서 사람들이 잘 걸립니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;함정 1 — CPU 빌드를 받아버림.&lt;/strong&gt; 릴리스에 파일이 여러 개라, 무심코 &lt;code&gt;win-cpu&lt;/code&gt; 빌드를 받으면 GPU가 놀고 답이 굼벵이처럼 느립니다. &lt;strong&gt;NVIDIA면 반드시 &lt;code&gt;cuda&lt;/code&gt; 빌드&lt;/strong&gt;를 받으세요. (AMD는 &lt;code&gt;vulkan&lt;/code&gt; 빌드)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;함정 2 — &lt;code&gt;-ngl&lt;/code&gt;을 안 줌.&lt;/strong&gt; 이 옵션을 빼먹으면 모델이 전부 CPU에서 돌아 엄청 느려집니다. &amp;ldquo;GPU 있는데 왜 이렇게 느리지?&amp;rdquo; 싶으면 십중팔구 이거예요.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;함정 3 — 욕심내서 큰 모델·높은 양자화.&lt;/strong&gt; 위에서 겪은 그 삽질입니다. VRAM을 넘기면 속도가 확 죽어요. 8GB면 7~8B Q4가 정답입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="앱이랑-붙이기--openai-호환-api"&gt;앱이랑 붙이기 — OpenAI 호환 API
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama-server&lt;/code&gt;가 진짜 편한 건, &lt;strong&gt;OpenAI랑 똑같은 형식의 API&lt;/strong&gt;를 열어준다는 점이에요. OpenAI 쓰던 코드에서 &lt;strong&gt;주소만 로컬로 바꾸면&lt;/strong&gt; 그대로 붙습니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;http://127.0.0.1:8080/v1&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;local&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;local&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;안녕, 자기소개 해줘&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;문서 요약, 코드 자동완성, 번역 같은 걸 &lt;strong&gt;오프라인·무과금&lt;/strong&gt;으로 돌리는 나만의 백엔드가 이걸로 완성됩니다.&lt;/p&gt;
&lt;h2 id="어느-정도-빠를까요"&gt;어느 정도 빠를까요
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;7&lt;del&gt;8B Q4_K_M을 전 레이어 GPU에 올린 기준으로 **초당 40&lt;/del&gt;60토큰 정도**. 눈으로 따라 읽기 벅찰 만큼 빠릅니다.&lt;/li&gt;
&lt;li&gt;첫 응답까지는 모델을 VRAM에 올리는 시간 포함 몇 초.&lt;/li&gt;
&lt;li&gt;컨텍스트를 길게(예: 16k) 주면 VRAM이 부족해질 수 있는데, 그땐 &lt;code&gt;-ngl&lt;/code&gt; 숫자를 낮춰 일부를 RAM으로 내리면 됩니다. 조금 느려지는 대신 돌아는 가요.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="솔직한-결론--어디까지-되고-어디부터-안-되나"&gt;솔직한 결론 — 어디까지 되고, 어디부터 안 되나
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;됩니다:&lt;/strong&gt; 공짜로, 인터넷 없이, 내 노트북에서 꽤 쓸 만한 LLM이 돌아갑니다. 요약·번역·분류·코딩 보조 같은 실무엔 7~8B로도 충분해요. 무엇보다 &lt;strong&gt;토큰 걱정 없이 마음껏&lt;/strong&gt; 굴릴 수 있는 게 크죠.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;한계:&lt;/strong&gt; 아무리 좋은 로컬 모델도 최상위 클라우드 모델(클로드 등)만큼 똑똑하진 않습니다. 복잡한 추론이나 긴 코드 설계는 아직 클라우드가 낫습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;현실적인 조합:&lt;/strong&gt; 그래서 저는 &lt;strong&gt;민감한 데이터·대량 반복 작업은 로컬, 어려운 문제는 클라우드&lt;/strong&gt;로 나눠 쓰는 게 제일 낫다고 봐요. 둘은 경쟁이 아니라 역할 분담입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;돈 안 들이고 노트북 한 대로 여기까지 된다는 것 자체가, AI 문턱이 얼마나 낮아졌는지 보여주는 것 같습니다. 다음엔 이 로컬 LLM을 클로드 코드 같은 도구에 물려서 &lt;strong&gt;완전 오프라인 코딩 도우미&lt;/strong&gt;로 만들어볼 생각이에요.&lt;/p&gt;</description></item></channel></rss>