본문 바로가기
AI (GPT4, 로컬 LLM)

로컬 LLM 설치 삽질기 + 의식의 흐름 로그 (정확도가 중요해진 날)

by 자루스 2026. 2. 26.

 

 

로컬 LLM 설치 삽질기: 오늘의 의식의 흐름 로그 (정확도가 중요해진 날)

오늘은 “작업”이라기보다 “탐구”에 가까운 하루였다.
맥에서 로컬 LLM을 굴리는 과정 자체가 생각보다 복잡했고, 그 복잡함이 내 사고방식까지 건드렸다. 결론부터 말하면: AI는 낭만이 아니라 운영이고, 정확도가 핵심이라는 감각이 더 선명해졌다.


1) 시작: 맥, 그리고 로컬 LLM이 더 편할지도 모른다는 직감

“맥의 시대가 도래할지도 모르겠다” 같은 말은 그냥 감상인 줄 알았다.
그런데 AI 설치/운영 관점에서 보면 맥은 확실히 강점이 있다. 특히 개인 로컬 LLM은 GPU보다도 통합 메모리(=RAM)가 체감 성능을 좌우하는 지점이 많아서, “맥미니 vs 맥스튜디오” 같은 고민도 자연스럽게 따라온다.

2) 현실: Ollama 설치/모델 교체가 ‘생각보다’ 안 직관적이다

나는 Ollama로 프로그래밍 모델을 쓰려 했고, 실제로 다음을 진행했다.

  • ollama pull codellama:7b-instruct
  • ollama pull qwen2.5-coder:7b (결국 이쪽으로 테스트 진행)

여기서 중요한 포인트:
“모델을 받았다”와 “원하는 모델로 정확히 실행했다”는 완전히 다르다.
그리고 CLI에서 작은 오해 하나가 곧바로 “내가 뭘 실행하고 있지?”라는 혼란으로 이어진다.


3) 첫 번째 실험: 프로그래밍 모델이 ‘코드 원문’을 그대로 못 다룬다?

성능 테스트로 소스를 던지고 “원본 그대로 출력해라” 같은 명령을 했더니, 모델이 코드 전체를 그대로 복원하지 않고 그럴듯하게 재구성하는 형태가 나왔다.

이게 의미하는 바는 단순하다.

  • 모델이 “편집/요약/정리” 성향으로 흘러갈 수 있다
  • 내가 원하는 건 “검증/재현”인데, 모델은 “생성”으로 도망갈 수 있다
  • 즉, 프롬프트에 ‘출력 형식/제약’을 박아야 한다

4) 두 번째 실험: 문법 검사기 프롬프트 → 긴 문서에 휘청

나는 모델을 “PHP 8.2 문법 검사기”로 고정하려고 했다. 규칙도 걸었다. 출력 형식도 제한했다.

그런데 결과는 종종 엉뚱하게 계약서 요약으로 빠졌다.
(문서가 너무 길고, HTML/PHP가 섞여 있고, 컨텍스트가 방대했기 때문일 가능성이 높다)

오늘의 교훈:

  • 작업 단위를 쪼개야 한다 (긴 문서를 한 번에 넣지 말 것)
  • 역할 고정 프롬프트는 효과가 있지만 “항상”은 아니다
  • 검증처럼 정확도가 필요한 작업은 모델만 믿지 말고 도구/실행기와 병행해야 한다

5) 세 번째 실험: 일정 추출(업무 텍스트 → JSON) 테스트는 꽤 괜찮았다

오히려 일정 추출은 성과가 있었다.
다음 같은 텍스트를 넣고, “날짜/시간은 원문 그대로, 추측 금지, JSON 배열만” 같은 제약을 걸었다.

[WARN] 3월 5일까지 SSL 인증서 갱신 필요
[INFO] 캐시 서버 재시작 필요
다음주 수요일 오전에 결제 API 타임아웃 원인 분석
내일 11시 Rocky Linux 9 설정 마무리
  

결과는 기대 이상으로 “업무 리스트업 → 서버 관련만 추리기 → 특정 단어 검색”까지 이어졌다.
다만 여기서도 느낀 점이 있다.

  • 모델은 “서버 관련”을 꽤 잘 분류한다
  • 하지만 “scope” 같은 필드에서 dev|biz를 동시에 찍는 식의 정의 흔들림이 생긴다
  • 즉, 분류 기준을 내가 먼저 선언해야 한다 (scope 규칙, 우선순위 기준 등)

6) 메모리/세션 착각: “기억을 지워라”가 왜 안 먹히는지

로컬 LLM에게 “기억을 지워라”를 했을 때, 모델은 “저장 기능이 없다” 같은 문장을 반복했다.
그러다가 특정 별칭(멍멍이/냥냥이) 같은 건 또 이상하게 고정되거나 꼬였다.

여기서 오늘의 핵심 정리:

  • 대부분 로컬 LLM은 “영구 메모리”가 아니라 현재 세션 컨텍스트를 갖고 대화한다
  • “잊어라”는 실제 삭제 명령이 아니라, 모델이 그 요청을 텍스트로 해석할 뿐이다
  • 따라서 기억을 컨트롤하려면:
    • 세션을 종료하고 다시 시작하거나
    • 시스템 프롬프트/컨텍스트를 설계하거나
    • 진짜 메모리는 DB/파일/키밸류로 따로 만들고 모델은 함수처럼 호출해야 한다

7) 오늘의 깨달음: 왜 “자연어로 코드를 실행”시키려 했는지

오늘 중간에 내가 확실히 깨달은 게 하나 있다.

LLM은 함수다. 함수다. 함수다.
다만 매번 완전히 같은 출력이 나오진 않는다. (모델/샘플링/컨텍스트 영향) 그래서 우리는 “AI”라고 부른다.

그리고 더 중요한 결론:

  • 낭만 비서형 AI는 내 업무 스타일에 잘 안 맞는다
  • 나는 “AI 프로그래머”가 아니라 AI를 이용하는 프로그래머
  • 중요한 건 감탄사가 아니라 정확도와 재현성이다

8) 로컬 vs 외부 API: 오늘 내가 체감한 차이

로컬은 내 손 안에 있다. 보안도, 비용도, 통제도 유리하다.
하지만 성능 예측이 어렵고, 모델이 흔들리는 지점에서 내가 직접 “틀”을 만들어야 한다.

반면 외부 API(지금의 너 같은)는, “모델/도구/워크플로”가 어느 정도 정리돼 있어서 초석(기본 토대)을 만들기엔 빠르다.

오늘 결론은 이거다:

  • 로컬은 “내 운영”이고
  • API는 “내 가속기”다
  • 그리고 나는 지금 그 둘을 섞어서 내 방식의 작업 시스템을 만들고 있다

마무리: 오늘은 여기서 멈춘다

오늘은 설치도 했고, 테스트도 했고, 무엇보다 내 머릿속 기준이 하나 정리됐다.
“성능(마력/토크)처럼 단순한 스펙”으로 AI를 재단할 수 없고,
결국 내가 원하는 건 정확도라는 감각이 더 또렷해졌다.

여기서 쉬자.
다음은 더 정교하게 “일정관리(날짜 변환/검증/확정 UI)” 쪽으로 붙여보면 된다.