모범 사례 및 튜토리얼

카우치베이스, 라마인덱스, 아마존 베드락으로 Excel로 RAG 기능 확장하기

우리 주변의 모든 것이 점차 데이터 중심으로 변화하고 있는 가운데, Excel은 여전히 비즈니스에 필수적인 도구이며 시트의 데이터에서 귀중한 인사이트를 얻을 수 있는 기능을 제공합니다. 그러나 데이터 과학자와 분석가들은 이러한 방대한 데이터 세트에서 의미 있는 정보를 추출하는 데는 시간이 많이 걸리고 전문 기술이 필요하다는 데 동의합니다. 하지만 생성형 AI와 대규모 언어 모델이 인사이트 생성 프로세스를 간소화하는 데 도움이 될 수 있습니다. 이 프로세스에 도움이 되는 주요 구성 요소는 다음과 같습니다. 검색 증강 생성(RAG)

RAG는 모델이 정보 검색을 통해 외부 사실에 액세스할 수 있도록 함으로써 대규모 언어 모델의 정확도를 높이는 강력한 기술입니다. 일반적으로 대규모 언어 모델(LLM)은 사용자의 입력을 받아 LLM이 학습한 정보(때로는 오래되었거나 부정확할 수 있음)를 기반으로 응답을 제공합니다. RAG는 이 정보를 회사의 지식 기반이나 관련 문서와 같은 보충 데이터와 결합하여 사실에 근거하고 상황에 맞는 정확한 응답을 제공할 수 있습니다.

이 블로그에서는 Excel 데이터를 수집하고 인사이트를 생성하기 위해 특별히 맞춤화된 RAG 시스템을 구축하는 방법을 안내합니다. LlamaIndex와 LlamaParse를 활용하여 스프레드시트를 검색 가능한 지식 베이스로 변환하고 이 데이터를 Couchbase Vector Search에 저장하여 사용자의 쿼리에 따라 관련 컨텍스트를 빠르게 검색한 다음, 다음을 활용할 것입니다. 아마존 베드락 를 사용하여 LLM 응답을 받습니다. 

LLamaIndex와 LLamaParse란?

LlamaIndex 은 개발자가 대규모 언어 모델(LLM)로 AI 애플리케이션을 구축할 수 있도록 설계된 오픈 소스 오케스트레이션 프레임워크입니다. 사용자 지정 데이터 소스와 LLM 간의 격차를 해소하는 데 도움이 됩니다. LLamaIndex는 사용자가 파일이나 벡터 데이터베이스와 같은 다양한 소스에서 데이터를 수집한 다음 이 데이터를 중간 표현으로 색인화할 수 있는 기능을 제공합니다. LLamaIndex는 이 데이터를 자연어로 쿼리하고 상호 작용할 수 있는 기능을 제공합니다. 

먼저 데이터가 벡터 인덱스로 색인됩니다. 이렇게 하면 해당 도메인과 관련된 검색 가능한 지식창고가 생성됩니다. 쿼리하는 동안 시스템은 사용자의 프롬프트에 따라 관련 정보를 검색한 다음 이 정보를 대규모 언어 모델에 제공하여 응답을 생성합니다.

LlamaParse는 복잡한 문서에서 구조화된 정보를 파싱하고 추출하는 과정을 간소화하는 강력한 문서 파싱 플랫폼으로 설계된 LlamaIndex 에코시스템의 전문 구성 요소입니다. 데이터를 구문 분석하고 정리하여 사용자가 RAG와 같은 LLM 사용 사례를 위한 고품질의 입력을 확보할 수 있도록 구축되었습니다. LlamaParse는 PDF, Excel, HTML 등과 같은 다양한 유형의 문서 구문 분석을 지원합니다. 

Excel 데이터로 검색 증강 생성 시스템 구축하기

이 블로그에서는 다음을 활용하여 RAG 시스템을 만들겠습니다. 고객 불만 데이터 세트 (Kaggle 제공). 이 데이터 세트는 다양한 금융 상품과 서비스에 걸친 소비자 불만에 대한 자세한 정보를 제공합니다. 카우치베이스 벡터 검색으로 구동되는 RAG 시스템은 데이터에서 중요한 정보를 쉽게 추출할 수 있게 해줍니다. 

데이터 세트의 시각적 표현은 아래에 나와 있습니다.

complaints dataset from kaggle loading into a database

필수 종속성 설치 및 라마파스 인스턴스화하기

종속성을 설치한 후, 이제 파싱 명령어를 사용하여 엑셀 파일을 파싱하는 LlamaParse를 인스턴스화합니다: 

라마파스 객체를 인스턴스화할 때, 우리는 파싱_지시 그리고 결과 유형구문 분석 옵션을 선택합니다.

In 결과 유형를 사용하여 출력 형식을 지정했습니다. 기본적으로 LlamaParse는 결과를 구문 분석된 텍스트로 반환합니다. 사용 가능한 다른 옵션은 다음과 같습니다. 마크다운 그리고 JSON 는 구문 분석된 객체를 나타내는 구조를 반환합니다. In 파싱_지시 를 사용하면 데이터에 대한 추가 컨텍스트를 LlamaParse에 제공할 수 있습니다. LlamaParse는 내부에서 LLM을 사용하여 정보를 구문 분석하는 대상과 방법에 대한 자연어 지침을 제공할 수 있습니다. 

다음으로, Excel 파일을 로드하고 LlamaParser를 사용하여 구문 분석합니다:

Couchbase 벡터 인덱스를 사용하여 구문 분석된 데이터 저장하기 

계속 진행하기 전에 Couchbase Capella에 계정이 있고 Couchbase 내에서 벡터 인덱스를 설정했는지 확인하세요. 벡터 인덱스는 다음 가이드 를 클릭해 클러스터와 벡터 인덱스를 설정합니다. 계정과 인덱스가 준비되면 계속 진행할 수 있습니다. 

구문 분석된 데이터는 문서 변수 내에 저장됩니다. 이제 이 변수가 Couchbase 내부에 채워집니다. 이를 위해 문서가 다음과 같이 변환됩니다. 벡터스토어 인덱스. 이 인덱스는 이후 벡터 스토어에서 지원하는 문서를 먼저 베드락 임베딩을 사용하여 변환하여 Couchbase 벡터 스토어에 저장됩니다: 

또한 Couchbase 인스턴스에 연결합니다: 

이제 VectorStoreIndex 메서드를 호출하여 Couchbase에 인덱스를 저장하겠습니다. VectorStoreIndex는 문서를 가져와서 노드로 분할합니다. 그런 다음 지정된 임베딩 모델(이 경우에는 Bedrock 임베딩)을 사용하여 모든 노드의 텍스트에 대한 벡터 임베딩을 생성하여 LLM에서 쿼리할 수 있도록 준비합니다.

LlamaIndex는 처리 중인 특정 콘텐츠 유형에 따라 노드를 생성하도록 설계된 다양한 파일 기반 노드 파서를 제공합니다(예: JSON, Markdown 및 기타 형식):

아마존 베드락의 응답 생성

사용자가 Excel 파일을 업로드하면 LlamaParse를 사용하여 파싱한 후 Couchbase 벡터 저장소에 저장합니다. 각 사용자 쿼리에 대해 시스템은 벡터 검색을 수행하여 저장된 Excel 데이터에서 관련 정보 청크를 검색합니다. 그런 다음 이러한 관련 청크는 언어 모델(Bedrock의 미스트랄 모델)의 컨텍스트로 사용되어 응답을 생성합니다.

결과

이제 사용자가 제공한 다양한 쿼리에 대한 응답을 검토하여 RAG 애플리케이션의 성능을 확인할 수 있습니다.

결론

이 블로그에서는 방대한 양의 Excel 데이터 분석을 간소화하기 위해 검색 증강 생성(RAG) 시스템을 구축하는 방법을 공유합니다. 이 작업은 데이터에서 정보를 추출하고, LlamaParse를 사용하여 VectorStoreIndex 형식으로 변환한 다음, 이 인덱스를 Couchbase 내에 저장하는 방식으로 처리됩니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 시베이 람바, 개발자 에반젤리스트

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.