각 인덱스가 어떻게 작동하는지
각 인덱스가 어떻게 작동하는지
이 가이드는 다이어그램과 함께 각 인덱스가 어떻게 작동하는지 설명해요.
몇 가지 용어:
- Node:
Document에서 나온 텍스트 청크에 대응해요. LlamaIndex는Document객체를 받아 내부적으로Node객체로 파싱/청킹해요. - Response Synthesis: 검색된
Node를 바탕으로 응답을 합성하는 모듈이에요. 다양한 응답 모드 지정 방법을 볼 수 있어요.
서머리 인덱스 (이전 List Index)
서머리 인덱스는 Node들을 순차적인 체인으로 저장해요.

쿼리
쿼리 시점에 다른 쿼리 파라미터를 지정하지 않으면 LlamaIndex는 리스트의 모든 Node를 Response Synthesis 모듈로 로딩해요.

서머리 인덱스는 top-k 이웃을 가져오는 임베딩 기반 쿼리나, 아래처럼 키워드 필터를 추가하는 방식 등 서머리 인덱스 쿼리 방법을 많이 제공해요:

벡터 스토어 인덱스
벡터 스토어 인덱스는 각 Node와 그에 대응하는 임베딩을 Vector Store에 저장해요.

쿼리
벡터 스토어 인덱스를 쿼리하는 것은 top-k 가장 유사한 Node를 가져와 Response Synthesis 모듈에 전달하는 것을 포함해요.

트리 인덱스
트리 인덱스는 Node 집합(이 노드들이 트리의 리프 노드가 됨)으로부터 계층적 트리를 구축해요.

쿼리
트리 인덱스를 쿼리하는 것은 루트 노드에서 리프 노드까지 탐색하는 것을 포함해요. 기본적으로(child_branch_factor=1) 쿼리는 부모 노드가 주어졌을 때 자식 노드 하나를 선택해요. child_branch_factor=2이면 쿼리가 레벨마다 두 개의 자식 노드를 선택해요.

키워드 테이블 인덱스
키워드 테이블 인덱스는 각 Node에서 키워드를 추출하고, 각 키워드를 해당 키워드에 대응하는 Node들로 매핑하는 매핑을 구축해요.

쿼리
쿼리 시점에 쿼리에서 관련 키워드를 추출하고, 미리 추출된 Node 키워드와 매칭해 대응하는 Node를 가져와요. 추출된 Node는 Response Synthesis 모듈로 전달돼요.

Property Graph 인덱스
Property Graph 인덱스는 먼저 레이블이 지정된 노드와 관계를 포함한 지식 그래프를 구축함으로써 동작해요. 이 그래프의 구축은 LLM이 원하는 것을 추출하도록 하는 것부터 엄격한 스키마로 추출하는 것, 심지어 자체 추출 모듈을 구현하는 것까지 극도로 커스터마이즈 가능해요.
선택적으로 노드를 임베딩해 나중에 검색할 수도 있어요.
생성을 건너뛰고 Neo4j 같은 통합을 사용해 기존 지식 그래프에 연결할 수도 있어요.
쿼리
Property Graph 인덱스의 쿼리도 매우 유연해요. 검색은 여러 서브 검색기를 사용하고 결과를 결합하여 동작해요. 기본적으로 키워드 + 동의어 확장과 벡터 검색(그래프가 임베딩된 경우)이 관련 트리플을 검색하는 데 사용돼요.
검색된 트리플에 소스 텍스트를 포함할지도 선택할 수 있어요(LlamaIndex 밖에서 만들어진 그래프에서는 불가능해요).
Property Graph 전체 가이드에서 더 자세히 알아보세요.
출처: 문서