피드로 돌아가기
Dev.toAI/ML
원문 읽기
Implementing a RAG system: Crawl
BC 정부 HR 정책 PDF를 벡터 데이터베이스에 인덱싱하고 코사인 유사도 기반 검색으로 HR 에이전트 구현
AI 요약
Context
표준 LLM은 학습 데이터의 지식 한계(knowledge cutoff)를 벗어날 수 없어 최신 조직 정책에 대한 정확한 답변이 불가능하다. 모든 정보를 매번 LLM에 입력하는 것은 비효율적이므로, 조직의 문서를 기반으로 한 신뢰할 수 있는 답변 시스템이 필요하다.
Technical Solution
- 문서 청킹 전략: PyPDFLoader와 RecursiveCharacterTextSplitter를 사용해 PDF를 청크_사이즈 1000, 오버랩 100으로 단계별 분할하여 문맥 손실 방지
- 임베딩 프로세스: 텍스트 청크를 부동소수점 벡터로 변환하고, 단순 문서는 낮은 차원의 벡터를 사용해 지연시간 및 계산 오버헤드 감소
- 인덱싱 및 검색의 일관성: 동일한 임베딩 모델을 인덱싱과 검색에 적용하여 단어의 의미 가중치가 일치하도록 보장
- 유사도 계산: 코사인 유사도를 기반으로 벡터 데이터베이스에서 쿼리와 문서의 의미적 의도(각도)를 매칭하여 텍스트 길이나 단어 빈도와 무관하게 검색
- 에이전트 통합: Google의 Agent Development Kit (ADK)를 사용해 query_hr 도구를 연결하고, 명확한 지시사항(정보원 인용, 외부 지식 금지)을 통해 RAG 시스템의 출력을 제어
Key Takeaway
RAG 시스템은 LLM을 '검은상자'에서 '열린책 시험' 형태로 변환하여, 지식 한계 우회, 빠른 데이터 업데이트, 팩트 기반 답변을 동시에 달성할 수 있는 패턴이다. 임베딩 모델 선택, 청킹 전략(오버랩 포함), 인덱싱과 검색 간 일관성 유지가 정확한 답변의 핵심 요소다.
실천 포인트
조직의 정책 문서나 기술 매뉴얼을 기반으로 질문 응답 시스템을 구축할 때, RecursiveCharacterTextSplitter로 자연 경계선(문단)을 따라 청크를 분할하고 오버랩을 설정하면 문맥 손실을 방지할 수 있다. 동일한 임베딩 모델을 문서 인덱싱과 쿼리 검색에 모두 적용하고, 코사인 유사도로 의미적 의도를 매칭하면 짧은 질문과 긴 문서 간의 관련성을 정확히 찾아낼 수 있다.