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