Gemini 모델을 활용한 RAG 시스템 구축

소개

이 비디오에서는 구글의 최신 모델인 Gemini를 RAG(Retrieval-Augmented Generation) 시스템에 통합하는 방법을 알아봅니다.

Gemini 개요

Gemini는 Ultra, Pro, Nano 세 가지 버전으로 출시되었으며, 각각 다른 파라미터 크기를 가지고 있습니다. 현재 API로 활용 가능한 것은 Gemini Pro 모델입니다.

Gemini vs. GPT

Gemini는 구글 딥마인드에서 개발되었으며, OpenAI의 GPT 시리즈와 경쟁합니다. Gemini는 사전 훈련 시 멀티모달(텍스트, 이미지, 오디오, 비디오) 데이터를 사용한 반면, GPT는 텍스트 데이터로만 훈련되었습니다.

Gemini 활용

Gemini는 Bard 챗봇과 통합되어 있으며, 한국에서는 영어 설정을 통해 Gemini Pro를 사용할 수 있습니다. Gemini Pro는 텍스트만 처리할 수 있으며, Gemini Vision은 이미지-텍스트 변환 기능을 제공합니다.

Gemini 성능

Gemini Ultra는 GPT-4 수준의 성능을 목표로 하며, Gemini Pro는 GPT-3.5 수준, Gemini Nano는 온디바이스 AI에 최적화되어 있습니다.

GPT 터보 모델

GPT 터보 모델은 기존 모델보다 추론 속도가 빠르며, 이는 파라미터 크기가 줄어들었기 때문입니다.

컨텍스트 창

Gemini는 32k의 컨텍스트 창을 지원하며, GPT는 최근 128k까지 확장되었습니다.

Gemini Pro API 기대치

Gemini Pro API는 GPT-3.5 수준의 성능을 제공하며, 1분당 60회까지 무료로 사용할 수 있습니다.

RAG 시스템 구축 준비

RAG 시스템을 구축하기 위해 구글 코랩, 구글 드라이브 마운트, 필요한 라이브러리 임포트, API 키 설정(구글 AI 스튜디오), 라이브러리 설치(Langchain, Google Generative AI) 등의 설정이 필요합니다.

Gemini Pro 초기 테스트

Gemini Pro를 사용하여 네이버 관련 보고서를 생성해 본 결과, 일부 정보의 부정확성이 확인되었습니다.

RAG 라이브러리

RAG 시스템 구현에 필요한 라이브러리는 Langchain, tiktoken, PyPDFLoader, sentence transformers, ChromaDB입니다.

PDF 로딩 및 분할

PyPDFLoader를 사용하여 PDF 파일을 로딩하고, RecursiveCharacterTextSplitter를 사용하여 텍스트를 청크 단위로 분할합니다.

임베딩 모델

텍스트 청크 임베딩을 위해 KoBERTa 모델을 사용합니다.

ChromaDB 벡터 스토어

임베딩된 텍스트 청크를 ChromaDB 벡터 스토어에 저장합니다.

문서 검색

MMR 검색을 사용하여 관련 문서를 검색합니다.

프롬프트 템플릿 설정

RetrievalQA 대신 프롬프트 템플릿과 Langchain의 RunnableMap을 사용합니다.

템플릿 및 LLM 설정

프롬프트 템플릿은 컨텍스트와 질문을 매개변수로 사용하며, Gemini 모델은 답변 일관성을 위해 temperature=0으로 설정합니다.

RAG 체인 구축

RunnableMap, 프롬프트, Gemini 모델을 사용하여 RAG 체인을 구축합니다.

RAG 최종 테스트 및 출력

RAG 시스템 최종 테스트 결과, 혁신 성장 정책 금융에 대한 질문에 대한 정확하고 자세한 답변을 얻을 수 있었습니다.

결론

오늘은 Gemini Pro를 사용하여 RAG 시스템을 구축하는 연습을 해봤습니다. 다음 시간에는 Gemini Pro를 활용한 에이전트 시스템에 대해 알아보겠습니다.