NAVER · 사내 RAG 검색·지식 베이스 파이프라인 구축
체험형 인턴 8주 — 760K+ 청크 색인 + Claude Code 스킬 팀 배포 — 인턴 종료 후 NAVER 팀에서 운영 중
팀/역할
기간
기술 스택
프로젝트 소개
NAVER 체험형 인턴 8주(2026-03 ~ 05) 동안 사내 코드·위키 데이터를 수집·정제·임베딩·색인하는 RAG 검색 시스템을 본인 영역으로 구현했습니다 (팀 위계: 멘토·팀 리더·팀 선임 개발자와 협업). 팀원 피드백을 수렴해 Claude Code 스킬(웹 UI + CLI 두 진입 경로)로 배포 — plugin 한 줄 설치 방식으로 사용성을 극대화했습니다. 인턴 종료 후에도 매일 02:00 cron으로 새 데이터 자동 증분 색인되어 NAVER 팀에서 운영 중입니다. 검색 평가셋(골든셋)을 직접 만들어 16조합 그리드로 평가했고, 자체 골든셋(쿼리 변형 100+)의 품질 한계를 확인하며 도메인 지식이 반영된 팀 골든셋이 우수함을 데이터로 입증했습니다(도메인 grounding의 중요성 체득). 팀 골든셋 기준 best Hit@5 82.4% · Recall@5 67.4% · MRR 0.711, 업계 통념 2건(리랭커·BM25)을 도메인 데이터로 재검증했습니다.
내 역할 및 기여도
수집 → 정제(LLM cleaner + Dify) → 청킹 → 임베딩 → Milvus 색인 → 검색 API → 평가 메트릭 설계까지 전 파이프라인 기여. Claude Code 스킬 배포(웹 UI + CLI) 및 GitHub Actions workflow_run 자동 체이닝으로 매일 새 데이터 자동 증분 색인 운영.
핵심 기능
RAG 파이프라인 + 매일 자동 증분
코드/위키 수집 → LLM 정제 → 청킹 → 임베딩 → Milvus 색인까지 GitHub Actions workflow_run 자동 체이닝. 매일 02:00 cron으로 새 데이터 자동 색인 — 팀 인계 후 자동 운영.
Claude Code 스킬 배포 — 팀원 피드백 수렴 협업
웹 UI(좌우 비교 검색) + CLI(자연어 호출) 두 진입 경로 제공. 팀원 피드백을 수렴해 plugin 한 줄 설치 방식 고안 — 사용성 극대화. 인턴 종료 후 NAVER 팀에서 운영 중.
LLM 정제 모델 선정
10개 모델(비전 4 + 텍스트 6)을 토큰·환각·원문 충실도 3축으로 정량 비교해 최적 정제 모델 선정. Dify 토큰 -70% 최적화.
16조합 그리드 평가
정제 × HyDE × BM25 × 리랭커 16조합 평가로 베스트 조합 확정. 업계 통념(리랭커는 항상 좋다 / BM25는 항상 좋다) 정량 재검증.
기술적 도전과 해결
골든셋 품질에서 도메인의 중요성을 데이터로 확인
문제
검색 품질을 정량 평가하려면 평가셋(골든셋)이 필요해 직접 만들었으나, 몇 개 쿼리를 변형해 100+개로 늘린 자체 골든셋은 평가 품질이 낮게 나옴
해결
자체 골든셋과 도메인 지식이 반영된 팀 골든셋의 평가 결과를 16조합 그리드(정제×HyDE×BM25×리랭커)로 비교 분석 — 무엇이 골든셋 품질을 좌우하는지 규명
결과
도메인 grounded 골든셋이 우수함을 데이터로 확인 — "좋은 골든셋은 쿼리 양이 아니라 도메인 grounding"을 체득. 팀 골든셋 기준 best Hit@5 82.4% / Recall@5 67.4% / MRR 0.711
대용량 청크 파일 OOM + 증분 파이프라인 지연
문제
청커/임베더가 모든 청크의 text+embedding을 단일 jsonl(21GB)에 동봉하고 메모리 일괄 로드 → SIGKILL OOM
해결
라인 스트리밍 + indexer 마커파일 fix 즉시 머지. 본질적 해결을 위해 청크 파일과 임베딩 SQLite 분리 + chunk-level 증분 Step 1/2/3 로드맵 등록
결과
OOM 즉시 제거 + 새벽 cron 안정화. 6h37m → 1h30m 목표 로드맵 확보. 단순 hotfix가 아닌 운영 관점 근본 원인 추적
BM25·리랭커 통념 정량 재검증
문제
"HyDE+BM25 ON이 항상 좋다", "리랭커는 검색 품질을 올린다"는 업계 통념. 사내 도메인에서 검증 미실시
해결
16조합 그리드(정제×HyDE×BM25×리랭커) + 4조합 38건 평균. Qwen3-Reranker 도메인 부적응 검증(FP 86~100%), HyDE+BM25 OFF 우위 검증
결과
리랭커 default OFF (Recall -21.4%p), BM25 default OFF (H@1 -3%p), HyDE ON 확정. silver bullet 없음 — 도메인 fit 검증 필수
운영 안정성 — 자동화 파이프라인 + 사고 대응
문제
GitHub Actions silent failure(토큰 누락 시 success 표시) + Milvus 색인 중 OOM 사고 + MinIO 메모리 부담
해결
PAT scope workflow 추가 + Secrets 6개 + workflow_run 자동 체이닝, 새벽 02:00 cron 4건 success 검증. Milvus mmap 활성화로 메모리 부담 완화(인프라 메모리 증설은 리더 진행)
결과
매일 02:00 자동 파이프라인 안정 운영(LLM 3h + Script 3h37m). prod 브랜치 + worktree 분리로 운영 환경 독립