검색 증강 생성(RAG) [IT조선 백과사전]

2024-06-09     김홍찬 기자

RAG(Retrieval Augmented Generation)는 단어가 가진 의미 그대로 말한다면 '검색 증강 생성'이라고 한다. 풀어서 설명하자면 RAG는 생성형 AI인 챗GPT와 같은 대형언어모델(LLM)이 사용자의 질문에 대답하기 전에 외부 지식 베이스에서 정보를 검색하고 이를 LLM에 적용시켜 보다 정확한 답변을 생성하는 기술이다. 

검색 증강 생성을 설명한 이미지 / DALL.E

LLM은 방대한 양의 데이터를 사전에 학습해 사용자의 질문에 적절한 대답을 할 수 있는 인공지능 기술이다. 이는 학습한 정보를 매끄럽게 요약하고 자연어 처리 기술을 이용해 실제 사람처럼 대답할 수 있기에 AI 챗봇과 같은 애플리케이션에 쓰인다. 

RAG와 LLM을 이야기할 때 핵심은 ‘학습된 정보’다.

LLM이 방대한 양의 데이터베이스를 갖고 있다해도 정제되지 않은 내용 그대로를 답변한다면 사용자의 질문에 모호하거나 심지어 잘못된 정보를 내놓을 수 밖에 없다. 생성형 AI의 최대 문제점인 ‘할루시네이션’(환각, 맥락에 근거하지 않은 잘못된 정보나 허위 정보를 생성하는 것)이 발생하는 이유다.

이를 최소화하기 위해 제시된 기술이 RAG다. RAG는 사용자가 프롬프트에 질문을 하면 그 질문을 외부 소스(인터넷 등), 기업의 내부 데이터에서 검색한 다음 그 데이터를 바탕으로 프롬프트를 다시 작성한다. 외부 정보를 실시간으로 끌어오거나, 특정 데이터 베이스 내에서 검색할 수 있기 때문에 설정한 범위에서는 정확하게 대답할 수 있다. 특정 영역에 전문화된 AI를 활용하고자 하는 기업들이 열광하는 이유다.

RAG의 구동 방식은 사용자 검색, 데이터 로드, 텍스트 분할, 임베딩, 인덱싱, 출력으로 이뤄진다. 우선 사용자가 검색을 하면, 검색 내용에 따라 외부에서 관련 정보를 가져온다. 불러온 데이터가 길다면 이를 청크(단일 단위로서 저장·검색되는 사실의 집합체)로 쪼갠다.

이후 LLM이 텍스트를 인식할 수 있도록 자연어를 숫자로 바꾸는 임베딩을 거친다. 임베딩이 끝나면 문장은 숫자가 나열된 벡터로 변환된다. 벡터는 숫자이기 때문에 정렬이 된다. 이를 이용해 유사한 벡터끼리 가깝게 묶는 인덱싱을 할 수 있다. 마지막으로 사용자의 질문과 관련도가 가장 높은 정보를 찾아내 출력한다.

다만, RAG 역시 외부 정보 검색에 의존하기 때문에 만약 해당 정보가 잘못되었다면 RAG 역시 잘못된 정보를 내놓을 수밖에 없다. 그러나 LLM의 재학습 비용에 비해 저렴하고 효율적이기 때문에 활용 가치가 높다.

김홍찬 기자 hongchan@chosunbiz.com