반응형
이번 글에서는 RAG(Retrieval Augmented Generation)에 대해 소개하고, 이를 Open-WebUI에서 어떻게 활용할 수 있는지 알아보려고 합니다.
RAG(Retrieval-Augmented Generation)란?
RAG는 검색 기반 생성 기술로, 언어 모델이 응답을 생성할 때 내부 지식만 사용하는 것이 아니라 외부 데이터 소스에서 관련 정보를 검색하여 활용하는 방식입니다. 이를 통해 모델은 최신 정보나 특정 도메인에 대한 전문 지식을 실시간으로 반영할 수 있습니다.
RAG의 작동 원리
- 검색(Retrieval): 사용자의 질문이나 프롬프트와 관련된 정보를 외부 데이터베이스 또는 지식 저장소에서 검색합니다.
- 증강(Augmentation): 검색된 관련 정보를 원래의 프롬프트에 추가합니다.
- 생성(Generation): 증강된 프롬프트를 바탕으로 LLM이 응답을 생성합니다.
주요 특징
- 실시간 정보 반영: 모델이 학습 이후에 발생한 새로운 정보도 활용할 수 있습니다.
- 정확성 향상: 외부 데이터에서 정확한 정보를 검색하여 활용하므로 답변의 신뢰성이 높아집니다.
- 도메인 특화 가능: 특정 분야나 기업 내부 자료를 활용하여 전문적인 답변을 생성할 수 있습니다.
- 유연성: 새로운 정보를 쉽게 추가하고 업데이트할 수 있습니다.
- 투명성: 응답의 출처를 추적할 수 있어 신뢰성이 높아집니다.
Open-WebUI에서의 RAG 활용
설정
Open WebUI 에서 RAG 설정은 관리자 패널의 문서 메뉴에서 설정합니다.
- 환경변수에 의해 설정된 DOCS_DIR 또는 기본값에 따릅니다.
- RAG 임베딩 지원 : 원하는 모델로 임베딩 수행
- 임베딩 모델의 성능에 따라 RAG 문서의 품질이 달라질 수 있습니다.
- 제공된 문서의 텍스트를 벡터 형태로 변환하여 의미적으로 유사한 문서나 정보를 검색하게 되는데, 정확하고 관련상 높은 응답을 생성하기 위해 보다 좋은 성능의 임베딩 모델이 요구되는 것이죠.
- 여기서 사용되는 임베딩 모델은 LLM을 수행하는 모델과 별개로 제공된 RAG 문서를 임베딩 과정(토큰화처리 후 백터로 변환)에 사용되는 모델입니다.
- RAG 템플릿 사용자 지정 등
문서 업로드
1. 로컬 저장소에 문서 업로드
- 로컬 문서는 먼저 작업 영역의 문서 섹션에 업로드되어야 하며, 쿼리 전에 # 기호를 사용해 액세스할 수 있습니다.
2. 임시로 파일 업로드
- 온라인으로 접근 가능한 위치의 문서 업로드
블로그 내용을 요약해달라고 하면 요약정보를 생성해줍니다.
- 내 PC의 문서 파일을 업로드
대화창 왼쪽의 + 버튼을 눌러 파일을 업로드 하거나 파일을 브라우저로 드래그 한 뒤 직접 추가해서 사용할 수도 있습니다.
대화하기
다음 2가지 중 한 방식으로 문서를 불러 옵니다.
- 새 채팅에서 기존에 업로드 한 파일을 불러 오려면 # 을 누르고 문서를 선택할 수 있습니다.
- 새 채팅에서 온라인 상의 문서나 사이트 URL을 입력하여 정보를 불러올 수 있습니다.
사전학습된 모델 또는 API에 연결된 모델을 통해 제공된 문서나 정보를 이용해 요약이나 다른 요청들을 수행할 수 있게 됩니다.
반응형