[이론] RAG(Retrieval-Augmented Generation) 란?

조민수·2024년 9월 28일
0

개발 이론

목록 보기
9/12
post-custom-banner

들어가기에 앞서

이전 포스팅의 프롬프트 엔지니어링과 함께 LLM을 효과적으로 사용하는 3개의 기술 중 두 번째, RAG에 대해 알아보겠다

참고로 3개의 기술이란,
1. 프롬프트 엔지니어링
2. RAG
3. 파인 튜닝
을 말한다.


RAG 이란

  • 기존의 언어 모델에 외부 지식을 결합해 응답의 정확성과 최신성을 향상시키는 기술

RAGLLM(Large-Language Model)의 단점 중

  • 사실 관계 오류 가능성
  • 맥락 이해의 한계

를 개선하는데 초점을 맞춘 방법이다.
위 두 가지는 각각

  • 방대한 데이터를 학습하나, 항상 정확한 정보만을 제공하지는 않는다.
  • 문장 단위의 이해에선 강점을 보이나, 장문의 글이나 복잡한 맥락 파악에선 어려움이 있을 수 있다.

라는 단점을 의미한다.

이러한 과정에서 LLM의 한계를 보완하기 위해 3가지 방식이 활용된다.

1. 외부 지식 활용

  • 대규모의 구조화된 지식 베이스(벡터 데이터베이스, 의미론적 검색)을 모델에 연결
  • 주어진 질의에 대한 관련 정보를 지식 베이스에서 검색 및 추출

2. 증거 기반 생성

  • 검색된 지식 정보를 증거로, 보다 사실에 기반한 답변 생성
  • 생성된 답변의 출처 명시

3. 맥락 이해성 향상

  • 외부 지식을 통해 질의에 대한 배경 지식, 맥락 정보 파악
  • 단순 패턴 매칭을 넘어 추론 능력을 바탕으로 한 답변 생성

RAG 작동 원리

RAG는 이름와 같이 작동원리를 3단계로 나누어볼 수 있다.

1. Retrieval : 검색

  • 사용자의 질문을 분석해 관련 키워드를 추출하고, 이를 바탕으로 외부DB나 지식 기반에서 관련 정보를 검색.
  • 벡터 유사도 등의 기술을 통해 가장 연관성 높은 문서, 정보를 선별.

2. Augmentation : 증강

  • 검색된 정보를 LLM의 입력에 추가, 검색 결과를 요약하거나 재구성해 LLM이 효과적으로 활용하게끔 가공
  • 검색 결과의 신뢰도, 관련성에 따라 가중치 부여

3. Generation : 생성

  • 증강된 입력을 바탕으로 LLM이 최종 응답 생성
  • 검색된 정보 + 자체 학습된 지식 → 보다 정확하고 맥락에 맞는 응답 생성

RAG 구성 요소

1. Query Encoder : 질의 인코더

  • 사용자의 질문을 이해하기 위한 언어 모델
  • 주어진 질문을 벡터 형태로 인코딩

2. Knowledge Retriever : 지식 검색기

  • 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보 검색
  • 질문과 연관된 문단, 구절 찾아냄

3. Knowledge-Augmented Generator : 지식 증강 생성기

  • 검색된 지식을 활용해 답변을 생성하는 언어 모델
  • 검색된 지식을 추가 입력으로 받는 LLM으로 보다 정확하고 풍부한 답변 생성

RAG 장단점

장점

1. 정보의 최신성

  • ChatGPT를 사용해 본 대부분의 유저들은 알고 있겠지만,
    ChatGPT, Gemini와 같은 LLM은 사실상 클로즈드북 테스팅을 한다고 생각해야한다. 한마디로 하루하루 방대한 양의 정보가 쌓이는 현재, 최신 정보를 놓치는 단점이 있다는 것.
  • RAG는 이를 외부 DB나 지식 기반을 통해 해결한다.

2. 정확성 향상

  • LLM의 단점 중 하나인 환각현상을 현저히 줄일 수 있다.

3. 도메인 적응성

  • 특정 분야에 대한 전문적 지식을 쉽게 통합할 수 있어
    법률, 세무와 같은 다양한 도메인에 적용이 용이하다.

4. 효율적 비용

  • 챗봇 개발에 있어 일반적으로 사용되는 파운데이션 모델(FM)에 있어, 특정 조직, 도메인을 위해 재교육하는 비용보다 RAG를 활용하는 것이 비용적으로 이점이다.

5. 개발자 제어 강화

  • 민감한 정보 검색에 대한 제한, 입출력 형식의 제한을 통해
    개발자는 LLM이 적절한 응답을 생성하도록 제어할 수 있다.

단점

1. 계산 복잡성 증가

  • 검색 과정이 추가되어, 더 많은 계산 리소스가 필요하다.
  • 응답 생성 시간이 오래걸리고, 시스템 운영 비용이 증가한다.

2.데이터 품질 의존성

  • 외부 데이터베이스의 품질에 크게 의존한다.
  • 부정확, 편향된 정보를 외부 데이터베이스로 사용할 경우, 신뢰할 수 없는 응답을 제공할 가능성이 높다.

3. 프라이버시, 보안 문제 야기

  • 외부 데이터베이스 내 기업 정보, 개인 정보 등이 RAG를 통해 유출될 수 있다.

상용 사례

RAGLLM의 등장 이후, 더 다양한 서비스와 정확도 높은 서비스 구축을 위해 연구되었다.
그리고 현재는 이러한 RAG를 도입한 서비스들이 점점 증가하고 있다.

대표적으로,

  • Microsoft Bing : Bing 검색 엔진은 2023년 2월, RAG 기술을 적용한 챗봇 AI 기능을 추가했다.
  • Perplexity AI : RAG 기반의 질의응답 서비스를 제공한다.
    웹 검색을 통해 정보를 수집하고 이를 바탕으로 응답을 생성한다.
  • Genspark : Perplexity와 마찬가지로 웹 검색에 기반한 응답을 생성한다.

외에도, ChatGPTOpenAIsearchGPT라는 RAG기반 서비스를 준비중이라고 한다.


전망

LLM을 사용하는 다양한 방법과 서비스들이 점점 많아지고, 서비스의 퀄리티도 좋아지고 있는 만큼, 이러한 흐름을 지속적으로 파악하는 것이 중요하다.

이제는 단순한 구글 검색보다 Perplexity와 같은 AI 기반 검색 시스템이 더욱 유용하고, 많이 사용될 텐데
이를 어떻게 활용할 지와 함께,
작동에 대한 기본 원리를 이해하는 것이 개발자로서 필수적이라 생각한다.

여전히 윤리적 문제와 정보 유출에 대한 염려는 지울 수 없지만,
그만큼 더 책임감을 가지고 기술을 개발하고 활용해야 된다고 생각한다.

[참고자료]

profile
사람을 좋아하는 Front-End 개발자
post-custom-banner

0개의 댓글