온프레미스 LLM 전환 벤치마크: 145문항으로 모델을 고르기
정확도 99.3%, 중대 오답·무응답 0건, 2.9배 빠른 모델로 전환. 골든셋, 프롬프트 role 분리, 배포 전 회귀 게이트까지.
사내 HR RAG 챗봇의 생성 모델을 전환했다. 기준은 “더 좋아 보이는 모델”이 아니라 평가셋으로 검증된 모델이었다. 전환 과정에서 만든 평가 체계와 구조 변경을 정리한다.
골든셋 145문항
실제 사용 질문과 표 조회, 후속 · 계산형 질문을 모아 골든셋을 만들었다. HR 100문항 + ESH(환경 · 안전 · 보건) 45문항. 채점 기준은 정확도, 하드 오답(규정과 다른 답), 무응답, 응답 속도 네 가지다.
기존 모델은 표 내용을 놓치거나 조건에 따른 계산이 필요한 질문에 일부만 답했다. 원인은 모델보다 검색에 있었다. 표가 셀 단위로 분리되어 적용 대상과 지급 기준이 따로 검색되고 있었다.
구조 변경 세 가지
1. 표 구조를 보존하는 청킹. PDF 12종의 추출 결과를 하나씩 검증하고, 표 제목 · 행 · 열이 함께 검색되도록 문서 추출과 청킹 구조를 바꿨다. 청킹 방식은 비교 실험으로 결정했고, 오프라인 평가 체계를 같이 만들었다.
2. 계산형 질문 분리. 근속기간, 휴가일수처럼 계산이 필요한 질문은 LLM이 직접 계산하지 않는다. 규정에서 조건을 찾은 뒤 계산 함수가 산출하게 분리했다.
3. 프롬프트 role 분리. 시스템 지시와 사용자 입력을 한 문자열로 합치지 않고 SystemMessage와 HumanMessage로 분리했다. RAG 생성기 · 라우터 · 정형응답 · 문서/관리자 경로 모두에 적용했다.
결과
| 항목 | 결과 |
|---|---|
| 정확도 | 99.3% |
| 하드 오답 | 0건 |
| 무응답 | 0건 |
| 속도 | 기존 대비 약 2.9배 |
| 평균 응답시간 | 약 10초 → 3초대 |
기존 모델 전용이던 양자화 · speculative 설정은 vLLM에서 제거했다.
회귀는 배포 보류
프롬프트를 바꾼 뒤 일부 문항에서 회귀가 나왔다. 배포를 보류하고 재검증한 뒤 반영했다. 이걸 반복하지 않으려고 배포 전 회귀 게이트를 스크립트로 만들었다. 운영 vLLM에 약 340회 생성을 요청하며 70분 정도 걸리므로 업무시간을 피해 팀 합의 후 실행한다. 이 게이트는 회귀 방어선이지 품질 전체를 보장하지는 않는다.
보안 · 결함 개선 10건
전환과 별개로 정적 검토와 재현 테스트로 인증 · 파일 처리 · 스트리밍 · 상태 관리 문제를 찾아 배포 대상 10건을 개선했다. 개발 · 운영 환경도 분리했다. 코드는 개인 clone과 개인 브랜치에서, 운영 배포는 공용 경로의 main에서만, DEV DB는 개인별로 분리하고 운영 DB를 DEV에 RW 마운트하지 않는다.
ESH 확장
같은 엔진을 환경 · 안전 · 보건 법령 안내로 확장했다. 법령 표현 · 동의어 · 원문 출처 연결 방식을 조정했고, 15개 기준 질의와 표현 변형을 포함한 45건을 전수 통과했다. 이 과정에서 첫 질문 재작성 단계의 검색 왜곡 결함도 잡았다.
현재 전사 사용을 거쳐 그룹사 확대를 준비 중이다. 평가 기준 설계부터 오류 분석, 구조 개선, 검증까지 한 번에 맡아본 첫 경험이었다.