brunch

You can make anything
by writing

C.S.Lewis

by 최재철 Mar 29. 2024

LLM RAG 란

우리가 알고 있듯이 LLM(대형 언어 모델)은 마지막 교육 업데이트 시점에서 지식이 고정되었다. 

우리는 이런 고정 데이터 세트에서 ChatGPT 를 사용하고 있는 것이다. 


ChatGPT의 일반 사용자는 잘 알려진 제한 사항인 " 2021년 9월까지의 훈련 데이터 "시점에서만 답변할 수 있다.

이러한 제한은 모델로 하여금 " 환각(hallucination) " 시키기 때문에 부정확하거나 시대에 뒤떨어진 응답으로 이어질 수 밖에 없다. 


이러한 문제점을 고치려면 모델 재학습 이나 파인튜닝이 필요하다. 

그런데 이러한 것을 수행하려면 많은 리소스( 시간, 금액, 인력) 등이 필요해서 일반사용자와 작은 기업은 쉽지 않다.  

이러한 것을 문제를 없애는 현실적인 대안이 바로 RAG 이다. 

모델 재학습과 파인튜닝 없이 새로운 정보로 업데이트하거나 상황 이해를 강화하는 것이다.


검색 증강 생성(RAG :Retrieval-Augmented Generation)

검색 증강 생성( 또는 줄여서 RAG )은 신뢰할 수 있는 내/외부 지식 기반의 정보를 통합하여 LLM (대형 언어 모델)을 개선하는 방법이다. 


RAG의 기본 원리는 간단합니다. LLM이 질문을 받을 때 이미 알고 있는 내용에만 의존하지 않는다.

추가로 지정된 지식 소스에서 먼저 관련 정보를 찾도록 하는 것이다. 

이 접근 방식을 통해 생성된 출력은 이용 가능한 가장 최신의 관련 정보로 포함된 채 답변을 생성할 수 있게 되었다. 


RAG의 동작방식은 주로 검색 과 콘텐츠 생성 이라는 2단계 프로세스를 통해 작동한다 .



검색 단계

검색 단계에서 알고리즘은 사용자의 프롬프트(prompt) 또는 문의(Question)와 관련된 정보를 찾아 수집한다.

시스템은 사용자의 질의에 대해서, 관련된 콘텐츠가 있는 문서를 검색하게 된다. 이때 일반적으로 벡터 간의 코사인 유사성( Cosine-Similarity of Embeddings )을 사용하여 관련성을 계산한다.

내/외부 지식을 수집한 후 이를 사용자 프롬프트에 추가하고 이를 언어 모델(LLM) 에 입력(Input)으로 보낸다 

예를 들어, 사용자가 백종원의 김치찌개 레시피를 원하는 경우 언어모델(LLM) 에게 백종원 요리책을 미리 주고 여기서 찾아줘. 라는 것과 같은 방식이다. 



콘텐츠 생성 단계

다음단계로 생성(Generative) 단계에서 LLM은 이 증강된 프롬프트를 자체 교육 데이터 표현과 결합하여 사용자 쿼리에 맞게 맞춤화된 응답(Response)을 생성한다.

이 응답은 챗봇과 같은 애플리케이션을 통해 사용하기에 적합한 전달되고 출처확인 가능한 정보형태로 제공한다.

검색 증강 생성 process


RAG가 중요한 이유

오늘날의 기술 환경에서 LLM은 인간과 유사한 텍스트를 이해하거나 생성할 수 있게 되었다. 그동안은 이해하는 척했다면, 이제는 비로소 완벽히 이해하고, 심지어는 추론, 생성하는 영역까지 확장되었다. 

믿을 수 없을 만큼 강력하지만 이러한 모델도 때때로 부족할 수 있다.

때때로 생성형AI는 잘못된 응답을 생성하는 데 지나치게 자신감을 갖고 있어 매우 설득력 있는 주장처럼 들린다. (과거 데이터를 가지고 어떻게든 답변을 하려고 하다보니, 발생하는 문제이다. )


그런데, RAG는 LLM이 신뢰할 수 있는 소스로부터 정보를 가져오도록 유도해서 모델의 출력 관련성과 정확성을 유지함으로써 이러한 문제를 해결하고자 시도한 방법론이다. 


RAG의 한계

인생의 모든 것이 그렇듯이 이또한 완벽하지 않다. 기존 RAG 접근 방식에도 복잡성과 어려움이 있다. RAG는 LLM의 기능을 혁신적으로 향상시키는 동시에 LLM의 효율성과 자유 확장 가능성에 영향을 미칠 수 있다.

그러나, 현실에서는 최적의 대안이며, 지금도 많은 개발자들이 RAG 를 좀 더 개선시키고자, 많은 시도가 이루어지고 있다. 


 




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari