기술 설명
RAG 란?
RAG(검색 증강 생성)는 질문이 오면 가진 자료에서 관련 대목을 먼저 찾고, 그 대목을 근거로 답을 만드는 방식입니다. 모델이 배운 적 없는 자료로도 답할 수 있습니다.
한마디로
찾아서 읽고 답한다
언어 모델은 학습한 범위 안에서 답합니다. 회사 규정집, 지난달 맺은 계약서, 사내 업무 지침처럼 공개되지 않은 자료는 모릅니다.
RAG 는 질문과 답 사이에 찾는 단계를 넣습니다. 모델은 찾은 대목을 읽고 답을 씁니다.
그래서 답 옆에 어느 문서의 어느 대목을 읽었는지 함께 표시할 수 있습니다. 답을 받은 사람이 직접 확인할 수 있습니다.
구동 순서
자료를 넣고 답이 나오기까지
앞의 두 단계는 자료를 넣을 때 한 번, 뒤의 두 단계는 질문이 올 때마다 구동됩니다.
쪼갠다
문서를 알맞은 크기의 대목으로 잘라 둡니다. 너무 크면 엉뚱한 내용이 섞이고, 너무 작으면 앞뒤 맥락이 끊깁니다.
숫자로 바꾼다
잘라 둔 대목을 임베딩이라는 숫자 묶음으로 바꿔 저장합니다. 뜻이 가까운 글이 가까운 숫자가 됩니다.
찾는다
질문도 같은 방식으로 숫자로 바꿔 가까운 대목을 골라냅니다. 고른 대목을 한 번 더 추려 순서를 다시 매기기도 합니다.
답을 만든다
고른 대목을 질문과 함께 모델에 넘겨 답을 쓰게 합니다. 읽은 대목은 답 옆에 같이 보여 줄 수 있습니다.
비교
파인튜닝과 다른 점
모델에 자료를 더 학습시키는 방법을 파인튜닝이라고 합니다. 자료가 자주 바뀌는 일에는 RAG 가 맞고, 둘을 같이 쓰기도 합니다.
자료가 바뀔 때
파인튜닝은 자료가 바뀔 때마다 학습을 다시 해야 합니다. RAG 는 바뀐 문서를 다시 넣으면 끝납니다.
근거를 보여 줄 때
파인튜닝한 모델은 답이 어디서 왔는지 말하지 못합니다. RAG 는 읽은 대목을 그대로 가리킵니다.
한계
잘 안 될 때
RAG 를 쓴다고 다 해결되지는 않습니다. 실제로 막히는 자리는 대개 아래 셋입니다.
- 찾기가 틀리면 답도 틀립니다. 찾는 단계에서 엉뚱한 대목을 고르면 모델은 그 대목을 근거로 틀린 답을 씁니다.
- 쪼개는 방식이 결과를 크게 바꿉니다. 표와 그림이 많은 문서는 글만 잘라 내면 뜻이 사라집니다.
- 맞는 대목을 찾아도 모델이 그 대목을 잘못 읽을 수 있습니다. 마지막 확인은 사람이 합니다.