RAG(Retrieval-Augmented Generation)의 개념 간단하게

LLM은 뛰어난 능력을 보여왔지만, 실제 사용을 위해서는 환각 현상이나 느린 지식 업데이트, 답변 투명성 부족 등

 

같은 문제를 해결해야합니다.

 

RAG는 검색 - 증강 생성이라는 뜻으로 LLM에서 질문에 대한 답변이나 텍스트를 생성하기 전에,

 

광범위한 데이터베이스 집합에서 관련 정보를 검색하고 이러한 정보를 포함하여 자연스러운 답변을 생성하는 방법

 

LLM 내부적으로 훈련된 데이터가 시대에 뒤떨어져있을 수 있고, 특정 영역에 대해 지식이 부족할 수 있으며

 

응답의 투명성이 부족하다는 문제를 해결하는데 중점을 둔다

 

etc-image-0

 

 

 

RAG는 답변의 정확도를 크게 향상시키고 지식 집약적인 작업에서 모델의 환각을 줄이는데 도움이 된다.

 

또한 사용자가 출처를 인용하여 답변의 정확성을 검증할 수도 있어 모델의 출력에 대한 신뢰를 증가시킨다.

 

RAG외에 fine tuning을 사용하여 LLM이 특정 지식에 집중하도록 할 수 있지만, 모델을 새로 학습시키는데 추가적인 자원이 소모된다.

 

반면 RAG는 LLM에 특정 질의에 대한 정보를 검색할 수 있는 '참고서'를 제공하는 것과 유사하다.

 

etc-image-1

 

 

 

기본 RAG는 RAG 연구의 초기 방법론으로 간단한 검색 및 생성 방식에 초점을 맞추고 있지만 기본 개념과 원리를 이해하는데 중요하다.

 

주요 구성요소로 인덱싱, 검색, 생성이 있다.

 

인덱싱(indexing)은 데이터를 얻어 인덱스를 생성하는 과정

 

데이터 인덱싱은 원본 데이터를 정제하고 추출하는 것으로 다양한 파일 형식을 일반 텍스트로 변환하는 작업이 포함

 

청크(chunk) 분할은 불러온 텍스트를 더 작은 조각으로 나누는 작업으로, 언어 모델은 일반적으로 처리할 수 있는 맥락 양에 한계가 있다.

 

따라서 가능한 한 작은 텍스트 청크를 생성하는 것이 필요하며 검색 과정에서 모델이 처리할 수 있는 데이터 양을 최적화

 

임베딩 및 인덱스 생성은 텍스트를 벡터로 인코딩하는 과정

 

이렇게 생성된 벡터는 후속 검색 과정에서 질문 벡터와 유사성을 계산하는데 사용

 

임베딩 모델은 높은 추론 속도를 가져야하며, 사용자가 질문을 할 때 대량의 코퍼스를 실시간으로 인코딩하여야 하고,

 

이후에는 원본과 임베딩을 key value 형태로 저장하여 추후 질문에 대비해야한다.

 

검색 과정은 사용자의 입력을 벡터로 변환하고 해당 벡터와 문서 블록의 벡터 간 유사성을 계산하여 상위 k 문서 블록을 선택

 

생성 과정은 주어진 질문과 관련 문서를 결합하여 새로운 프롬프트를 생성하고 대규모 언어 모델이 이 정보를 기반으로 질문에 답변

 

-------------------------------------------------------------------------------------------------------------------------------------------------------

 

이러한 기본 RAG 틀에 기반하여 고급 RAG는 여러가지 기법을 추가하여 단점을 개선한 형태

 

데이터 인덱싱을 최적화 

 

효과적인 임베딩

 

검색 후 문서의 순위를 다시 매기기(관련성이 높은 정보를 앞부분에 재배치)

 

검색 후 문서 중 중요하지 않은 문서를 줄이고 중요한 문서를 강조하여 콘텍스트 길이를 재조정

 

등등 여러 최적화 기법들을 도입한 것이 고급 RAG 기법

 

그리고 이런 RAG 기능들을 모듈화 시키는 흐름이 모듈화 RAG기법

 

https://discuss.pytorch.kr/t/rag-1-2/3135

 

대규모 언어 모델을 위한 검색-증강 생성(RAG) 기술 현황 - 1/2편

PyTorchKR​🔥🇰🇷 🤔💬 12/18~24의 주요 ML 논문에 소개된 RAG 기술에 대한 서베이 논문을 정리해보았습니다. LLM의 활용이 늘어나며, RAG에 대한 연구들 또한 계속되고 있습니다. 1부에서는 RAG 기술

discuss.pytorch.kr

 

 

728x90