Five Days of Living with a Local LLM on an M4 MacBook

Last week I wrote Five days before Google I/O, the AI front has split into three , and at the end I dropped one line: "Local LLMs are lonely." That line stayed in my head all week. It read too clean. A snapshot of five limits laid out at one moment in time, then a verdict. So I decided to spend five days actually living inside that snapshot… May 11 Monday morning to May 15 Friday evening. Exactly five days. The rule was simple. Run the main workflow on a local LLM. The Anthropic and OpenAI APIs stay on, but every time my hand reaches for one, redirect it to Ollama instead. Log every escape. Then at the end of the five days, look at what hardened and what scattered. By Friday evening, two things had happened at once. My usual five-day API bill of around $45 stopped at $14. That was the intended result. But every single day I escaped to the cloud once or twice, sometimes three times. The interesting part wasn't that I escaped. It was that the escapes weren't acts of ...

M4 맥북에서 로컬 LLM으로 5일을 살아본 후

지난주에 Google I/O 닷새 전, AI 전선이 세 갈래로 갈라졌다 를 쓰면서 "로컬 LLM은 외롭다"는 한 줄을 마지막 자리에 박아두었다. 그 자리가 마음에 걸렸다. 한 시점 사진처럼 다섯 한계를 펼쳐놓고 끝낸 게, 너무 깔끔하게 정리한 결론처럼 보였다. 그래서 닷새 동안 직접 살아보기로 했다… 5월 11일 월요일 아침부터 5월 15일 금요일 저녁까지. 정확히 5일. 룰은 단순했다. 메인 워크플로를 로컬 LLM으로 돌린다. Anthropic API도, OpenAI API도 끄지는 않되, 손이 먼저 가는 자리를 의도적으로 Ollama 쪽으로 옮긴다. 도망갈 때마다 기록한다. 그리고 닷새가 끝나는 자리에서 무엇이 굳었고 무엇이 흩어졌는지 본다. 5일째 저녁, 두 가지가 동시에 일어났다. 평소 닷새 동안 $45 정도 나가던 API 청구서가 $14에 멈췄다. 그건 의도한 결과다. 그런데 매일 한두 번씩, 어떤 날은 세 번씩 클라우드로 도망갔다. 그 도망이 의지가 약해서 일어난 게 아니라는 점이 흥미로웠다. 매번 합리적인 이유가 있었고, 매번 같은 종류의 자리에서 일어났다. 그 도망의 패턴이 글의 진짜 발견이다. "로컬만 살기"는 단일한 룰이 아니라 사람마다 다른 분기였다. 이게 닷새 동안 일어난 일이다. 5일치 일지 긴 분석을 하기 전에 닷새가 어떻게 흘렀는지 시간순으로 적는다. 추상적 한계는 1편에서 다 펼쳤으니까. 여기는 화요일 오후 3시에 일어난 일, 목요일 새벽 1시에 일어난 일을 적는 자리다. 1일차 (월): 셋업과 첫 한 자릿수 월요일 아침에 셋업부터 다시 했다. 1편에서 깔아본 Qwen3.5 122B를 그대로 쓰되, 이번엔 의도적으로 Ollama 한 번, MLX-LM 한 번 두 가지 백엔드로 동일 모델을 돌려서 차이를 봤다. Ollama에서 qwen3.5:122b-a10b-q4_K_M 을 띄우니 짧은 답 6~8 토큰/초, 긴 답(2,000 토큰 이상 출력)이면 5~6 토큰/초. 첫 토큰 지연(TTF...

I Put a Local LLM on a Company GPU. The ROI Math Got Stranger.

A few days after Part 1 , I dropped the same Qwen3.5 122B onto a company GPU workstation. Part 1 ended with my M4 laptop falling into single-digit tokens-per-second territory. The natural next question followed me around the office: what happens at company scale? The "lonely" place where my notebook ended up — does it look the same on a workstation with a real GPU plugged in? An NVIDIA RTX Pro 6000 Blackwell 96GB happened to be sitting on a test bench. I loaded the same model. Speed jumped 5x to 7x. The 6–8 tokens/second I saw on the M4 became 35–50 tokens/second on the workstation. Chat replies stopped flickering letter-by-letter and started flowing as full sentences. One half of the contradiction from Part 1 — the speed half — was gone. Then I added five teammates to the same box. Average response slid back to single digits. The same phrase reappeared in a different dimension. In Part 1, single digits meant my laptop's raw inference rate. In Part 2, single digits me...

로컬 LLM, 회사에 들여놓으면 정말 ROI가 나오나

1편을 쓰고 며칠이 지났을 때, 회사 GPU 워크스테이션 한 대에 같은 Qwen3.5 122B를 깔아봤다. 1편에서 내 M4 노트북이 한 자릿수로 떨어진 자리를 본 뒤, 자연스럽게 다음 질문이 따라왔다. 그러면 회사 차원은 어떨까. 노트북이 외롭다고 끝낸 그 자리가, GPU가 박힌 워크스테이션에서는 어떻게 보일까. 마침 사내에 시범으로 띄울 수 있는 NVIDIA RTX Pro 6000 Blackwell 96GB 한 대가 있었다. 같은 모델을 거기에 올려봤다. 속도는 5배에서 7배 빨라졌다. M4에서 6~8 토큰/초로 떨어졌던 게 워크스테이션에서는 35~50 토큰/초가 나왔다. 챗 답변이 한 글자씩 깜빡이며 떨어지는 그림이 사라지고, 문장이 통째로 흘러나오는 그림이 됐다. 1편에서 본 한 자릿수 두 개의 어긋남에서 한쪽(속도)이 풀린 것이다. 그리고 팀 5명을 거기 붙였다. 잠시 후 평균 응답이 다시 한 자릿수로 돌아왔다. 같은 단어가 다른 차원에서 또 등장했다. 1편에서는 내 노트북 한 대의 속도가 한 자릿수였고, 이번에는 회사 GPU 한 대를 다섯이 동시에 쓰는 큐가 한 자릿수를 만들었다. 큐가 쌓이는 자리에서 토큰/초가 다시 떨어졌다. 거기서 멈췄으면 "GPU 더 깔자"가 답이었을 텐데, 그 주에 회계팀에 보고서를 들고 갔다가 다른 한 자릿수를 마주쳤다. 시트당 단가를 분해해봤더니, 우리가 쓰던 클라우드 ZDR보다 비싸게 나왔다. 그리고 보안팀에서 "누가 어떤 코드를 어떤 모델에 넣었는지 로그가 있느냐"고 물어왔는데, Ollama에는 그런 로그가 기본으로 안 붙어 있었다. 회사 도입은 한 가지 답이 아니었다. 1편이 "외로움"이라 부른 자리가 회사로 가면 1편을 한 줄로 요약하면 이렇다. 로컬 LLM이 벤치는 따라잡았는데 노트북 위에서는 외롭다. 토큰/초가 한 자릿수다. 그리고 OS 통합도, NPU 활용도, 에이전트 통합도, 배터리도, 발열도 어느 것 하나 제대로 풀리지 않는다. 그 다섯...

Five days before Google I/O, the AI front has split into three

이미지
Trying to figure out how to cut my token usage, I installed Qwen3.5 122B on my M4. And the tokens dropped to single digits… The API calls really did go to zero. Exactly what I wanted. But watching the chat reply flicker out one character at a time, I realized another number had also fallen into single digits. Tokens per second. The same word landed with two meanings at once. Cost in single digits. Speed in single digits. One was the result I wanted. The other I didn't. Between them sat a beat of silence, like an ellipsis. That contradiction is where this post starts. The two single-digit numbers misaligning on my laptop get much larger at the company level. And that misalignment is exactly the next battlefield in the AI industry. A year ago we were watching "who builds the smarter model." Text understanding and reasoning were supposed to decide what came next. But as of May 2026, that race is effectively over. The new battlefield isn't one. It's split into th...

Google I/O 닷새 전, AI 전선이 세 갈래로 갈라졌다

이미지
어떻게 하면 토큰 사용량을 줄일 수 있을까 고민을 하다 Qwen3.5 122B를 내 M4에 깔아봤다. 그리고 토큰이 한 자릿수로 떨어졌다… 의도한 대로 API 호출은 정말 0이 됐다. 그런데 챗 답변이 깜빡이며 한 글자씩 떨어지는 걸 보다가, 초당 토큰 수가 다른 자릿수도 한 자릿수로 떨어졌다는 걸 깨달았다. 같은 단어가 두 의미로 동시에 들렸다. 비용은 한 자릿수, 속도도 한 자릿수. 한쪽은 내가 원한 결과이고 다른 한쪽은 원치 않은 결과다. 그 사이에 줄임표 같은 침묵이 한 박자 끼었다. 이 모순이 글의 출발점이다. 내 노트북에서 일어난 한 자릿수 두 개의 어긋남은 회사 차원으로 가면 훨씬 커진다. 그리고 이 어긋남이 바로 AI 업계의 다음 전쟁터다. 1년 전만 해도 우리는 "누가 더 똑똑한 모델을 만드나"를 보고 있었다. 텍스트 이해와 추론 능력이 다음을 결정한다고 생각했다. 그런데 2026년 5월 현재, 그 경쟁은 사실상 끝났다. 새 전쟁터는 한 갈래가 아니다. 정확히 세 갈래로 갈라지고 있다. 클라우드, 디바이스, 폼팩터. 그리고 그 세 갈래가 동시에 갈라지는 진짜 동력이 있다. OpenAI는 매출 1달러당 2달러를 인퍼런스 비용으로 쓰고 있다. 2026년 한 해 손실 추정치만 14조 원에 가깝고, 현금 소진 기준으로 보면 23조 원 가까이 된다. 이 숫자가 글의 결론에서 다시 나온다. 일단 그 자리를 비워두자. 그중 디바이스 전선에서 가장 큰 모순이 자라고 있다. 내가 M4에서 본 한 자릿수 두 개의 어긋남이 바로 그 모순의 축소판이다. 닷새 뒤 Google I/O가 열린다. Google이 디바이스 전선에 어디까지 패를 깔지를 보면, 이 세 갈래 경쟁의 향방이 어느 정도 정해진다. 이 글은 그 다섯 일 앞에서 쓰는 정리다. 텍스트 추론 경쟁이 끝났다는 신호 먼저 한 가지 사실부터 짚고 가자. 2026년 5월 기준, Anthropic Claude Opus 4.7, OpenAI GPT-5.5, Google Gemin...