많은 기업이 "문서는 많지만 원하는 답을 찾기 어렵다"는 문제를 겪는다
이를 해결하기 위해 한 팀은 RAG(Retrieval-Augmented Generation) 시스템을 쿠버네티스 기반으로 구축했다.
답변은 단순히 내용을 제공하는 데 그치지지 않고 "사내 정책 문서 3.2절에 있습니다"처럼 근거까지 제시했다.
운영도 자동화되어 문서가 늘어나도 부담이 크지 않았다.

대부분의 중요 문서를 마크다운(Markdown) 형식으로 변환하기로 함
마크다운은 순수 텍스트에 가까워 불필요한 서식이 최소화되어 있으며, 토큰 효율성이 높아 LLM 같은 최신 모델들과도 잘 호환되는 장점이 있음
또한 구조가 명확하고 간결해, 문서의 논리흘므이나 섹션 구분, 표, 코드 등의 요소를 LLM이 더 쉽게 이해할 수 있음
반ㅁ녀 PDF, PPTX, DOCX와 같은 일반 문서를 그대로 벡터화하려면 내부 구조가 복잡하거나 텍스트가 단절되어 있어, 테그슽 자체는 벡터화 할 수 있더라도 문맥을 정확히 분석하기 어려운 단점이 있음
따라서 일반 문서를 마크다운(.md)로 변환할 떄, 제목, 강조 표현, 문서 구조 등의 요소를 얼마나 잘 보존하느냐가 RAG 시스템의 품질과 정확도에 직접적인 영향을 미침
가장 안정적이었던 조합은 변환 시 Marker와 MarkItDown을 함께 사용하는 방식
Kubeflow로 문서 임베딩 파이프라인을 자동화했으므로, 마크다운 변환 단계 또한 해당 파이프라인에 포함하도록함
뭄ㄴ서 수집 단계에서 각 문서의 메타데이터 필드를 확인하고, 필수 필드가 누락된 문서는 우선 벡터화 대상에서 제외
작성자나 작성 날짜, 작성 목적 등이 빠진 문서는 신뢰도가 낮거나 임시 자료일 수 있으므로, 우선순위를 낮춤
품질 점수를 매겨서 5점 만점 중 5점 (모든 필드 있음)인 문서만 즉시 벡터화하고, 5점 미만은 보완 전까지 보류하는 식으로 정책을 세웠음
이렇게 1차 필터링하면 벡터 DB에 저품질 정보 유입을 막고, 검색 시 노이즈를 크게 줄일 수 있음
초기 테스트 단계에서는 일부 프롬프트에 대해 전체 애플리케이션 응답 시간이 최대 10초에 달하는 문제가 있었으며, 이를 2 ~ 3초 이내로 단축하기 위해 임베딩 -> 검색 -> 프롬프트 구성 -> LLM 생성에 이르는 전체 파이프라인의 단계별 최적화가 필요했음
청킹(chunking 전략 개선)
청크 분할 방식 개선
Top-K 조절 및 재정렬 전략
기타 최적화
문맥을 이해한 답변이 가능해짐
같은 질문이라도 프로젝트나 기간, 담당자에 따라 다른 답변이 필요한 경우가 있었는데, 컨텍스트 기반 생성 방식은 이런 미묘한 차이를 잘 반영해 줌
운영 측면에서도 이점이 많았음
임베딩 파이프라인이 자동화되어 있어 문서가 늘어나더라도 관리 부담이 거의 없었음
GPU 추론 서버 역시 쿠버네티스의 오토스케일링 기능을 통해 안정적으로 유지
전체 구성이 컨테이너화되어 있어, 향후 LLM 교체나 멀티 클러스터 전환도 충분히 대응 가능한 구조