카카오의 여러 서비스에 흩어진 table·column 설명을 누구나 자연어로 찾게 하는 사내 data bot '0depth' 개발기를 다룬다. 서비스마다 table 구조·용어가 달라 분석가가 아닌 구성원은 원하는 데이터의 위치와 의미를 찾기 어렵다는 문제에서 출발한다.
핵심 포인트- 사내 정보가 계속 바뀌므로 model에 고정 학습시키지 않고 최신 문서를 검색해 답변에 주입하는 RAG를 채택하고, 사용자별 접근 가능한 source만 제공하는 흐름을 설계
- table·column 설명을 공통 schema의 작은 document로 정규화하고, 정확한 table명·업무 표현이 embedding 유사도에 희석되는 문제를 BM25+vector hybrid search와 table·column·business 관점의 multi-query 확장으로 보완
- retriever 결과의 무관한 schema를 걸러내도록 작은 LLM을 domain data로 fine-tuning하고, table 위치 설명·SQL 생성·일상 질의가 한 prompt에서 섞이는 현상을 intent router와 task별 전문 LLM 분리로 해결
- 대화가 길어질수록 급증하는 VRAM·응답 시간을 필요한 history만 선별·요약해 관리, 최종 구조는 task router+multi-query hybrid retriever+task-specialized LLM으로 기존 BM25+GPT-4.5보다 정확도와 비용을 함께 개선
왜 읽나사내 데이터 검색용 RAG bot을 만들려는 엔지니어에게, hybrid retrieval·domain fine-tuning·task 분리를 엮어 정확도와 비용을 동시에 잡는 실전 설계를 제시한다.