RAG 그리고 Vector DB

SSO·2024년 11월 8일

RAG (Retrieval-Augmented Generation)

RAG란?

RAGRetrieval-Augmented Generation의 약자로, 말 그대로 검색 기반 생성 기법이다.

  • Retrieval : 번역된 검색이라는 의미보다는, 어디선가 요청된 무엇인가를 가져오는 것.
  • Augmented : 직역하면 "증강되었다"라는 의미이며, 원래 것에 향상시킨 것이라고 보면 된다.
    -Generation : 생성이라는 의미이며, 이는 프롬프트(사용자 질문/질의에 응답을 텍스트로 생성)을 의미한다.
  • 출처 : https://yozm.wishket.com/magazine/detail/2828/

LLM은 많은 데이터를 학습했음에도, 최신 정보특정 도메인 지식에 대한 한계를 가질 수 있기에, 이를 보완하기 위해 RAG는 LLM이 직접 답을 생성하는 대신, 외부 데이터베이스문서에서 관련 정보를 검색한 후, 그 정보를 바탕으로 답변을 생성하는 방식이다.


RAG의 동작 원리

RAG의 동작 원리는 다음 3단계로 나눌 수 있다.

1. 질문 입력

사용자가 질문을 하면, RAG 시스템은 질문에 맞는 답변을 생성하기 전에 검색 단계를 거친다.

2. 문서 검색 (Retrieval)
벡터 DB기타 정보 저장소에서 질문과 관련된 문서를 검색한다. 이때 사용되는 검색 방법은 텍스트를 벡터화하여 의미적으로 유사한 문서를 찾는 것이다.

3. 답변 생성 (Generation)
검색된 문서를 바탕으로 LLM이 최종적으로 답변을 생성한다.


RAG의 장점

1. 최신 정보 활용
LLM은 학습된 데이터가 오래될 수 있지만, RAG는 최신 데이터베이스에서 정보를 검색할 수 있다.

2. 특정 도메인 정보 제공
도메인에 특화된 정보 제공이 가능하여, 일반적인 LLM보다 더 정확한 정보를 제공할 수 있다.

3. 효율성
필요한 정보만을 검색해오기 때문에, LLM모든 지식을 외부에 의존하지 않고도 효율적으로 사용 가능하다.


RAG의 예시

예를 들어, 법률과 같은 특수 분야에서 질문이 들어올 경우, LLM은 법률 데이터베이스에서 관련 문서를 검색하고, 이를 바탕으로 답변을 구성할 수 있다. 즉, LLM의 기본 모델에 의존하지 않고도, 실시간으로 정확하고 최신의 정보를 제공하는 것이다.


RAG의 추가적인 정보

현재 GPT 4는 2023년 4월까지의 데이터를 학습한 것이다. 이후에의 학습 데이터는 있지 않다. 그렇기에 LLM을 보다 정확하고 최신 상태를 유지하기 위해 프레임워크의 아이디어인 'RAG'가 나오게 되었다.
즉, LLM이 알고 있는 것에만 의존하는 것이 아닌, 지식 콘텐츠 저장소를 추가한 것이다. RAG를 통해 프롬프트는 주의하라는 지시, 검색된 콘텐츠, 그리고 사용자의 질문 3부분으로 구성된다. 그리고 LLM을 통해 텍스트 응답을 만들어낸다.

또한 RAG는 LLM에 대해, 데이터 출처 소스를 나타낼 수 있다. 불분명한 것은 분명하게 '모르겠다'라고 표현이 가능해진다.


Vector DB (벡터 데이터베이스)

Vector DB

Vector DB는 텍스트, 이미지 등의 데이터를 벡터 형태로 변환해 저장하고, 그 벡터를 기반으로 데이터를 빠르고 효율적으로 검색하는 데이터베이스이다. 벡터 DB는 임베딩(embedding)이라는 방법으로 데이터를 벡터화하여, 유사한 의미를 가진 데이터들을 빠르게 검색할 수 있게 해준다.

임베딩

임베딩(embedding)은 텍스트나 이미지를 수학적으로 벡터(숫자 배열)로 변환하는 과정이다. 예를 들어, "강아지"라는 단어를 벡터로 변환하면 그 벡터는 "고양이"와 같은 다른 동물과도 유사한 벡터값을 가질 수 있다. 벡터 DB는 이러한 임베딩된 데이터를 기반으로 문서 검색을 수행한다.


Vector DB의 동작 과정

1. 임베딩 생성
문서나 텍스트를 벡터로 변환한다. 이 벡터는 해당 텍스트의 의미적 정보를 담고 있다.

2. 벡터 저장
생성된 벡터를 데이터베이스에 저장한다.

3. 벡터 검색
사용자가 검색어를 입력하면, 해당 검색어를 벡터로 변환한 후, 데이터베이스에서 유사한 벡터를 찾아낸다.

4. 결과 제공
유사한 벡터를 가진 문서나 데이터를 검색 결과로 제공한다.


Vector DB의 장점

  • 의미 기반 검색
    단순 키워드 매칭이 아니라, 텍스트의 의미에 기반한 검색이 가능하여, 유사한 의미를 가진 텍스트도 검색할 수 있다.

  • 고성능 처리
    대량의 벡터 데이터를 매우 빠르게 처리할 수 있어서, 대규모 텍스트 데이터에 대해 효율적으로 검색이 가능하다.


Vector DB의 활용 사례

  • 문서 검색 시스템
    대규모 문서 저장소에서 특정 주제에 대한 유사한 문서를 빠르게 검색 가능하다.

  • 이미지 검색
    이미지를 벡터화하여, 유사한 이미지나 관련 이미지를 빠르게 검색 가능하다.

  • 질문-답변 시스템
    질문에 대한 관련 정보를 벡터 기반으로 검색해 답변을 제공한다.

profile
개발자로 한걸음씩!

0개의 댓글