M4 맥북 로컬 LLM 닷새 실사용 후기 - Qwen3.5 122B 속도와 컨텍스트 12K 벽
- 공유 링크 만들기
- X
- 이메일
- 기타 앱

지난주에 I/O 닷새 전 AI 판이 어떻게 나뉘었는지 쓴 글 마지막에 로컬 LLM 은 외롭다는 한 줄을 넣었는데, 그게 계속 마음에 걸렸습니다. 한 시점에 찍은 사진처럼 한계 다섯 개를 펼쳐놓고 끝냈으니 너무 깔끔한 결론 같았습니다. 그래서 닷새 동안 직접 그렇게 살아보기로 했습니다. 5월 11일 월요일 아침부터 15일 금요일 저녁까지입니다.
규칙은 단순하게 잡았습니다. 메인 작업을 로컬 LLM 으로 돌립니다. Anthropic API 나 OpenAI API 를 끄지는 않지만 손이 먼저 가는 쪽을 일부러 Ollama 로 바꿔둡니다. 클라우드로 도망갈 때마다 적어둡니다. 닷새가 지나고 뭐가 남고 뭐가 흩어졌는지를 보려는 거였습니다. 처음엔 도망가는 횟수를 줄이는 게 목표인 줄 알았는데, 나중에 보니 그 기록이 제일 쓸모 있었습니다.
닷새째 저녁에 보니 두 가지가 같이 일어나 있었습니다. 평소 닷새면 45달러쯤 나오던 API 청구서가 14달러에서 멈췄습니다. 그건 노린 대로였습니다. 그런데 매일 한두 번, 어떤 날은 세 번씩 클라우드로 도망갔습니다. 의지가 약해서 그런 게 아니었다는 게 재밌었습니다. 매번 그럴 만한 이유가 있었고, 매번 비슷한 상황에서 일어났습니다.
닷새
월요일 아침에는 셋업부터 다시 했습니다. 지난 글에서 깔아봤던 Qwen3.5 122B 를 그대로 쓰되, 이번엔 Ollama 로 한 번, MLX-LM 으로 한 번, 같은 모델을 두 백엔드로 돌려서 차이를 봤습니다.
Ollama 에서 qwen3.5:122b-a10b-q4_K_M 을 띄우니 짧은 답은 초당 6~8 토큰, 2천 토큰 넘게 나오는 긴 답은 5~6 토큰 정도였습니다. 컨텍스트가 길어질수록 첫 토큰이 나오기까지도 몇 초씩 더 걸렸습니다. 메모리를 워낙 많이 먹어서 64GB 통합 메모리에 다른 앱을 띄울 여유가 거의 없었고, 크롬을 닫았습니다. 모델 하나 돌리려고 브라우저를 닫는 건 클라우드를 쓸 때는 생각도 못 해본 일입니다.
MLX-LM 으로 같은 모델을 돌리니 초당 12~14 토큰으로 올라갔습니다. 거의 두 배입니다. MLX 쪽 벤치마크에서는 MoE 모델이면 세 배까지도 난다고 하던데, 제 M4 Max 64GB 에서는 두 배 조금 넘는 정도였습니다. 같은 모델, 같은 양자화인데 백엔드만 바꿔서 두 배가 나왔습니다.
그래도 Apple 의 NPU 는 안 씁니다. M4 Max 에 NPU 가 들어 있는데, MLX-LM 이 Metal 로 GPU 를 쓰는 게 두 배 빠른 겁니다. NPU 는 Core ML 을 거쳐야만 쓸 수 있어서 오픈 진영은 들어가지를 못합니다. 지난 글에서 차 트렁크에 두 번째 엔진을 싣고 다니면서 안 쓴다고 했던 게 닷새 내내 그대로였습니다. 팬이 최고 속도로 도는 소리를 들으면서 그 옆에서 NPU 는 놀고 있다고 생각하니 좀 억울하기도 했습니다.
월요일 저녁에 메모를 하나 적었습니다. "한 자릿수가 두 배가 돼도 한 자릿수다." 초당 6 토큰이 14 토큰이 됐지만 GPT-5.5 API 가 초당 100 토큰을 넘게 내는 것과 비교하면 여전히 일곱 배 차이입니다. 그런데 그 차이가 일의 종류에 따라 다르게 느껴진다는 걸 닷새 동안 알게 됐습니다. 한 줄짜리 답에서는 일곱 배가 거의 안 느껴집니다. 첫 토큰이 나오기까지는 두 환경이 비슷하니까요. 답이 길어질수록 차이가 쌓입니다. 토큰/초라는 숫자 하나가 치명적인 일이 있고 별로 상관없는 일이 있었습니다.
화요일 오후 3시쯤, 파일 하나를 통째로 리팩토링해 달라고 했습니다. 60줄짜리 React 컴포넌트였고 상태 관리를 useState 에서 useReducer 로 바꾸는 작업이었습니다. 답이 시작되기까지 5초가 걸렸고 그 뒤로 한 글자씩 떨어졌습니다. 60줄이 다 나오는 데 4분 12초가 걸렸습니다. 그동안 저는 다른 탭으로 가서 슬랙 메시지 두 개에 답하고 다음 작업 메모를 정리했습니다. 답이 다 나와서 돌아왔을 때는 머릿속이 이미 딴 데 가 있었습니다. 코드를 다시 보면서 내가 이걸 왜 부탁했더라부터 떠올려야 했습니다.
지난 글에서는 추론 속도가 느리다고 한 줄로 썼는데, 닷새 동안 살아보니 그게 다른 모양으로 나타났습니다. 느린 것 자체보다 느려서 집중이 끊기고, 끊기는 사이에 맥락이 머릿속에서 빠져나가는 게 문제였습니다. 답을 받았을 때 그 답을 볼 정신이 이미 다른 일에 가 있습니다. 클라우드로 할 때는 이런 걸 느낄 틈이 없었습니다. 8초 만에 답이 오니까 부탁한 이유를 잊을 시간이 없습니다. 느린 모델을 쓰고 나서야 제가 생각보다 훨씬 짧은 호흡으로 일을 이어가고 있었다는 게 보였습니다.
방법은 두 가지가 있었습니다. 4분 동안 다른 일을 안 하는 것. 그러면 4분이 그냥 통째로 비는 시간이 됩니다. 그걸 손해로 받아들이든지 옆에 짧은 책이라도 한 권 두고 살든지 해야 합니다. 아니면 60줄을 한 번에 부탁하지 않고 20줄씩 세 번 부탁하는 것. 그러면 토큰/초가 한 자릿수여도 한 번이 1분 안에 끝나서 집중이 안 끊깁니다. 대신 60줄을 미리 머리로 세 덩어리로 나눠둬야 하는 수고가 생깁니다. 화요일 저녁쯤엔 두 번째로 정착했습니다. 일을 작게 쪼개는 습관이 닷새 동안 제일 빨리 몸에 붙은 변화였습니다.
쪼개고 나서 든 생각은, 애초에 60줄을 한 번에 맡긴 게 일의 크기에 비해 과했던 건 아닌가 하는 거였습니다. 클라우드는 빠르니까 크게 던져도 티가 안 났을 뿐이고, 20줄씩 받아서 보는 편이 원래 제가 확인하기에도 편한 크기였을 수 있습니다. 60줄이 한 번에 오면 훑어보고 넘어가기 쉬운데, 20줄이면 한 줄씩 읽게 됩니다. 느린 모델이 일의 크기를 다시 재게 만든 셈입니다. 그렇다고 클라우드로 돌아가서도 계속 쪼갤지는 잘 모르겠습니다. 빠르면 아마 다시 크게 던질 것 같습니다.
수요일 새벽 1시에는 글 한 편 다듬는 일을 로컬에 맡겨봤습니다. 4천 자쯤 되는 한글 글과 영문 번역 초안이었습니다. Qwen3.5 에 글 전체를 붙여넣고 이 문장 호흡을 자연스럽게 다듬어 달라는 요청을 계속 반복했습니다. 처음 다섯 번 정도는 답이 또렷했는데, 여섯 번째쯤부터 갑자기 이상해졌습니다. 같은 문장을 두 번 추천하기 시작했고, 한 번은 본문에 없는 단어를 제가 쓴 것처럼 인용했습니다.
보니까 쌓인 컨텍스트가 12K 토큰 근처였습니다. Ollama 문서를 다시 읽어보니 기본 num_ctx 가 2,048 토큰이고, 직접 늘리지 않으면 그 뒤는 사용자도 모르게 잘려 나간다고 합니다. 저는 32K 로 설정해 뒀는데, 그 안에서도 컨텍스트가 쌓이면 RoPE scaling 때문에 attention 품질이 떨어지는 문제가 같이 옵니다. 모델 카드에 적힌 262K 가 실제로 일할 때는 그대로 살아 있지 않은 겁니다.
그래서 Gemma 3 27B Q4 로 바꿨습니다. 더 작은 모델이라 같은 12K 가 덜 버겁습니다. 글이 거의 끝날 무렵에는 다시 Qwen 으로 돌아왔습니다. 한 작업 안에서 모델 두 개를 바꿔가며 쓴 건데, 클라우드 API 로 할 때는 해본 적 없는 일입니다. GPT-5.5 는 그냥 한 세션 안에서 끝까지 갑니다. 클라우드에서는 모델이 그냥 서비스 하나처럼 느껴지는데, 로컬에서는 공구함에서 공구를 바꿔 드는 느낌에 더 가까웠습니다. 이 일엔 이게 버겁네 하고 다른 걸 꺼내는 식입니다. 귀찮긴 한데 모델마다 뭘 버거워하는지가 손에 잡히는 건 좀 재밌었습니다. 새벽 1시 38분에 글이 끝났습니다. 바꿔 타느라 10분 정도 더 들었고, 같은 일을 Sonnet 4.6 API 로 했을 때보다 40센트쯤 아꼈습니다. 시간과 돈을 따로 따져야 한다는 걸 그때 알았습니다. 10분과 40센트를 바꾼 게 잘한 건지는 지금도 잘 모르겠습니다.
따져보면 글 한 편 다듬는 일에 모델 두 개를 바꿔 타는 수고를 들일 일이었나 싶기도 합니다. 40센트는 아끼려고 마음먹어야 보이는 돈이고, 새벽 1시의 10분은 그보다 훨씬 비쌀 수도 있습니다. 그런데 이걸 일마다 따지기 시작하면 따지는 데 드는 시간이 또 생깁니다. 결국 일의 크기를 보고 대충 이쯤이면 로컬, 이쯤이면 클라우드 하는 감이 생겨야 하는데, 닷새로는 그 감이 다 안 잡혔습니다.
목요일 아침 9시 47분이었습니다. 10시에 클라이언트 미팅이 있었고 그 전에 메일 한 통을 빨리 다듬어야 했습니다. Qwen3.5 는 그 일에 4분이 걸리고 Opus 4.7 API 는 8초입니다. 10시라는 마감 앞에서 저는 별 고민 없이 Opus 로 갔습니다. 규칙을 처음 어긴 겁니다.
어긴 것보다 어긴 모양이 더 눈에 들어왔습니다. 시간 마감이 있고, 다른 사람이 기다리고, 짧은 답이 빨리 필요할 때. 이 셋이 겹치는 순간에 도망갔습니다. 목요일 하루에만 그런 일이 세 번 있었습니다. 미팅 직전 메일, 슬랙에서 동료가 빨리 봐달라고 한 코드 리뷰 질문, 그리고 밤에 자기 전에 어머니께 보낼 카톡 한 통. 마지막 건 좀 부끄럽지만 그냥 적어둡니다.
그날 저녁 메모는 이랬습니다. "도망의 패턴이 '품질'이 아니라 '시간'이다." 로컬 LLM 답이 모자라서 도망간 게 아니었습니다. 답이 오는 데 걸리는 시간이 다른 사람의 시간과 맞물려서 도망간 겁니다. 혼자 쓰는 시간에는 4분을 기다릴 수 있는데, 상대가 기다리고 있으면 그 4분은 제 시간이 아니라 그 사람 시간이 됩니다. 제 시간은 아껴볼 수 있어도 남의 시간까지 걸고 아낄 수는 없었습니다. 이건 사람마다 많이 다르겠다는 생각이 처음 들었습니다. 미팅 직전에 급하게 답할 일이 거의 없는 사람이라면 도망갈 일 자체가 안 생길 테니까요.
금요일 오후에 X 를 보다가 Vertex AI 에 claude-sonnet-5-1 이라는 식별자가 한 시간쯤 떴다가 사라졌다는 트윗을 봤습니다. 지난 글 끝에서 얘기했던 Sonnet 5 의 다음 버전입니다. 그걸 보고 든 생각이 닷새 중에 제일 정확했던 것 같습니다. "내 로컬은 영원히 한 분기 뒤다." 좀 허탈하기도 했습니다. 닷새 동안 노트북에서 애써 맞춰둔 것들이 클라우드에서는 다음 모델 하나 나오는 걸로 그냥 지나가 버릴 수도 있겠다 싶었습니다.
제가 닷새 동안 쓴 Qwen3.5 는 2월에 나온 모델입니다. 5월에 클라우드 쪽에서는 Sonnet 5.1 이 준비되고 있다는 신호가 또 나왔고, Opus 5 도 다음 분기 어딘가에 있습니다. 제 노트북에 깐 모델은 그 뒤를 한 분기쯤 늦게 따라갑니다. 오픈 진영이 빨리 따라오면 반 분기, 더디면 두 분기 뒤가 됩니다. 그게 단점만은 아닙니다. 검증된 모델 위에서 한 분기를 사는 거니까 안정적이기도 합니다. 그래도 코딩 쪽은 분기마다 벤치마크 점수가 몇 점씩 오르는 게 보이니까, 한 분기 뒤라는 건 일 하나하나에서 조금씩 품질이 처질 수 있다는 얘기이기도 합니다.
만약 그 한 분기 차이가 앞으로도 계속 그대로라면, 로컬을 쓰는 사람은 늘 지난 분기의 클라우드를 쓰는 셈입니다. 지난 분기의 클라우드로도 충분한 일이 얼마나 되느냐가 결국 로컬의 몫을 정할 것 같습니다. 저는 닷새 동안 그게 생각보다 많다고 느꼈는데, 그건 제가 하는 일이 대부분 최신 모델이 아니어도 되는 일이라서일 수도 있습니다.
금요일 저녁에 닷새가 끝났고 메모를 두 줄 남겼습니다. "도망의 패턴은 '품질'도 있고 '시간'도 있다. 사람마다 비중이 다르다." 그리고 "한 분기 뒤라는 시간차가 안정성이라는 다른 이름으로 바뀌는 지점이 있다. 단지 그 지점이 누구에게나 같은 데 있지는 않다."
다섯 개 중 셋은 익숙해졌습니다
지난 글의 디바이스 부분에 적어둔 한계는 추론 속도, 에이전트 통합, NPU 를 못 쓰는 것, 배터리와 발열, OS 통합이 없는 것 다섯 개였습니다. 닷새가 끝나고 보니 셋은 익숙해지는 한계였고 둘은 끝까지 안 풀렸습니다.
추론 속도는 제일 빨리 익숙해졌습니다. 화요일 4분 일 이후로 일을 작게 쪼개는 게 몸에 붙었습니다. 60줄 한 번이 아니라 20줄 세 번. 그러면 한 자릿수 토큰/초가 크게 문제가 안 됩니다. 한 번이 1분 안에 끝나면 머리가 따라가고 4분이 되면 못 따라갑니다. 같은 속도인데 일을 어떻게 나누느냐에 따라 전혀 다른 경험이 됐습니다.
배터리와 발열은 아예 책상에서만 쓰기로 하니까 풀렸습니다. 카페에서 노트북을 펴고 로컬 LLM 을 돌리는 건 닷새 동안 한 번도 안 해봤고 해볼 생각도 안 들었습니다. 노트북은 거의 책상 위에서 충전기를 꽂은 채로 지냈습니다. CPU 는 90도 언저리, 팬은 계속 최고 속도로 돌았습니다. 책상에서는 참을 만합니다. 카페에서 일하는 건 처음부터 포기한 셈입니다.
셋이 익숙해지는 방식은 비슷했던 것 같습니다. 한계를 없애는 게 아니라 일하는 범위를 그 한계에 맞게 줄여서 버팁니다. 일은 작게, 장소는 책상, 시간은 충전기 있는 데서. 줄어든 범위 안에서는 로컬 LLM 이 충분히 일합니다. 그런데 이게 익숙해진 건지 포기한 건지는 잘 모르겠습니다. 범위를 줄이고 나서 괜찮다고 느끼는 걸 적응이라고 불러도 되는지는 모르겠습니다.
만약 원래부터 책상에서만, 혼자, 짧은 일만 하던 사람이라면 이 셋은 한계로 느껴지지도 않았을 것 같습니다. 줄일 범위가 처음부터 없으니까요. 그렇게 보면 한계라는 게 모델이나 노트북에 붙어 있는 게 아니라 쓰는 사람이 원래 하던 일의 범위에 붙어 있는 건지도 모르겠습니다. 같은 노트북인데 누구한테는 다섯 개가 다 한계고 누구한테는 둘만 한계입니다.
둘은 끝까지 안 풀렸습니다
에이전트가 오래 혼자 일하는 건 닷새 내내 안 됐습니다. 지난 글에서 얘기한 Rakuten 의 7시간 자율 작업 같은 건 근처에도 못 가봤습니다. Aider 에 Qwen3.5 를 붙이니 5분짜리 단발 작업은 잘 돌았는데, 30분이 넘어가니 컨텍스트가 상하기 시작했습니다. 한 번은 변수명을 두 번 바꿔버려서 디버깅에 한 시간이 더 들었습니다. 자기가 30분 전에 정한 이름을 30분 뒤에 잊어버립니다. 사람이 그러면 메모를 하라고 하겠는데, 모델한테 메모를 시키면 그 메모가 또 컨텍스트를 먹습니다. 기억을 도와주려는 장치가 기억할 공간을 줄이는 셈이라, 이건 요령으로 넘어갈 수 있는 문제가 아닌 것 같았습니다.
이건 일하는 방식을 바꿔도 안 풀립니다. 추론 속도는 작게 쪼개면 풀리는데, 오래 혼자 일하는 건 한 번에 길게 가야 의미가 있습니다. 쪼개는 순간 다른 일이 됩니다. 한 세션 안에서 메모리를 관리하고 중간에 스스로 확인하고 돌아봐야 하는 영역인데, 오픈 모델은 거기까지 가기 전에 컨텍스트가 흔들립니다.
OS 통합도 닷새 동안 그대로였습니다. Siri 처럼 뒤에서 늘 듣고 있는 데에 Qwen3.5 가 못 들어갑니다. 글을 쓰다가 그냥 이 문장 좀 다듬어 달라고 말하고 싶었는데, 매번 Open WebUI 탭을 열고 프롬프트를 쳤습니다. 닷새 동안 이건 한 번도 편해지지 않았습니다. 탭을 여는 몇 초가 별것 아닌 것 같은데, 그 몇 초 때문에 그냥 제가 고치고 말자 하고 넘어간 문장도 있었을 것 같습니다. 부르기 귀찮은 도구는 결국 덜 부르게 되니까요.
이 둘은 다섯 달이 지나도 안 풀릴 것 같고, 1년이 지나도 안 풀릴 가능성이 더 높다고 봅니다. 풀리려면 사용자가 자기가 고른 오픈 모델을 NPU 에 직접 올릴 수 있게 되거나, 칩 만드는 회사들이 사용자 모델을 받아서 자기 칩에 맞게 줄여주는 표준이 생기거나 해야 하는데, 둘 다 한 회사가 정할 수 있는 일이 아닙니다. Apple 이 NPU API 를 더 열거나 Google 이 Tensor 에 사용자 모델이 들어갈 칸을 만들어야 하는데, 그게 다음 분기에 일어날 것 같지는 않습니다. 지난 글에서 로컬 LLM 과 OEM 온디바이스가 따로 돈다고 썼던 게 닷새 동안에도 그대로 따로 돌았습니다. 셋은 제가 일하는 방식을 바꿔서 버틸 수 있었는데, 이 둘은 제가 뭘 해도 안 되는 쪽이었습니다. 그래서인지 오히려 덜 답답했습니다. 제 탓이 아니라는 게 분명하니까요.
로컬에 남은 것과 클라우드에 남은 것
닷새가 끝났을 때 로컬과 클라우드가 대충 60 대 40, 어떤 날은 70 대 30 으로 나뉘어 있었습니다. 이건 제 닷새에서 나온 숫자라 다른 사람이 똑같이 해보면 꽤 다르게 나올 것 같습니다. 미팅이 많은 주였으면 거꾸로 40 대 60 이 됐을지도 모릅니다.
로컬에 남은 건 10줄에서 50줄 사이의 함수나 컴포넌트, SQL 쿼리 하나를 보는 단발 코드 리뷰였습니다. 한 번이 30초에서 1분 사이에 끝나서 속도가 문제가 안 됐습니다. 한 문단이나 트윗, 슬랙 메시지, 영문 메일 초안 같은 짧은 글 다듬기도 로컬로 정착했습니다. 클라우드랑 답 차이가 거의 없었습니다. 정규식이나 SQL 을 빨리 뽑는 건 의외로 로컬이 잘했습니다. 한 줄짜리 답은 1초면 떨어지니까 한 자릿수 토큰/초가 아무 차이를 안 만듭니다. 영문 블로그 초안 한 편도 Qwen3.5 로 돌렸는데, 직역으로 한 번 뽑고 의역으로 한 번 다듬는 두 단계로 했더니 클라우드로 했을 때와 거의 비슷했습니다. 8분쯤 더 걸렸는데 그동안 차를 한 잔 끓였습니다. 이것들은 한 번이 짧고 다른 사람이 기다리지 않는다는 게 같았습니다. 그 두 개가 겹치면 로컬 LLM 으로 이미 충분했습니다.
이 목록을 다시 보면 대부분 애초에 제일 큰 모델이 필요한 일이 아니었던 것 같습니다. 정규식 한 줄, 슬랙 메시지 한 통에 클라우드의 큰 모델을 부르던 게 오히려 이상한 일이었습니다. 클라우드를 쓸 때는 그냥 손에 익은 모델 하나를 모든 일에 썼고, 그 모델이 얼마짜리인지는 일을 시킬 때 생각하지 않았습니다. 로컬로 닷새를 살면서 처음으로 이 일에 이 정도 모델이 필요한가를 묻게 됐습니다. 그 질문이 남은 것만으로도 닷새가 아주 손해는 아니었다는 생각이 듭니다.
클라우드에 남은 건 30분 넘게 혼자 돌리는 코딩이었습니다. Aider 와 Claude Code 로 한 시간씩 맡기는 게 일상이던 일인데, 닷새 동안 한 번도 로컬에 못 맡겼습니다. 미팅 직전에 빨리 답해야 하는 일도 남았습니다. 목요일 아침 같은 경우인데, 그때는 도망가는 게 맞는 선택이었다고 봅니다. 최신 라이브러리 API 질문도 클라우드로 갔습니다. Qwen3.5 의 학습 데이터는 어딘가에서 끊겨 있어서 Next.js 16 이나 React 19 의 새 패턴은 클라우드 모델이 더 잘 압니다. 닷새 동안 두 번 이걸로 도망갔습니다. 걸으면서나 차 안에서 말로 메모하는 건 그냥 ChatGPT 앱 음성 모드를 씁니다. 로컬 LLM 에 음성을 붙이려면 OS 통합이 있어야 하는데 그게 안 풀린 둘 중 하나입니다. 마감이 있거나, 정의상 길게 가야 하거나, OS 깊숙이 들어가야 하는 일들이었고, 안 풀린 두 한계가 정확히 여기에 걸려 있었습니다.
돈은 이렇게 됐습니다. 평소 닷새면 Sonnet 4.6 위주에 가끔 Opus 4.7 을 써서 45달러쯤 나오는데, 이번엔 도망간 호출만 남아서 14달러였습니다. 31달러를 아낀 것 같지만 빠진 게 둘 있습니다. 닷새 내내 노트북을 최대로 돌린 전기값, 그리고 열 때문에 노트북이 빨리 늙는 것. 전기값은 몇 달러 정도일 것 같고, 마모는 숫자로 안 잡히지만 2년쯤 뒤 중고 가격에서 티가 날 겁니다. 그걸 빼고 25달러 정도 아꼈다고 치면 닷새치로 작은 돈은 아닙니다. 1년이면 개인한테는 꽤 큰 돈입니다. 다만 비용이 0 이 된 게 아니라 다른 모양의 비용이 된 거라는 점은 기억해 둬야 할 것 같습니다. 닷새가 지나고 나니 아낀 돈보다 팬 소리가 더 오래 기억에 남아 있습니다.
이 계산을 몇 달 뒤에 반대 방향으로 다시 하게 됐습니다. 아끼는 게 아니라 단가가 오르는 쪽으로 상황이 바뀌었을 때 로컬이 실제로 몇 배 느린 대안인지를 제 커밋으로 재본 글인데, 이때 적어둔 토큰/초가 거기서 그대로 근거로 쓰였습니다. 같은 숫자를 아끼는 쪽으로 읽느냐 대신할 수 있느냐로 읽느냐가 달랐습니다.
회사로 가면 더 복잡해질 것 같습니다. 열 명이 동시에 로컬 LLM 을 쓰면 노트북 열 대의 열과 팬 소리가 사무실에 그대로 퍼집니다. 혼자 책상에서 참는 팬 소리도 열 명이 모이면 옆 책상에서도 들릴 겁니다. 클라우드 쪽은 Anthropic 을 Bedrock 이나 Vertex 로 받아도 기본 가격이 직접 API 와 같고 배치 할인 같은 것도 있습니다. 로컬 LLM 이 줄여주는 건 클라우드 비용인데, 회사 단위에서는 열과 소음과 관리와 교육 비용이 대신 생깁니다. 비용이 없어지는 게 아니라 모양이 바뀌는 것 같습니다.
하나 더 마음에 걸리는 건 이어받기입니다. 로컬 LLM 은 사람마다 세팅이 조금씩 다를 수밖에 없습니다. 어떤 백엔드를 쓰는지, 컨텍스트를 얼마로 잡았는지, 버거울 때 어떤 모델로 바꿔 타는지. 제가 닷새 동안 익힌 것도 대부분 제 노트북에서만 맞는 요령입니다. 회사에서 그런 요령이 사람마다 따로 쌓이면, 한 사람이 쉬거나 나갔을 때 옆 사람이 그 작업을 이어받기가 어려워질 것 같습니다. 클라우드 API 는 적어도 모두가 같은 모델을 같은 방식으로 부르니까 그런 걱정은 덜합니다. 혼자 빨라지는 것과 팀이 같이 일할 수 있는 건 좀 다른 문제인 것 같습니다.
로컬로만 사는 건 규칙이라기보다 사람마다 다른 것 같습니다
닷새 끝에 남은 생각은 누구는 이미 이렇게 살 수 있고 누구는 한 분기는 더 기다려야 한다는 거였습니다.
개인 사이드 프로젝트를 주로 하고, 혼자 자기 속도로 일하고, 단발 작업이 많고, 책상에서 일하고, 영문과 한글 텍스트 작업이 대부분이고, 미팅 직전에 급하게 답할 일이 별로 없는 사람이라면 닷새가 아니라 다섯 달도 괜찮을 것 같습니다. 일의 60~70% 가 로컬로 가면 클라우드에 남는 건 30~40% 이고, 그것도 오픈 모델이 분기마다 따라오니까 점점 줄어들 가능성이 큽니다.
팀 코드베이스에서 일하고, 다른 사람 시간과 자주 맞물리고, 30분 넘게 맡기는 자율 작업이 일상이고, 모바일이나 차 안에서도 일하고, 음성이나 이미지를 자주 쓰고, 미팅 직전 답변이 잦은 사람이라면 한두 분기 더 기다리는 게 나을 것 같습니다. 안 풀린 두 한계가 바로 이런 사람의 주된 일에 걸려 있으니까요. 제 경우는 이 두 그림 사이 어딘가에 있었던 것 같습니다. 혼자 하는 일은 로컬로 충분했는데 누가 기다리는 순간 바로 클라우드로 갔으니까요.
회사가 들이려고 하면 지난 글에 썼던 23조원 얘기가 다른 쪽에서 다시 돌아옵니다. OpenAI 가 적자를 메우려고 여러 갈래로 뻗고 디바이스로 가는 동안, 회사는 클라우드 비용을 어떻게 나눌지를 고민해야 합니다. 로컬 LLM 은 그중 하나일 뿐이고 모두한테 맞는 답은 아닌 것 같습니다. 이건 같은 Qwen3.5 를 회사 GPU 워크스테이션 한 대에 올리고 다섯 명이 붙었을 때 토큰/초가 다시 한 자릿수로 떨어지는 걸 시트당 단가로 따져본 글에서 따로 썼으니 여기서는 궁금한 것만 적어두려고 합니다.
제일 먼저 궁금한 건 사람들이 한 번에 모델에 맡기는 일이 평균 몇 분짜리냐입니다. 5분 안에 끝나는 게 대부분이면 로컬이 많이 가져갈 수 있을 것 같고, 30분을 넘어가면 절반을 조금 넘기기 어렵고, 한 시간이면 로컬은 보조로 밀려날 것 같습니다. 이 평균을 모르고 들이면 몇 달 뒤에 다들 왜 클라우드로 도망가는지 모르겠다는 얘기가 나올 겁니다. 그런데 이 평균을 재는 것부터가 쉽지 않을 것 같습니다. 저도 닷새 동안 적어보기 전에는 제가 한 번에 몇 분짜리 일을 맡기는지 전혀 몰랐으니까요. 막연히 짧은 일을 많이 시킨다고 생각했는데, 적어보니 생각보다 긴 일도 꽤 있었습니다.
그다음은 책상이 아닌 데서 일하는 시간이 얼마나 되느냐입니다. 영업이나 현장 일이 많은 회사라면 Apple Intelligence 나 Gemini Nano 같은 OEM 온디바이스 쪽을 같이 봐야 할 것 같습니다. 로컬 LLM 은 거기 못 들어갑니다. 노트북을 안 펴는 시간에는 모델이 일을 안 합니다.
마지막은 모델을 회사가 직접 쥐고 있어야 하느냐입니다. 금융이나 의료, 정부처럼 가중치를 회사가 들고 있어야 하는 곳이면 로컬이 답에 가까울 것 같습니다. 아니면 클라우드 API 에 캐싱과 배치 할인을 붙이는 쪽이 회계상 훨씬 단순할 겁니다. AWS 를 많이 쓰면 Bedrock, GCP 를 쓰면 Vertex 로 가는 게 절차도 짧습니다. 이렇게 따져보면 회사 전체를 로컬로 하자는 결론도, 전부 클라우드로 하자는 결론도 잘 안 나옵니다. 사람마다 상황마다 답이 달라서, 회사에서는 둘을 같이 운영하는 게 한동안 기본이 될 것 같습니다.
I/O 키노트를 보고
이 글을 쓰는 사이에 어제 Google I/O 키노트가 끝났습니다. 닷새를 살아보고 바로 키노트를 본 셈인데, 길게는 따로 쓰려고 하고 두 가지만 적어둡니다.
지난 글에서 Gemini 가 안드로이드의 운영 계층이 될 거라고 했는데, 키노트에서는 그보다 더 깊이 들어갔습니다. Gemini 3.2 Pro 가 발표됐고 Android 17 에서 Gemini 가 시스템 쪽으로 더 들어왔습니다. OEM 쪽은 생각보다 빨랐습니다. 닷새 동안 제가 노트북에서 Qwen3.5 로 해본 글 다듬기, 코드 리뷰, 영문 번역을 OEM 쪽은 Gemini Nano 로 폰에서 더 매끄럽게 합니다. 한 분기 뒤가 아니라 이미 한 분기 앞이라고 봐도 될 것 같습니다. 노트북 팬을 최고 속도로 돌리면서 하던 일을 폰이 조용히 하고 있다는 걸 보니 좀 머쓱했습니다. 다만 그건 구글이 고른 모델이고, 제가 고른 모델을 올릴 수는 없습니다.
말하지 않은 것도 있었습니다. 사용자가 자기가 고른 오픈 모델을 NPU 에 올릴 수 있느냐. Apple 은 조용했고 Google 도 자기 Nano 만 깔았습니다. 그렇다면 다음 분기에도, 어쩌면 여름 내내 로컬 LLM 과 OEM 온디바이스는 따로 돌 것 같습니다.
지난 글을 시작할 때 제 M4 에서 본 한 자릿수 두 개가 어긋난다고 썼습니다. 닷새 뒤에도 그건 그대로였습니다. 청구서는 45달러에서 14달러가 됐고, 속도는 닷새 내내 초당 7~14 토큰 사이에 있었습니다. 둘이 어긋난 채로 어느 한쪽 결론으로 가지는 않았습니다. 로컬은 외롭다고 썼던 한 줄이, 닷새를 살고 나니 누군가한테는 이미 충분하고 누군가한테는 한 분기 뒤라는 쪽으로 바뀌었습니다. 시간 마감, 일의 길이, 모바일인지, 음성이나 이미지가 필요한지. 이 넷에서 사람마다 무게가 다르니까 같은 노트북, 같은 모델로 같은 닷새를 살아도 누구는 60% 에서 만족하고 누구는 30% 에서 답답할 것 같습니다.
도망갈 때마다 적어둔 메모는 아직 책상 위에 그대로 있습니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기