RAG가 뭐예요?
RAG(검색 증강 생성)를 앵무새가 답하기 전에 사서가 관련 페이지를 찾아 쟁반에 올려주는 이야기로 풀어봤어요.
손님이 우리 회사 환불 규정을 물어요. 앵무새는 그 규정집을 읽은 적이 없어요.그래도 그럴듯하게 답해요 — 그럴듯 앵무새예요.
읽은 책엔 우리 규정이 없어요. 특훈으로 새 지식을 넣기도 약해요.짧은 특훈은 말버릇용이지 새 사실용이 아니에요. 규정이 바뀔 때마다 특훈을 다시 할 수도 없고요.
RAG는 앵무새가 답하기 전에, 사서가 관련 페이지를 찾아 쟁반에 올려주는 거예요.앵무새를 다시 가르치지 않아요. 답할 때마다 쟁반에 페이지를 올려 주고 "이걸 보고 답해"라고 해요. 그러면 출처도 달 수 있어요.
질문이 딱지가 되고, 서가에서 가까운 페이지 몇 장이 쟁반으로 가요.딱지는 좌표 딱지, 서가는 딱지로 정리한 서가예요. 쟁반은 콩이 한정돼서 책 전체가 아니라 몇 장만 올려요.
사서가 엉뚱한 페이지를 가져오면 앵무새도 엉뚱하게 답해요. 페이지가 쟁반보다 크면 잘라야 해요.찾기 품질이 곧 답 품질이에요. 그리고 페이지가 쟁반에 맞아야 해요. 그래도 답이 틀릴 수 있으니 출처를 확인해요 — 그럴듯 앵무새는 사라지지 않아요.
RAG = 앵무새가 답하기 전에 사서가 관련 페이지를 찾아 쟁반에 올려주는 것. 앵무새를 다시 가르치지 않고도 우리 책으로 답하게 하고, 출처를 달 수 있어요. 사서가 잘못 찾으면 답도 틀려요.
Retrieval-Augmented Generation. 질문을 임베딩으로 바꿔 벡터 DB 에서 관련 청크를 검색(retriever)하고, 리랭킹으로 줄 세운 뒤 컨텍스트 창에 넣어 LLM 이 그 근거로 답하게 하는 방식이에요. 파인튜닝과 달리 지식을 모델 밖에 두어 갱신이 쉽고 인용이 가능해요. 검색 품질과 청킹이 답 품질을 좌우하고, 할루시네이션은 줄지만 없어지진 않아요.
어른들은 이렇게 불러요
- RAG
RAG - 사서가 찾아온 페이지. 검색 증강 생성. 찾아서(검색) 쟁반에 올리고(증강) 답해요(생성).
- 검색기
Retriever - 사서. 질문 딱지로 서가에서 가까운 페이지를 꺼내 오는 부분.
- 청킹
Chunking - 책을 페이지로 자르기. 쟁반에 올릴 만한 크기로 미리 잘라 서가에 꽂아요. 너무 크면 안 들어가고, 너무 작으면 앞뒤가 잘려요.
- 리랭킹
Reranking - 찾아온 페이지 다시 줄 세우기. 서가에서 10장 꺼낸 뒤 진짜 관련 있는 순서로 다시 정렬해 3장만 올려요.
- 근거 인용
Citation - 답에 붙이는 출처. 몇 쪽에서 봤는지 같이 말해요. 손님이 확인할 수 있어요.
- 컨텍스트 창
Context window - 쟁반. 찾아온 페이지가 올라가는 곳. 크기가 정해져 있어요. → 앵무새 앞의 쟁반
- 파인튜닝과의 차이
vs. fine-tuning - 특훈은 말버릇, RAG 는 지식. 새 사실은 쟁반에 올리고, 말투는 특훈으로 고쳐요. → 짧은 특훈
- 할루시네이션
Hallucination - 그럴듯한 거짓말. 페이지를 줘도 줄어들 뿐 사라지진 않아요. → 그럴듯 앵무새