RAG

[RAG] RAG (Retrieval-Augmented Generation)

dong_seok 2024. 3. 25. 00:53
1. LLM
2. RAG
3. Better RAG 

1. LLM

1) 정의

LLM 은 Large Language Models 의 약자로 방대한 양의 데이터를 기반으로 사전 학습된 초대형 딥 러닝 모델입니다. LLM은 완벽하지는 않지만 비교적 적은 수의 프롬프트 또는 입력을 기반으로 예측하는 놀라운 능력을 보여주고 있습니다. 하나의 모델은 질문에 답하고, 문서를 요약하고, 언어를 번역하고, 문장을 완성하는 등 완전히 다른 작업을 수행 할 수 있습니다. 또한 입력 프롬프트를 기반으로 콘텐츠를 생성하는 생성형 AI에 사용될 수 있습니다.

 

2) 문제점

  • LLM 훈련 데이터는 정적이며 보유한 지식에 대한 마감일을 도입
  • 답변이 없을 때 허위 정보를 제공
  • 신뢰할 수 없는 출처로부터 응답을 생성
  • 사용자가 구체적이고 최신의 응답을 기대할 때 오래되었거나 일반적인 정보를 제공

 

2. RAG

1) 정의

RAG는 "Retrieval-Augmented Generation"의 약자로, 앞서 언급한 Language Model의 한계를 일부 극복하기 위한 접근 방식 중 하나입니다. 이 방법은 LLM을 리디렉션하여 믿을 만한 사전에 기반한 지식 출처에서 관련 정보를 검색하도록 합니다. 이를 통해 LLM은 외부 정보 소스를 활용하여 더 정확한 문맥을 이해하고 적절한 응답을 생성할 수 있게 됩니다.

 

2) 이점

  • 최신 정보
  • 효율적인 비용
  • 더 정확한 응답
  • 유연성

제가 생각하기에 RAG의 가장 큰 이점은 정확한 응답을 제공한다는 것입니다. 기존 LLM의 경우 사용자의 질문에 대해 잘못된 정보를 제공할 수 있지만, RAG는 LLM이 특정 질문에 대해 잘못된 정보를 참조할 때 이를 식별하고 수정함으로써 신뢰할 수 있는 결과를 제공합니다. 또한 외부 데이터를 활용하기 때문에 새로운 데이터를 추가하거나 최신 정보에 기반한 업데이트를 쉽게 수행할 수 있습니다. 이를 통해 LLM을 추가적으로 학습시킬 필요 없이 외부 지식의 내용만 업데이트하면 됩니다. 뿐만 아니라 다양한 형태의 데이터와 연결될 수 있어서 다양한 분야에 적용이 가능합니다. RAG의 이런 특징들은 유저가 더 정확한 정보를 더 빠른 시간 안에 얻을 수 있도록 도와줍니다.

 

 

3) 작동 원리

RAG 워크 플로우

1. 문서가 LLM의 컨텍스트 창보다 더 커질 수 있기 때문에 chunk 단위로 나눠줍니다.

2. 각 chunk는 Embedding Model을 통해 벡터화 됩니다.

3. 임베딩은 벡터DB에 인덱싱됩니다.

5. 사용자의 질문이나 쿼리에 대해 Embedding Model을 통해 벡터화됩니다.

6. 임베딩은 벡터DB에 인덱싱됩니다.

7. 인덱싱된 Query Context를 기반으로 의미론적 검색을 수행하여 질문과 관련된 임베딩을 반환합니다.

8. 반환된 임베딩(Context)을 기반으로 사용자의 쿼리에 대해 답변을 생성하라는 프롬프트를 작성합니다.

9. 이를 LLM에게 전달하여 최종 답변을 생성하고 사용자에게 제공합니다.

 

 

4) 한계

  • 외부 지식에 의존적
  • 훈련 및 배포에 잠재적 어려움
  • 창의적인 콘텐츠 생성 제한

RAG는 검색된 외부지식을 기반으로 context를 생성하여 답변을 하기 때문에 검색된 정보가 정확하지 않으면 부정확한 결과가 나올 수 있습니다. 또한 검색 및 생성 구성 요소를 효율적으로 통합하기 위해서는 신중한 설계와 최적화가 필요합니다. 이로 인해 훈련 및 배포 단계에서 잠재적인 어려움이 발생할 수 있습니다. 그리고 외부 지식을 기반으로 하기 때문에 답변은 사실적인 정확성을 중요시합니다. 이로 인해 상상력이 풍부하거나 허구적인 콘텐츠를 생성하는 데에는 적합하지 않을 수 있습니다.

 

3. Better RAG

기존의 RAG를 더 고도화하기 위해 Hybrid Search를 구현할 수 있습니다. Hybrid Search 는 키워드 기반 검색과 앙상블 리트리버를 구현하여 결합한 검색 시스템을 말합니다. 이는 두 가지 방법을 동시에 사용하여 각각의 장점을 호라용하고 단점을 보완합니다.

 

1) 키워드 기반 검색

  • 사용자가 쿼리를 할 때마다 의미적 검색만 하는게 아니라  사용자의 질문에서 키워드를 추출하고, 이를 기반으로 전통적인 키워드 검색 엔진을 사용하여 관련 문서를 검색합니다.
  • 각 문서의 내용을 분석하여 중요한 정보를 추출하고, 이를 임베딩하여 처리합니다.

2) 앙상블 리트리버

  • 다양한 검색 알고리즘과 모델을 결합하여 구성합니다.
  • 의미적 검색과 키워드 기반 검색에 다른 가중치를 부여하여 어떤 측면에 더 집중할지를 지정할 수 있습니다.

이러한 Hybrid Search의 결과를 RAG 모델의 입력으로 제공하여, 사용자에게 보다 정확하고 유용한 답변을 생성할 수 있습니다.

 

 

 

 

 

참고자료

https://aws.amazon.com/ko/what-is/retrieval-augmented-generation/

https://www.elastic.co/kr/what-is/retrieval-augmented-generation

https://www.youtube.com/watch?v=GHk6jtgLw9A

 

'RAG' 카테고리의 다른 글

[RAG] gemini api error  (0) 2025.01.24