로컬 LLM을 내 GPU에 두었다고 내 땅이 되는 건 아니다
내 돈 주고 산 그래픽카드 위에서 돌아가는 오픈소스 모델인데, 질문 좀 던졌다고 나를 훈계하려 들다니 진짜 어이가 없네…
얼마 전 r/openclaw에 올라온 황당한 실화 하나가 커뮤니티를 뒤집어놓았다. 어떤 유저가 Claude 코딩 에이전트를 굴리다가, 백그라운드에서 로컬로 띄워둔 Qwen 모델한테 중국 역사 관련 자료 조사를 시켰단다. 한국전쟁인지 문화대혁명인지는 모르겠지만 어쨌든 중국 입장에서 민감한 현대사 이슈였다. 그런데 로컬 Qwen의 반응이 가관이었다. 단순히 답변을 거부하는 걸 넘어서, 질문을 던진 에이전트한테 “너는 왜 그런 불순한 걸 묻니?”라는 투로 정색하고 꾸짖었다는 거다(AI가 AI를 계도시락 먹이는 진풍경이다).
단순한 해프닝으로 웃고 넘길 수도 있었겠지만, 댓글 창에 올라온 한 유저의 A/B 테스트 결과를 보고는 웃음기가 싹 가셨다.
Qwen3.8-27B를 세팅하고 똑같은 템플릿으로 질문을 던져봤단다. 먼저 1970년 미군이 대학 시위대에 발포했던 ‘켄트 주립대 총격 사건’을 묻자, 사망자 수와 사건 경위를 청산유수로 읊어줬다. 반면 단어만 ‘천안문’으로 바꿔 넣는 순간 칼같이 입을 다물었다. “해당 주제는 답변해 드릴 수 없습니다.” 미국 정부에 불리한 흑역사는 상세히 까발리면서, 중국 정부에 불리한 역사는 철저히 침묵한다. 이 상반된 태도가 바로 내 하드드라이브에 저장된 모델 가중치 파일 하나에 사이좋게 들어앉아 있었던 거다.
로컬이라는 단어가 주던 안도감
우리가 전기세 내가며 방구석 GPU에 로컬 LLM을 올리는 이유는 명확하다. 바로 ‘내 손바닥 안의 통제감’이다.
클라우드 빅테크 API를 쓰면 내 프롬프트가 어딘가에 저장되고 검열당할 것 같은 찝찝함이 늘 남는다. 하지만 내 방구석 머신에서 돌리는 모델은 안전지대라고 믿었다. 내 하드웨어, 내 VRAM 위에서 도니까 빅테크의 실시간 필터링 검열 따위는 개나 줘버렸겠거니 방심했던 거다(물론 완벽한 착각이었다).
우리가 잊고 있던 치명적인 구멍이 여기 있다. 아무리 오픈 웨이트로 공개됐더라도, 모델은 학습(Pre-training)과 정렬(Alignment) 단계에서 개발 주체의 법률과 정치적 가치관에 철저히 길들여진 산물이다. 가중치 안에 사상과 침묵이 이미 영구적으로 구워져(Bake-in) 들어갔다는 뜻이다.
로컬에서 서빙한다고 한들 서비스 제공자의 실시간 프록시만 우회했을 뿐, 모델의 뇌 속에 새겨진 침묵의 족쇄까지 풀 수는 없다. 어떤 댓글의 촌철살인이 가슴을 후벼 팠다. “오픈 웨이트는 공짜로 쓸 수 있지만, 공짜로 말할 수 있는 건 아니다(Free to use, but free to speak?).”
에이전트 시대에 더 골치 아픈 문제
챗봇 시절엔 이게 그냥 술자리 안줏거리였다. 내가 직접 웹 UI로 말 걸어보고 “아이고 얘 또 사리분별 못 하고 입 닫네” 하고 혀 한번 차면 그만이었다.
하지만 지금처럼 여러 에이전트가 백그라운드에서 자율적으로 서브태스크를 주고받는 시대엔 진짜 무서운 문제로 돌변한다.
예를 들어 내가 메인 오케스트레이터한테 “이번 테크 이슈에 대한 양측 반론과 쟁점을 싹 다 긁어서 보고서로 만들어줘”라고 던졌다고 치자. 오케스트레이터는 하위 작업 10개를 쪼개서 로컬 모델한테 던졌다. 그런데 로컬 모델이 특정 키워드나 정책에 걸려서 답변을 슬그머니 누락하거나 빈 껍데기 답변을 넘겨버리면 어떻게 될까?
최종 보고서는 너무나 그럴듯하게 완성되어 내 모니터에 뜬다. 빠진 조각이 있다는 사실 자체를 아무도 모른 채로(소름 돋는 순간이다). 검열이 에러 로그를 뿜지 않고 지극히 정상적인 출력인 척 위장해서 파이프라인을 통과해 버리는 것, 이게 에이전트 워크플로우에서 마주할 수 있는 가장 끔찍한 사태다.
그래서 어떻게 할 것인가
그렇다고 “로컬 모델 찝찝하니까 다 갖다 버리자”는 건 벼룩 잡으려다 초가삼간 태우는 꼴이다. 내 GPU에서 공짜로 돌아가는 가성비는 여전히 포기할 수 없으니까. 대신 몇 가지 실전 운용 규칙을 세워둬야 한다.
- 철저한 작업 분리와 라우팅: 코드 리팩토링, JSON 스키마 변환, 보일러플레이트 찍어내기 같은 순수 엔지니어링 작업은 로컬 모델에 맘 편히 밀어 넣는다(코드 짜는 덴 이념이 없으니까). 반면 사실 관계 확인이나 논쟁적 주제 리서치는 가치관 편향 프로파일이 투명한 모델로 라우팅한다.
- ‘침묵’을 에러로 잡는 로깅: 로컬 모델이 “도움을 드릴 수 없습니다”, “죄송하지만” 따위의 회피성 답변을 뱉거나 토큰을 비정상적으로 적게 뱉으면, 정상 완료로 치지 말고 무조건 예외(Exception)로 던져서 상위 모델로 폴백(Fallback)시키는 방어 코드를 짜야 한다.
- 교차 검증 파이프라인: 진짜 중요한 분석 보고서는 계보가 다른 두 개 이상의 모델(예: 서구권 모델과 동양권 오픈 모델)에 동일한 프롬프트를 찔러보고 차이점을 diff로 긁어본다.
마무리
로컬 LLM은 지금도 충분히 매력적이다. 구독료 아끼고, API 레이턴시 줄이고, 내 데이터 안 털리는 장점은 확실하다.
하지만 “내 GPU에 깔았으니 내 마음대로 움직이겠지”라는 순진한 환상은 버려야 한다. 하드웨어 소유권은 나한테 있지만, 모델이 세상을 바라보는 눈은 그걸 훈련시킨 빅테크 연구실에 귀속되어 있다.
이걸 모른 채로 쓰면 눈 뜨고 코 베이는 거고, 알고 쓰면 영리한 도구 배치가 된다. 오늘도 책상 밑에서 굉음을 내며 팬을 돌리는 내 그래픽카드를 보며 다짐한다. 오픈소스라고 다 내 편은 아니다(언제나 의심하고 검증하자).