Introduction
Last updated
Last updated
LlamaIndex는 LLM 애플리케이션이 비공개 또는 도메인별 데이터를 삽입, 구조화 및 액세스하기 위한 데이터 프레임워크입니다.
LlamaIndex는
CEO를 맡고 있는 Jerry Liu( )가 공동 설립했습니다.
기본적으로 LLM
(예: GPT
)은 사람과 추론된 데이터 간에 자연어 기반의 대화형 인터페이스를 제공합니다. 널리 사용되는 대규모 모델은 대개 Wikipedia, 메일링 리스트, 책, 소스 코드 등 공개적으로 사용 가능한 대량의 데이터에 대해 사전 학습된 경우가 많습니다.
LLM 모델을 기반으로 구축된 애플리케이션은 해당 모델을 보강하기 위해 개인 또는 도메인별 데이터를 사용해야 하는 경우가 많습니다. 안타깝게도 이러한 데이터는 여러 애플리케이션과 데이터 저장소에 분산되어 있을 수 있습니다. 이러한 데이터는 API, SQL 데이터베이스 또는 PDF 파일과 슬라이드에 존재할 수 있습니다.
LlamaIndex
는 5가지 핵심 도구를 제공합니다:
Data connectors
Data indexes
Engines
Data agents
Application integrations
RAG는 개인 또는 비공개 도메인 데이터로 LLM 증강하하여 참조 지식을 활용하여 생성하는 패러다임입니다. 일반적으로 두 단계로 구성됩니다:
Indexing: 지식 창고 구축하기
Query: 지식 창고에서 관련 문맥 정보를 검색하여 LLM이
질문에 답변하는 데 도움을 줍니다.
LlamaIndex는
개발자가 두 단계를 매우 쉽게 수행할 수 있도록 도와주는 툴킷을 제공합니다.
LlamaIndex는 Data Connector
와 Indexes
를 제공하여 개발자가 지식창고를 구축할 수 있도록 도와줍니다.
이 단계에서는 다음 도구 또는 구성 요소가 사용됩니다:
Data connectors
데이터 커넥터. 여러 데이터 소스에서 다양한 형식의 데이터를 주입하고 텍스트와 메타데이터를 포함하는 LlamaIndex에서
지원하는 문서 표현으로 변환하는 역할을 담당합니다.
Documents / Nodes
Documents는 PDF 문서, API 응답 또는 데이터베이스의 데이터 등 모든 데이터 소스를 포함할 수 있는 LlamaIndex의 컨테이너 개념입니다.
Nodes는 LlamaIndex에서 가장 작은 데이터 단위로, 문서의 한 덩어리를 나타냅니다. 또한 메타데이터와 다른 노드와의 관계에 대한 정보를 포함합니다. 이를 통해 보다 정밀한 검색 작업이 가능합니다.
Data Indexes
LlamaIndex눈 개발자가 삽입된 데이터를 색인화할 수 있는 편리한 도구를 제공하여 향후 검색을 간단하고 효율적으로 할 수 있도록 도와줍니다.
가장 일반적으로 사용되는 인덱스는 VectorStoreIndex
입니다`.
쿼리 단계에서 RAG
파이프라인은 사용자 쿼리를 기반으로 가장 관련성이 높은 컨텍스트를 검색하고 이를 쿼리와 함께 LLM에 전달하여 응답을 합성합니다. 이를 통해 LLM은 원래 학습 데이터에 없는 최신 지식을 얻을 수 있고 가상의 콘텐츠도 줄일 수 있습니다. 이 단계의 핵심 과제는 검색, 오케스트레이션 및 지식 기반 추론입니다.
LlamaIndex는 개발자가 Q&A, Chatbot 또는 Agents의 일부로 RAG
파이프라인을 구축 및 통합할 수 있도록 구성 가능한 빌딩 블록을 제공합니다. 이러한 빌딩 블록은 순위 기본 설정에 따라 사용자 지정할 수 있으며 여러 지식 기반을 기반으로 구조화된 방식으로 추론하도록 결합할 수 있습니다.
이 단계의 구성 요소는 다음과 같습니다:
Retrivers: 쿼리를 기반으로 지식창고에서 관련 문맥 정보를 효율적으로 검색하는 방법을 정의합니다.
Node Postprocessors: 문서 노드(노드) 집합의 변환, 필터링 또는 순위를 매기는 작업을 수행합니다.
Response Synthesizers: LLM을 사용하여 사용자의 쿼리와 검색된 텍스트 블록 집합(컨텍스트를 형성하기 위해)을 기반으로 응답을 생성합니다.
RAG 파이프라인이 포함되어 있습니다:
Query Engines 사용자가 자연어로 질문하고 관련 컨텍스트와 함께 지식창고를 기반으로 답변을 얻을 수 있는 엔드투엔드 파이프라인입니다.
Chat Engines 사용자가 지식창고를 기반으로 대화(여러 상호작용, 세션 기록)에 참여할 수 있도록 하는 엔드투엔드 파이프라인입니다.
Agents LLM에 의해 구동되는 자동화된 의사 결정자입니다. 에이전트는 쿼리 엔진이나 채팅 엔진처럼 사용할 수 있습니다. 가장 큰 차이점은 에이전트가 미리 정해진 로직을 따르는 대신 최상의 작업 순서를 동적으로 결정한다는 것입니다. 따라서 더 복잡한 작업을 처리할 수 있는 추가적인 유연성을 제공합니다.
Load Dataset(Knowledge)
Indexing VectorStore
Query Engine
Paul Graham 에세이