로컬 LLM 돌려본 솔직한 후기
RTX 4070 Ti로 로컬에서 LLM을 돌려봤다. 기대와 현실 사이의 간극을 기록한다
API 청구서를 보고 멈칫했다
월 API 비용이 147,000원쯤 됐을 때, "이거 계속 이러면 안 되겠는데"라는 생각이 들었다. RTX 4070 Ti가 책상 밑에서 게임 안 할 때 놀고 있으니까, 이걸로 뭔가 돌리면 되지 않을까. Ollama 설치하고, 모델 다운로드하고, 터미널에서 첫 응답을 받기까지 정확히 23분. (타이머 켜놓고 했다.)
그리고 현실을 마주했다.
설치는 진짜 쉬워졌다
이건 인정한다. 2024년만 해도 GGUF 파일 변환이니 양자화니 머리 아픈 과정이 필요했는데, 지금은 ollama pull llama3.3:70b-q4 한 줄이면 끝이다. 40GB 다운받는 시간만 기다리면 된다.
설치 경험만 놓고 보면 npm install보다 쉽다.
여기서부터 일이 꼬였다
문제는 속도다. 내 4070 Ti의 VRAM이 12GB인데, 70B 모델 q4 양자화가 40GB쯤 된다. VRAM에 다 안 올라가니까 CPU와 RAM으로 오프로딩이 일어난다.
결과? 초당 토큰 생성이 35개. Claude 4 API가 초당 3050개 나오는 거랑 비교하면 한 열 배 느리다. 간단한 함수 하나 짜달라고 하면 응답 완료까지 40초. 이 정도면 내가 직접 타이핑하는 게 빠르다. 망했다.
8B 모델로 내리면 초당 25토큰까지 나오긴 하는데, 코드 품질이 눈에 띄게 떨어진다.
같은 걸 시켜봤더니
"TypeScript로 debounce 함수 구현해줘"를 똑같이 시켜봤다. Claude 4는 제네릭 타입까지 깔끔하게 지원하는 코드를 줬고, Llama 70B q4는 동작은 하는데 타입이 any 범벅이었다. 8B 모델은 런타임 에러 나는 코드를 줬다. (제네릭 사용법을 알긴 아는 건지 모르겠다.)
코딩 어시스턴트라기보다 코딩 참고서 정도의 역할이 현실적이다.
그래도 쓸 데가 있긴 하다
완전 쓸모없느냐면 그건 아니다. 내가 찾은 용도는 세 가지다. 보안이 중요한 사내 코드 작업할 때 — 외부 API로 코드 보내기가 꺼려지는 상황. 비슷한 패턴의 CRUD 코드를 찍어낼 때 — 8B 모델로도 충분하다. 그리고 비행기에서 코딩할 때. 인터넷 없는 환경에서 의외로 유용했다.
근데 전기세가
예상 못한 복병이다. GPU 풀로드로 돌리면 전력 소비가 285W쯤 올라간다. 하루 8시간 돌리면 월 전기세가 2~3만 원 추가된다. 게다가 팬 소음이 장난 아니다. 화상회의 중에 LLM 돌렸더니 상대방이 "거기 공사해요?"라고 물어봤다.
API 비용 아끼려다 전기세로 나가는 아이러니. 솔직히 좀 억울했다.
어쨌든 지금은
Ollama를 지우진 않았다. 근데 솔직히 일주일에 한 번 켜볼까 말까다. 월 2만 원짜리 API 구독이 가성비로는 압도적이다. VRAM 24GB짜리 GPU가 보급되고 모델 경량화가 더 되면 상황이 바뀔 수도 있는데, 그때가 언제인지는 모르겠다. 일단은 그냥 API 쓴다.