안녕하세요🐶
빈지식 채우기의 비니🙋🏻♂️ 입니다.
요즘 AI 에 대해 많은 관심이 생겨 이리저리 공부 중에 있습니다.
그 중 LLM에 대해 공부를하다 RAG 라는 것을 알게되었습니다.
오늘은 LLM에서 사용되고 있는 RAG 에 대해 알아보도록 하겠습니다.
1. RAG 가 등장배경
RAG 는 현재 널리 사용되고 있는 LLM 의 한계로부터 나오게된 개념이다.
대표적으로 아래와 같이 4가지가 있다.
LLM 이란 GPT 모델 별로 학습되어 있는 데이터가 다르다.
OpenAI 의 GPT-4-turbo 를 보면 23 년 12월까지의 데이터가 학습된 것을 볼 수 있다.
그렇다면 23년 12월과 현재 사이의 데이터에 대한 학습은 어떻게 되는 것일까?
공백의 사이 데이터가 학습되지 않은 LLM은 거짓된 답변이 사실인 것 처럼 사용자에게 내놓을 것이다.
이러한 개념이 환각현상 이라고 할 수 있다.
이를 해결하기 위해서는 방대한 데이터에 대해 지속적인 학습을 하여 서비스하면 좋겠으나
높은 학습 비용과 기간이 필요하므로 힘들 것이다.
또한 가장 중요한 한계로는 보안문제가 있다.
개인정보 및 내부자료와 같은 보안자료는 LLM에 학습을 시킬 수 없다.
그렇기 때문에 이러한 LLM 의 한계로부터 나온 개념이 RAG 이다.
2. RAG 란
RAG는 Retrieval Augmented Generation 의 약자로, 번역하면 검색 증강 생성이다.
외부 데이터 ( 학습 데이터 외 청크데이터 ) 에서 검색하여, 사용자의 질문을 보강 ( 증강 ) 하고 더 좋은 답변으로 생성한다.
이를 통해 환각 현상을 줄일 수 있다.
- 사용자는 프롬프트와 쿼리를 통해 질문을 합니다.
- 사용자가 생성한 쿼리를 보강하는 단계로 이동합니다.
- 쿼리는 외부 데이터 ( 청크 데이터 ) 를 통해 사용자의 질문을 보강하는 Retriever 과정을 거칩니다.
- Retriever 를 통해 보강된 질문을 LLM 에 전달합니다.
- 보강된 질문을 통해 더 좋은 답변을 생성한 LLM은 사용자에게 전달합니다.
3. RAG 구성요소
RAG 시스템의 중요한 구성요소는 뭘까? >> Vector DB
Vector DB 에 데이터를 넣는 방법은 뭔데? >> Embedding Model
RAG 시스템의 품질을 향상시키는 방법은 뭘까? >> Retriever
다음 시간에는 Vector DB 에 대해 알아보도록 하겠습니다.
감사합니다.
참고
'기타 👨🏻💻 > AI' 카테고리의 다른 글
[AI] RAG 의 구성요소 2 ( Embedding ) (2) | 2024.09.04 |
---|---|
[AI] 간단한 RAG 구현 ( Anaconda, Streamlit, OpenAI, Flask, Chroma, Hugging Face ) (5) | 2024.09.03 |
[AI] RAG 의 구성요소 1 ( Vector DB ) (0) | 2024.08.21 |
[OCR] Google Vision Ai 적용 ( 이미지 분석 - Python ) (0) | 2024.03.20 |