기타/LLM

LLM(1) RAG(검색, 증강, 생성)란?

baektree 2025. 10. 14. 14:30

RAG(Retrieval-Augmented-Genera란?

대규모 언어 모델이 응답을 생성하기 전에 외부 지식 베이스에서 관련 정보를 검색하여 그 내용을 바탕으로 답변을 생성하는 AI 프레임 워크이다. 즉 신뢰할 수 있는 지식소스를 참조하여 정확도 높은 답변을 제공하는데 주력한다.

 

사용예시

명품 주얼리 브랜드와 라인은 다양한 약어와 비표준어로 불려지는데 (EX 오닉스5는 반클리프의 알함브라 라인) LLM은 이런 비정형 텍스트 정보를 학습하지 않아, Hallucination(환각) 즉 존재하지 않는 거짓 정보를 만들어내 응답하는 오류를 범하기 쉽다.

RAG(검색 증강 생성) 이 문제를 해결한다. RAG는 사용자의 질문과 관련된 정확한 정보를 외부 지식 베이스에서 ‘검색’한 후, 이 검색된 문서(소스)를 LLM에게 제공하여 프롬프트를 증강, 답변을 생성한다.

따라서 LLM은 오닉스5가 반클리프 아펠의 알함브라 라인이라는 정확한 사실을 기반으로 출력할 수 있게 되며, 이로써 정보의 신뢰성과 정확성을 높일 수 있다.

 

작동방식

1. 질의(Query) 사용자 질문(” 이 게시물에서 언급된 브랜드/라인명을 출력해줘.”)를 시스템에 입력한다. 이 질문은 임베딩 되어 검색에 사용될 쿼리 벡터로 변환된다.
2. 검색(Retrieval) 쿼리 벡터를 사용하여 벡터화된 csv 문서(외부 지식 베이스)를 검색한다. 쿼리와 벡터 유사도가 가장 높은 관련 문서(청크)를 추출한다.
3. 증강(Augmentation) 관련된 문서(예: 오닉스5-반클리프 아펠 알함브라)를 원래의 사용자 질의와 함께 하나의 프롬프트로 결합하여 LLM에 제공한다. (prompt : [검색된 정보] + [사용자 질문])
4. 생성(Generation) 증강된 프롬프트를 입력받은 LLM이 제공된 사실 정보(컨텍스트)만을 활용하여 Hallucination 없이 정확하고 일관성 있는 답변을 생성한다.
5. 답변(Answer) 최종적으로 LLM이 생성한 정확한 답변을 사용자에게 출력한다.

출처: 아마존

 

RAG란? - 검색 증강 생성 AI 설명 - AWS

검색 증강 생성(RAG)이란 무엇이며, 기업에서 RAG AI를 사용하는 방법과 이유, AWS에서 RAG를 사용하는 방법에 대한 내용입니다.

aws.amazon.com

이미지에서도 볼 수 있다시피 질의를 쿼리 벡터로 바꾸고 유사도 높은 문서를 검색, 컨텍스트를 증강한다. 그리하여 LLM은 신뢰도 있고 정확도 높은 답변을 생성하게 되는 것이다.

 

여기서 생소한 개념이 나오는데 바로 벡터, 임베딩이다.

🏀 벡터란? 숫자 배열
쉽게 말해 숫자 배열을 의미한다. 좌표와 같다. (EX [3.1, -2.5, 0.8] )

⚾ 임베딩이란? 의미를 가진 벡터
의미를 담은 벡터이다. 단어, 문장, 이미지와 같은 복잡한 데이터를 의미론적 관계를 포함하는 숫자 배열, 즉 벡터로 변환한 결과물이다. 임베딩이란 단어 자체가 어딘가에 박어 넣다. 끼워 넣다라는 뜻처럼 객체의 의미를 벡터 공간에 박아 넣는 과정 또는 그 결과물이라고 이해하면 된다.

👉 예시
‘고양이라는 단어를 나타내는 수백개의 숫자 배열 [0.9, 0.2, -0.7, ...]이 다른 벡터들과 관계 속에서 의미를 가진다. 즉 ‘고양이’ 벡터는 ‘강아지’벡터와 가깝고, ‘책상’ 벡터와는 멀리 떨어져 잇다. 

 

 

다음, 포스트에는 내가 활용한 코드를 기반으로 RAG 작동방식을 이해해보겠다.