생성형 AI RAG란?
오늘은 요즘 생성형 AI 중 핫한 RAG에 대해서 알아보겠습니다.
RAG란?
RAG(Retrieval-Augmented Generation)를 번역한 “검색 증강 생성”이란 단어인데요. 각각의 단어의 뜻을 알아보겠습니다.
- Retrieval
R에 해당하는 “Retrieval”의 의미는 번역된 ‘검색’이라는 의미보다는 “어디선가 가져오는 것, 집어 오는 것”입니다.
- Augmented
A에 해당하는 Augmented는 “증강되었다”란 뜻이죠. 즉 원래 것에 뭔가 덧붙이거나 보태어 더 충실하게 좋아졌다는 뜻입니다. 즉 기존의 생성형 LLM에서 증강되어 결과를 보여준다는 것입니다.
- Generation
거기에 이젠 G, 즉, 생성이라는 Generation을 이야기해야죠. 생성은 프롬프트라고 하는 사용자 질문/질의에 대한 응답을 텍스트로 생성하는 것을 의미합니다.
RAG의 장점
RAG의 개념에 대해서 간단하게 알아보았는데요. 왜 그럼 RAG는 각광을 받게 된 것일까요?
기본적으로 생성형 AI의 단점을 해결하기 위해서 나온 개념입니다. RAG의 장점으로는 답변을 생성하는 과정에서 외부 정보 활용이 가능하다는 점(확장성), 사용자에게 더 맞춤화된 답변을 제공할 수 있다는 점(유연성 및 확장성), 그리고 검증 가능한 출처를 기반으로 답변을 제공해 할루시네이션(환상)을 최소화할 수 있는 점(정확성) 등이 있습니다.
즉 기존에 학습된 데이터에서만 답변을 하게 되면 학습하지 못한 데이터 또는 최신 업데이트 된 데이터에 대해서 생성할 수 없게 되는데요. 그래서 문제가 되는 환상현상(할루시네이션)을 최소화할 수 있다는 점입니다.
그래서 생성형 AI가 대답할 수 있는 외부 지식을 알려주고 여기에서 가장 연관성이 있는 답변을 하라고 지시하면 기존에 그냥 LLM을 사용할 때보다는 정확한 답변을 얻을 수 있는 것이죠.
RAG 관련 기본 이해
RAG는 크게 아래의 구조로 실행되게 되는데요. 각각의 개념에 대해서 간단히 알아보겠습니다.
기본적으로 RAG가 동작하기 위해서는 외부 데이터를 인덱싱해야 합니다. 이 과정을 임베딩한다고 하는데요.
외부에 있는 자료(웹사이트, PDF, CSV, 텍스트 등)를 LLM이 이해할 수 있는 DB로 변환하는 과정입니다. 데이터를 불러(load)오고, 이를 검색할 수 있게 짤라주고(split) 컴퓨터가 찾아올 수 있게 숫자로 변환(embeding)해서 저장(store)하는 과정을 거칩니다.
아래 이미지를 보면 좀더 이해가 쉬울것 같네요.
그리고 이제 이렇게 저장한 데이터를 LLM과 연동하여 검색(Retrieve)하고 다시 답변을 생성하는(generate)과정을 거치게 됩니다.
여기까지가 기본적인 RAG의 과정이라고 할 수 있습니다.
생성형 AI의 단점을 해소하기 위해서 RAG와 Fine Tuning이 많이 사용되는데요.
파인튜닝된 모델의 성능은 기업의 도메인 데이터 품질과 양에 의존적이며, 라벨링된 데이터가 부족하면 이 방법이 최선이 아닐 수 있습니다. 또한, 모델은 훈련을 마친 시점의 정보에 한정되어 있어, 지속적으로 최신 상태를 유지하기 어려운데요. 때문에 변화가 잦은 데이터에 대해서는 파인튜닝 대신 RAG를 사용하는 것이 품질 유지와 비용 측면에서 유리할 수 있습니다. 이는 데이터의 형태에 따라서 원하는 방식으로 사용하시는 것이 좋습니다.
RAG의 단점
하지만 RAG 역시 명확한 단점이 존재합니다. 단순히 검색만 하는 것이 아니라 마지막 단계에 다시 답변을 생성하는 과정을 거치기 때문에 RAG역시 환상 현상이 발생합니다. 즉 환상 현상이 줄어들 뿐 완전히 없어지지는 않는 것입니다.
그래서 이러한 RAG의 장단점을 명확하게 이해하고 사용하는 것이 무엇보다 중요합니다.
그럼 즐거운 하루 보내세요.