챗봇은 어떻게 내 말을 이해할까 — RAG 기술 쉽게 풀어보기
핵심 요약 RAG는 질문과 관련된 자료를 먼저 검색한 뒤, 그 자료를 근거로 LLM이 답하게 만드는 구조입니다. 사내 챗봇처럼 최신 문서와 내부 규정을 정확히 반영해야 하는 업무에서 특히 중요합니다.
"우리 회사 휴가 정책 알려줘"라고 물었을 때, 챗봇이 정확히 우리 회사 규정을 답해주는 걸 본 적 있나요? 공개 LLM은 우리 회사 내부 문서를 모를 텐데 어떻게 가능할까요? 그 비밀이 바로 RAG(Retrieval-Augmented Generation, 검색 증강 생성) 입니다. 도서관 사서 비유로 풀어보겠습니다.
그냥 LLM에 물어보면 안 되나요
일반 LLM은 인터넷의 방대한 글로 학습됐습니다. 일반 상식이나 위키피디아 내용은 잘 알죠. 하지만 다음 질문에는 약합니다.
- 우리 회사 내부 규정 (학습 안 됨)
- 어제 발표된 신제품 정보 (학습 시점 이후)
- 비공개 문서나 사내 매뉴얼 (절대 학습 못 함)
이런 질문에 LLM은 두 가지 잘못된 반응을 보입니다.
1. 모른다고 답하기
"죄송합니다, 그 정보는 알 수 없습니다"라고 솔직하게 답하면 그나마 다행입니다.
2. 그럴듯하게 지어내기
문제는 LLM이 그럴듯하게 거짓말 한다는 점입니다. 마치 알고 있는 것처럼 답하는데, 사실은 만들어낸 정보죠. 이걸 할루시네이션(hallucination) 이라고 부릅니다.
도서관 사서 이야기
상상해봅시다. 친구가 어떤 분야의 전문가인데, 우리 회사에 대해선 전혀 모릅니다. 그 친구에게 "우리 회사 휴가 정책 좀 알려줘"라고 묻는 게 LLM에 묻는 것과 같습니다.
이번엔 친구를 도서관에 데려갑니다. 사서가 회사 규정집을 찾아 친구에게 건넵니다. "이 책에 답이 있을 거예요." 친구는 책을 읽고 답합니다. "휴가는 입사 1년 후부터 15일이고, 사용은 이렇게 신청하면 됩니다."
이게 바로 RAG의 핵심 아이디어 입니다.
- 사용자 질문이 들어오면 → 사서가 관련 자료를 찾아옴
- 그 자료를 → 전문가(LLM) 에게 함께 건네줌
- LLM은 자료를 보고 답함 → 정확한 답이 나옴
RAG는 어떻게 동작하나
좀 더 구체적으로 단계를 보겠습니다.
1단계: 자료를 미리 정리해두기
사서가 자료를 빨리 찾으려면, 책장이 잘 정리돼 있어야 합니다. RAG도 마찬가지입니다.
회사의 모든 문서(매뉴얼·정책·FAQ·메일)를 작은 조각으로 자르고, 각 조각을 벡터(vector) 라는 숫자 묶음으로 변환합니다. 이 숫자는 그 문장의 "의미"를 표현합니다.
비슷한 의미의 문장은 비슷한 숫자가 되도록 학습된 거죠. "휴가 신청 방법"과 "연차 사용법"은 글자는 다르지만 의미가 가까우니, 비슷한 벡터가 됩니다.
2단계: 질문이 들어오면 비슷한 자료 찾기
사용자가 "휴가 어떻게 써?"라고 물으면, 이 질문도 벡터로 변환합니다. 그리고 미리 저장해둔 문서 벡터들 중에서 가장 비슷한 의미 의 것들을 찾습니다.
이런 데이터베이스를 벡터 DB 라고 부릅니다. 도서관의 도서 분류 카드와 비슷한 역할을 하죠. "휴가 신청 절차"가 적힌 사내 위키 문단이 검색됩니다.
3단계: LLM에게 자료와 함께 질문
이제 LLM에게 이렇게 부탁합니다.
"다음 자료를 참고해서 사용자 질문에 답해줘.
[참고 자료] 사내 휴가 신청은 그룹웨어 → 인사 → 휴가 신청 메뉴에서...
[질문] 휴가 어떻게 써?"
LLM은 자료를 읽고 사용자 질문에 맞게 정리해서 답합니다.
"그룹웨어에 로그인한 후 인사 → 휴가 신청 메뉴로 들어가시면 됩니다. 먼저 휴가 종류를 선택하고..."
자료에 없는 내용은 만들어내지 않습니다. "참고 자료에는 그 내용이 없습니다"라고 답하도록 설정할 수 있죠.
왜 "검색"과 "생성"을 합쳤을까
각각의 한계가 있기 때문입니다.
전통적인 검색 (예: 사내 위키 검색)
- 정확한 키워드가 있어야 함
- "휴가" 검색 → 휴가 관련 모든 문서 나열, 사용자가 직접 읽어야 함
- 자연스러운 답변은 못 함
LLM만 사용
- 자연스러운 대화는 가능
- 하지만 우리 회사 정보는 모름
- 그럴듯한 거짓말 위험
RAG = 검색 + 생성
- 우리 회사 정보를 정확히 가져옴 (검색의 강점)
- 사람이 읽기 좋게 정리해 답함 (생성의 강점)
- 자료에 근거하니 거짓말이 줄어듦
실제로 어디에 쓰이나
사내 지식 챗봇
신입 사원이 사내 위키를 뒤지지 않고 챗봇에 바로 물어봅니다. "출장비 정산 어떻게 해?", "VPN 접속이 안 돼", "회의실 예약 방법" 같은 일상적인 질문이 즉시 해결됩니다.
고객 지원
고객이 제품 문의를 하면, RAG가 매뉴얼·FAQ·과거 응대 기록에서 답을 찾아 응답합니다. 24시간 동작하면서, 복잡한 문의만 사람 상담원에게 넘겨주죠.
법률·의료·금융 같은 전문 분야
방대한 규정이나 논문에서 정확한 정보를 찾는 게 핵심인 분야입니다. 변호사가 판례를 검색하고 정리하는 시간을 크게 줄일 수 있습니다.
RAG를 잘 쓰려면
1. 자료가 깨끗해야 한다
쓰레기 자료를 검색해서 LLM에 넘기면, 쓰레기 답이 나옵니다. 사내 문서가 잘 정리돼 있어야 RAG가 잘 동작합니다.
2. 적절한 자료 양 찾기
너무 적게 찾으면 답이 부족하고, 너무 많이 찾으면 LLM이 핵심을 놓칩니다. 보통 3~5개 문단 정도가 적당합니다.
3. 답변에 출처 표시
"이 답변은 [사내 휴가 정책 v3.2]를 기반으로 했습니다"처럼 출처를 함께 보여주면, 사용자가 신뢰하고 검증할 수 있습니다.
마치며
RAG는 마법이 아닙니다. "검색해서 그 자료를 보고 답한다" — 사람이 평소에 하는 일을 자동화한 것뿐이죠. 미니소프트는 RAG를 활용한 사내 지식 시스템과 고객 응대 챗봇을 구축하며, AI가 실제 업무에 어떻게 녹아들 수 있는지 매일 실험하고 있습니다.
좋아요와 댓글
GitHub 계정으로 로그인하면 댓글을 작성하고 반응(좋아요)을 남길 수 있습니다. 댓글과 GitHub 계정명은 공개되며, 수정·삭제와 신고는 GitHub Discussions에서 처리됩니다.