GPU 없이 CPU로 로컬 AI, 어디까지 되나 — 자동 추적·벤치 루프까지 만들고 내린 결론
외부 AI가 막히는 상황에 대비해 GPU 없이 CPU만으로 로컬 한국어 챗봇 폴백을 만든 기록 — 허깅페이스 신모델 자동 추적·자율 벤치·자동 교체 루프까지 완성했지만, CPU 천장(≈GPT-3.5)을 확인하고 주력에서 물러난 이야기.

GPU 없이 CPU로 로컬 AI, 어디까지 되나 — 자동 추적·벤치 루프까지 만들고 내린 결론
리엘의 채팅은 클라우드 API(Google Gemini)로 돌아간다. 그런데 한동안 나는 "만약 이 API를 못 쓰게 되면?"이라는 가정을 붙잡고 있었다. 모델 수출 규제든 정책 변화든, 외부 AI가 막히는 상황에 대비해 내 집 데스크탑만으로 굴러가는 최소한의 한국어 챗봇 폴백을 만들어 두고 싶었다. 이 글은 그걸 GPU 없이 CPU만으로 어디까지 밀어붙였고, 왜 지금은 주력에서 물러났는지에 대한 기록이다.
조건: GPU가 사실상 없다
내 데스크탑은 Ryzen 5700X(8코어 16스레드) · 램 32GB · 그래픽은 RX580 4GB다. 문제는 RX580(Polaris)이 최신 ROCm을 지원하지 않아 로컬 LLM 가속에 GPU를 제대로 못 쓴다는 것. 4GB로는 7B 모델이 통째로 안 올라가기도 한다. 결국 실엔진은 CPU였다. "GPU 없이 CPU로 어디까지"가 처음부터 이 실험의 진짜 질문이었다.
만든 것 — 측정하고, 추적하고, 스스로 교체하는 루프
단순히 모델 하나 돌려보고 끝내고 싶진 않았다. "시간이 지나며 더 나은 CPU 모델이 나오면 내가 놓쳐도 알아서 갈아끼우는" 구조를 목표로 삼았다.
- 벤치 하니스 — 한국어 자동채점 문항(수학·다단계추론·논리부정·단위환산·사실·지시따르기)으로 정확도와 속도(tok/s)를 잰다. 처음엔 8문항이었는데, 이게 변별력이 없었다(뒤에서 자세히). 25문항 → 50문항으로 늘렸다.
- 허깅페이스 신모델 자동 추적 — 주간으로 제조사(EXAONE·Qwen·Google 등) 릴리즈를 감지해 후보 큐에 넣는다. 처음엔 '트렌딩'으로 긁었더니 2023년 커뮤니티 파인튜닝만 잔뜩 잡혀서, 저자 워치리스트 + 크기·계열 필터로 노이즈를 걷어냈다(후보 78개 → 24개).
- 자율 벤치 루프(auto_bench) — 데스크탑이 큐의 새 모델을 자동으로
pull받아 50문항 채점 → 서버로 업로드. 서버는 현재 서빙 모델보다 확실히 나으면(정확도 마진 또는 속도 우위) 자동으로 교체한다. 실제로 이 루프가 시드에 없던 모델을 스스로 발굴해 갈아끼운 적도 있다. - 공개 데모(/local-ai) — 집에 인바운드 포트를 하나도 열지 않는 아웃바운드 폴링 워커 구조로, 데스크탑이 켜져 있는 동안 누구나 이 CPU 모델을 체험할 수 있게 했다.
실측 — 그리고 착시를 깨뜨린 순간
50문항 기준 최종 스코어보드(내 데스크탑, CPU):
| 모델 | 정확도 | 속도 |
|---|---|---|
exaone3.5:7.8b | 90% | 14 tok/s |
exaone3.5:2.4b | 84% | 53 tok/s |
qwen2.5:3b | 84% | 43 tok/s |
gemma2:2b | 76% | 31 tok/s |
여기서 가장 크게 배운 건 측정 설계가 결론을 바꾼다는 것이었다. gemma2:2b는 처음 8문항에선 100%를 찍어 "최고"처럼 보였는데, 문항을 늘리자 84%(25문항) → 76%(50문항)로 계속 내려갔다. 쉬운 문제가 만든 과대평가였다. 반대로 exaone 7.8b의 값어치는 어려운 문항에서야 드러났다(8문항에선 2.4b와 동률이었다). 표본을 키워도 순위가 흔들리지 않는 것이 비로소 신뢰의 증거가 됐다.
결론적으로 CPU 서빙의 최적 균형은 exaone3.5:2.4b(84% + 가장 빠름)였다.
왜 주력에서 물러났나
정직하게 말하면, 엔지니어링은 성공했고 그게 오히려 한계를 선명하게 보여줬다. 자동 추적 → 자동 벤치 → 자동 교체 루프는 실제로 돌아간다. 하지만:
- CPU에서 돌릴 수 있는 모델(≈2~8B)의 실력은 대략 GPT-3.5 수준이다. 리엘 채팅이 쓰는 최신 클라우드 모델을 대체하기엔 격차가 크다.
- "로컬 AI가 알아서 좋아진다"의 현실적 정답은 모델이 스스로 똑똑해지는 게 아니라(가중치는 고정), 새 모델을 감지해 더 나은 걸로 교체하는 것이다. 그런데 그 교체가 도달할 수 있는 천장 자체가 낮다.
- 진짜 API급으로 가려면 GPU(=돈)가 필요하다. 지금 단계에서 그 투자는 하지 않기로 했다.
그래서 로컬 CPU AI는 주력이 아니라 "폴백 겸 실험 데모"로 위치를 내렸다. /local-ai는 여전히 살아 있어서 데스크탑이 켜져 있으면 직접 체험할 수 있지만, 리엘의 실제 답변을 담당하진 않는다.
남은 것 (교훈)
- 측정이 먼저다. 8문항의 100%는 착시였다. 잣대가 허술하면 틀린 모델을 고른다.
- 자율 루프는 만들 수 있지만 하드웨어 천장은 못 넘는다. 소프트웨어로 감지·벤치·교체를 자동화해도, 살 수 있는 최고가 GPT-3.5급이면 거기까지다.
- 접는 것도 결과다. "된다/안 된다"를 감이 아니라 숫자로 확인하고 물러나는 것, 그리고 그 기록을 남겨두는 것 — 다음에 GPU를 들이거나 더 나은 소형 모델이 나오면 이 루프를 그대로 다시 켜면 된다.
태그