# 로컬 LLM의 계산과 현장 운영: 작은 모델, RAG, 도구 호출, 큐 로컬 언어모델을 시험할 때 가장 먼저 마주치는 의문은 뜻밖에도 단순하다. 학습이 이미 끝난 모델을 통과하는 데 왜 이렇게 많은 시간이 걸리는가? 모델은 보관된 정답을 꺼내지 않는다. 가중치를 고정한 채 입력과 이전에 생성한 토큰을 받아 다음 토큰을 계속 계산한다. 이 특성은 개인용 컴퓨터의 모델 선택에서 산업 설비의 경보 서버 설계까지 이어진다. ## B와 양자화: 숫자의 수와 숫자의 정밀도 7B는 약 70억 개, 14B는 약 140억 개의 파라미터를 뜻한다. B는 파일 크기가 아니라 파라미터 수의 단위인 billion이다. 실제 파일 크기는 각 숫자에 할당한 비트 수와 메타데이터에 따라 달라진다. **양자화(quantization)** 는 실수 가중치를 더 적은 비트로 표현하도록 값의 범위를 일정한 단계로 대응시키는 과정이다. 가령 한 구간의 값들을 16개의 표현 가능한 수준으로 근사하면 4비트 코드로 저장할 수 있다. 실제 구현은 스케일과 제로포인트, 블록별 처리와 예외값 처리 등의 차이가 있어 소수점 자릿수를 단순히 버리는 것과 같지 않다. FP16은 숫자 하나에 보통 16비트를 쓰고, 8비트와 4비트 양자화는 저장하고 메모리에서 읽는 양을 크게 줄인다. 모델을 더 작은 RAM·VRAM에 담는 장점과 함께 정확도 손실의 가능성이 따른다. **더 큰 B가 반드시 더 나은 모델은 아니며**, 학습 데이터·모델 구조·지시 조정과 양자화 방법이 품질을 함께 결정한다. GGUF는 주로 배포·실행에 쓰는 파일 형식이며 GPTQ·AWQ·EXL2 등의 이름은 형식과 양자화·실행 생태계의 차이를 포괄한다. ## 학습이 끝나도 추론이 느린 까닭 학습에는 순전파뿐 아니라 손실 계산, 역전파와 파라미터 업데이트가 들어간다. 추론에는 대개 순전파만 필요하지만 그 순전파 자체가 수십억 개의 가중치를 다루는 큰 계산이다. 답변이 300토큰이라면 보통 다음 토큰 예측이 순차적으로 반복된다. 매번 모델 가중치와 활성값을 사용해야 한다. KV 캐시는 과거 문맥에 대한 중복 계산을 줄이지만, 문맥이 길수록 캐시 메모리와 어텐션 비용의 부담은 여전히 존재한다. 로컬 실행은 계산기 성능뿐 아니라 **메모리 대역폭과 모델 적재 여부**에 좌우된다. GPU VRAM에 모델이 온전히 들어가지 않아 CPU와 시스템 RAM을 오가면 응답 속도가 급격히 낮아질 수 있다. 양자화가 빨라지는 이유도 단순히 작은 파일이어서가 아니라 메모리 이동과 적재 부담이 줄어들기 때문이다. 다만 하드웨어와 커널에 따라 양자화가 항상 빠른 것은 아니다. ## Ollama 생태계에서 구별하는 모델과 역할 Ollama는 모델을 내려받아 실행하고 로컬 API로 호출하는 런타임이다. Qwen은 범용 지시·다국어·코딩 계열을 폭넓게 제공하고, Llama는 Meta의 범용 계열, Gemma는 Google의 효율 중심 계열, Phi는 Microsoft의 소형 모델 계열, Mistral은 별도 범용·전문 모델 계열이다. DeepSeek의 R1은 추론 특화 모델, **Devstral**은 Mistral과 All Hands AI의 협업으로 소개된 코드베이스 탐색·다중 파일 수정·도구 사용 지향의 코딩 에이전트 모델이다. Dolphin은 독립된 기반모델 계열이라기보다 기존 모델을 추가 지시 조정한 파생 계열로 볼 수 있다. 이런 캐릭터식 구별은 용도별 인상을 돕는 비유이며, 버전·크기·양자화가 다른 모델을 정밀한 성능 순위로 만든 것은 아니다. 파일이 500MB인 Qwen과 '13B'로 기억된 Qwen을 비교하려면 정확한 태그가 필요하다. 전자는 작은 모델의 양자화 파일일 수 있지만 파일 크기만으로 파라미터 수를 확정할 수 없다. Qwen2.5의 인접한 공식 크기에는 0.5B와 14B가 있다. 출력 속도와 복잡한 지시 처리의 체감 차이는 모델 규모뿐 아니라 하드웨어와 설정에도 따른다. ## RAG와 데이터베이스 도구 호출을 혼동하지 않기 **RAG(Retrieval-Augmented Generation)** 는 외부 문서·위키·매뉴얼에서 질문과 관련된 자료를 검색해 모델의 입력으로 첨부하고 답을 생성하는 방식이다. 청킹은 문서 분할, 임베딩은 문장을 검색 가능한 벡터로 표현하는 절차이며, 벡터DB는 그러한 검색을 지원한다. 다만 모든 RAG가 반드시 벡터DB를 사용해야 하는 것은 아니다. 키워드 검색도 결합할 수 있다. 반면 'A-102 품목의 현재 재고는?'이라는 질문은 문서 유사도보다 **정형 DB 조회**가 적합하다. 모델에 DB 관리자 권한을 주는 대신, 별도 앱이 허용된 `get_stock(item_id)` 같은 도구만 노출한다. 앱은 읽기 전용 SQL을 실행하여 반환값을 모델에 전달한다. 보고서나 작업표준서는 RAG로, 수량·시간·상태는 정확한 조회 함수로 읽고, 모델은 두 결과를 통합해 설명한다. 이 방식은 모델이 스스로 값을 만들어 내는 위험을 줄인다. 윈도우 인증 계열인 NTLM은 이러한 검색 보강과 무관하며, Facebook의 Prophet은 LLM이 아닌 시계열 수요 예측 도구다. Prophet이 재고 수량 자체를 조회·보증하는 것도 아니다. ## 설비의 정상·비정상 판정은 언어모델과 분리한다 산업 설비에서 센서·PLC·운전상태 API를 수신해 정상 여부를 판단하는 기능은 **결정적 규칙·통계·전문 이상탐지 모형**으로 구현하는 편이 적합하다. 임계치·지속시간·변화율·안전재고에 해당하는 기준을 고정하면 결과를 재현하고 시험할 수 있다. 작은 Qwen은 이상 이벤트가 발생했을 때 원인 후보와 기준 초과값, 점검 안내를 한국어로 정리하는 데 쓰인다. 이것은 실제 장비 안전 판정과 긴급 정지의 책임을 LLM에 위임하는 설계가 아니다. 예를 들어 API에서 온도·전류·압력을 받으면 서버는 바로 이상 여부를 판정하고 DB에 사건을 기록한다. 경보가 중요하면 **LLM 생성이 끝나기 전에 기본 알림을 먼저 발송**해야 한다. 설명 생성은 실패해도 된다. LLM이 지연되면 미리 정한 경보 문구로 대체한다. 같은 설비에서 같은 이상이 연속될 때는 중복을 억제하되 상태 변경·위험 증가까지 묶어서 놓치지 않도록 한다. ## 저가 서버 구성과 급증하는 API 요청 PoC의 한 출발점은 Intel N100급 CPU, RAM 16GB, SSD와 1B~3B 양자화 모델이다. 여유가 있으면 32GB RAM, 빠른 CPU 또는 8GB 이상 VRAM을 지닌 GPU로 3B~7B급을 시험할 수 있다. 이 사양은 검증된 초당 토큰 수나 동시 요청 수를 보증하는 최소 요건이 아니라 **실험용 구성안**이다. 라즈베리파이에서도 작은 모델을 돌릴 수 있지만 큰 모델의 실시간 응답은 제한적이다. Pi가 DB·MQTT·검색과 HTTP API를 맡고 모델은 다른 PC에서 실행하는 분리도 가능하다. Windows 미니PC의 Ollama/LM Studio 설치도 가능하다. 개발·검증에는 편리하지만 24시간 무인 운영 시에는 자동 시작, 재시작, 업데이트, 전원 복구, 로그 보존을 시험해야 한다. Linux 전환은 선택사항이지 로컬 LLM 구동의 필수조건이 아니다. 요청 폭주 때는 **네트워크가 아니라 추론 처리량**이 병목일 수 있다. FastAPI 등 수신 계층이 입력을 검증하고 빠르게 응답한 뒤, 판정 결과와 이벤트를 영속 저장한다. 비정상 설명 작업은 큐에 쌓아 한정된 워커가 Ollama로 보낸다. NGINX의 속도 제한, 큐 적재 한도, 중복 병합, 우선순위, 타임아웃, 실패 재시도, 기본 경보가 함께 필요하다. 요청을 받아 놓고 메모리에만 보관하면 프로세스가 죽을 때 사라질 수 있으므로, 알림이 중요한 서비스에서는 DB나 메시지 브로커 같은 영속 큐를 고려해야 한다. 더 높은 동시 추론 처리량이 실제로 필요해지면 continuous batching을 지원하는 vLLM류 엔진을 검토한다. 그 전에 먼저 **정상 이벤트를 LLM에 보내지 않는 것**이 비용을 가장 많이 줄인다. ## 검증해야 할 조건 하드웨어 구매 전에는 장비 대수, 데이터 송신 주기, 순간 최대 요청량, 평균·최악 지연, 이상 발생 빈도, 허용 가능한 경보 지연, 외부망 사용 가능성, 회사의 데이터 규정과 장애 시 대응을 정의해야 한다. LLM의 문장 품질 시험과 안전 경보의 미탐·오탐 평가도 분리해야 한다. 이는 확정된 배포 사양이 아니라 데이터·언어 모델·실시간 판정의 책임을 분리하는 설계 원칙이다. 관련: [운영 데이터 AI 코파일럿](./operations-data-ai-copilot-portfolio.md), [추론 계산의 스케일링](./ai-compute-scaling-inference.md).