참고 자료
논문(Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks)
LangChain
HayStack
GitHub-Harrison Chase
RAG(Retrieval-Augmented Generation) 는 외부 지식소스를 검색해서 생성 모델의 입력으로 활용하는 방식으로, 제한된 파라미터 수만으로는 기억할 수 없는 정보를 외부 문서에서 보완하는 방법입니다.
항목 | RAG (Retrieval-Augmented Generation) | DB (Database) |
---|---|---|
목적 | 문서 기반 질의응답(QA) 또는 생성 모델 보완 | 구조화된 데이터 저장 및 CRUD 작업 |
데이터 구조 | 비구조화 문서 (텍스트, PDF 등) | 구조화 데이터 (테이블, 필드 등) |
검색 방식 | 의미 기반 검색 (벡터 임베딩) | 키워드/조건 기반 검색 (SQL 등) |
응답 방식 | 검색한 내용을 기반으로 LLM이 자연어 생성 | 쿼리 결과 그대로 반환 (정형 데이터) |
사용 사례 | 챗봇, 문서 요약, 규제 응답 시스템 등 | 회계 시스템, 고객 정보 관리 등 |
지식 업데이트 | 문서 추가 후 벡터화 필요 | 데이터 삽입/업데이트로 즉시 반영 |
CRUD란
“Create, Read, Update, Delete”의 약어로 데이터베이스와 같은 시스템에서 기본적인 데이터 관리 기능을 의미
LLM이 최신 문서나 사내 문서를 바탕으로 정교한 응답 가능
개념 | 역할/기능 | 비유 (관계형 DB 환경) |
---|---|---|
documents (JSON) | 원본 데이터 저장소 | DB 테이블에 저장된 실제 데이터 |
임베딩 벡터 | 원본 텍스트를 수치화한 표현 | 테이블에 인덱스를 걸기 위해 만든 컬럼 값들 |
FAISS 등 벡터 인덱스 | 벡터 기반 빠른 검색 구조 | SQL 쿼리나 인덱스로 검색 최적화 |
검색 결과 | 인덱스를 통해 찾은 문서 및 정보 | SQL 쿼리 실행 후 출력 데이터 |
추후 RAG 추가 예정