소소한 컴퓨터 이야기

RAG (Retrieval-Augmented Generation)

by Cori

LLM (Large Language Model)의 한계

ChatGPT를 비롯한 여러 LLM 모델들은 자신이 학습한 데이터에 대한 질문은 답을 나쁘지 않게 한다.

https://www.elastic.co/search-labs/_next/image?url=%2Fsearch-labs%2Fassets%2Fimages%2Funderstanding-rag%2Ftraining.png&w=828&q=90

하지만 자신이 학습하지 않은 내용을 질문하는 경우, 거짓 정보를 진실된 정보인 것처럼 알려준다 (할루시네이션)

할루시네이션, https://www.unicornfactory.co.kr/article/2023032416064546422

 

RAG

거짓 정보를 발설하는 현상을 개선하기 위해, RAG (Retrieval Augmented Generation) 기법이 등장했다. RAG는 영어 단어에서 유추해볼 수 있듯이 추출, 증강, 생성하는 단계로 이루어지며, 외부 문서에서 추가 정보를 추출하고 추출한 정보를 Prompt Template을 활용해 증강하고 이를 LLM에 전달하여 응답을 생성한다.

https://www.elastic.co/search-labs/_next/image?url=%2Fsearch-labs%2Fassets%2Fimages%2Funderstanding-rag%2FRAG-in-action.png&w=1920&q=90

추출 단계에서는 사용자가 던진 질문과 관련성이 높은 정보를 외부 문서에서 '추출'해온다. 추출한 정보를 A info라 했을 때, 증강 단계에서 A info와 기존 사용자 질의를 결합해 프롬프트를 새롭게 '증강'한다.

기존 사용자 질의와 증강된 사용자 질의를 LLM에 전달했을 때 생성되는 응답을 비교하면 증강된 사용자 질의를 입력받은 모델의 출력 값이 보다 나은 것을 확인할 수 있다.

https://assets-global.website-files.com/63dac1ebc404d56378baeb1a/64fb5c20fbd7b1979b2f4354_prompt2.png

블로그의 정보

코딩하는 오리

Cori

활동하기