기타

RAG (Retrieval-Augmented Generation) 간단히 알아보기

vcxz 2024. 7. 15. 11:26

LLM, AI와 함께 RAG라는 용어가 보여서 간단하게 알아보았습니다.

 

 

 

RAG (검색-증강 생성)는 Chat GPT에 쓰여 유명한 LLM과 함께 쓰이는 것이며, LLM의 단점을 줄이기 위한 방법이라고 합니다.

Chat GPT 같은 생성형 AI를 써보면 아예 틀린 내용 또는 대충 관련 단어를 써 지어낸 내용을 반환하는 경우가 꽤 있는데, 이는 AI에게 주제와 직접 관련된 정보가 없기 때문일 것입니다. 그런데 사람을 대할 때와 마찬가지로, AI 역시 모를 때는 그냥 모른다고 하는 게 오히려 신뢰를 주는 거죠. 그런데 기존 LLM은 그런 행동이 잘 안 되나 봅니다.

 

 

RAG는 이렇게 관련된 정보가 없거나 그로 인해 잘못된 정보를 반환하는 경우를 줄이기 위해 LLM에 더하여 사용하는 방식입니다. RAG는 사용자와 LLM의 사이에 위치하여 사용자의 질문을 받고, LLM에 질문을 하는 역할을 합니다. 이때 RAG는 LLM에 질문을 하기 전에 RAG를 위해 마련된 지식 저장소에서 사용자의 질문과 관련된 정보를 찾습니다. 찾은 내용을 바탕으로 원래 사용자가 한 질문에 관련 정보를 추가하여 LLM이 맥락을 읽을 수 있게 하는 등 질문을 개선하여 LLM에게 전달합니다. 그리고 LLM이 답한 내용을 개선하여 최종 답변을 만든 후 사용자에게 전달하는 과정입니다. 이를 보면 이름은 지식 저장소에서 지식을 가져오고(Retrieval), 이를 사용해 답변을 증강하는(Augment) 정도의 의미겠네요.

 

RAG 작동 다이어그램 (출처: AWS)

 

이 과정을 통한 개선사항 중 대표적인 점은 위에서 언급한 틀리거나 없는 내용을 전달하는 경우가 줄어드는 것입니다. RAG는 LLM에 질문을 하기 전, 지식 저장소에서 질문과 관련된 정보를 검색해 질문의 맥락과 그것이 실제로 존재하거나 찾을 수 있는 정보인지를 우선 파악합니다. 또한 이 지식 저장소는 LLM에 학습된 데이터보다는 실시간적이기 때문에, LLM 학습 이후로 변경된 내용도 알 수 있습니다. 그리고 RAG는 신뢰할 수 없는 답변은 차라리 하지 않는 선택을 할 수 있다고도 합니다.

 

 

 

 

 

-- 출처

- https://modulabs.co.kr/blog/retrieval-augmented-generation/

- https://brunch.co.kr/@ywkim36/146