GraphRAG에서는 전역 검색(Global Search)과 지역 검색(Local Search)이 별도로 제공됩니다. 각 검색 방식은 다음과 같은 특징이 있어요:
이 두 가지 방식은 별도로 실행되며, 질문의 성격에 따라 적절한 검색 모드를 선택해서 사용해야 해요. 두 방식을 통합해서 하나의 답변을 내놓는 방식에 대해서는 명시적인 설명은 없지만, 사용자가 상황에 맞게 선택해야 할 것 같아요.
사용자가 검색 방식을 선택합니다.
GraphRAG에서 텍스트 임베딩과 인덱스는 중요한 역할을 해요. 간단히 설명드릴게요:
텍스트 임베딩:
인덱스:
결론적으로, 임베딩은 텍스트의 의미를 벡터로 표현하는 것이 주 목적이고, 인덱스는 이를 포함한 전체 데이터를 구조화하는 데 목적이 있어요. GraphRAG에서는 텍스트 임베딩이 인덱싱 과정의 일부로 사용된다고 보면 됩니다.
네, 맞아요! GraphRAG는 .txt 파일뿐만 아니라 다양한 텍스트 기반 파일 형식을 처리할 수 있어요. 지원되는 파일 형식은 다음과 같습니다:
.txt (텍스트 파일).md (마크다운 파일).pdf (PDF 문서).docx (Microsoft Word 문서).html (HTML 파일).csv (CSV 파일).json (JSON 파일)GraphRAG는 다양한 파일 형식을 처리할 수 있도록 설정 파일에서 file_pattern 매개변수를 조정할 수 있어요. 사용자 정의 데이터 로더를 통해 다른 파일 형식도 추가로 지원할 수 있습니다.
GraphRAG는 위에 언급한 텍스트 기반 파일 형식을 모두 지원하며, 이 외에도 필요에 따라 추가적인 파일 형식을 지원하도록 설정할 수 있어요. 특히 텍스트 데이터는 주로 .txt, .md, .pdf 같은 형식으로 처리됩니다. 📂
"Blob"은 "Binary Large OBject"의 약자로, 대용량 바이너리 데이터를 저장하는 형식을 의미해요. GraphRAG에서는 주로 Azure Blob Storage와 관련이 있을 가능성이 큽니다.
Azure Blob Storage는 Microsoft Azure의 클라우드 저장소 솔루션으로, 다양한 비구조화 데이터를 저장할 수 있습니다. Blob 형식의 주요 특징은 다음과 같아요:
GraphRAG는 주로 텍스트 기반 데이터를 처리하도록 설계되었어요. 이미지, 비디오, 음성 등의 비텍스트 데이터를 직접적으로 처리하는 기능은 명시적으로 언급되어 있지 않지만, Azure Blob Storage를 통해 대량의 텍스트 데이터를 저장하고 접근할 수 있습니다.
비텍스트 데이터는 전처리를 통해 텍스트 형태로 변환한 후에야 활용이 가능합니다. 예를 들어, 이미지에 대한 설명을 텍스트로 변환하거나, 음성을 텍스트로 변환하여 처리하는 방식이 있죠. 📄🎥🎧
인덱스는 GraphRAG에서 매우 중요한 역할을 해요. 인덱싱 과정에서 다음과 같은 작업이 이루어집니다:
이 과정은 Auto Templating과 밀접하게 연관되어 있어요. 인덱싱을 통해 생성된 구조화된 정보와 요약은 템플릿 생성에 중요한 입력으로 사용될 수 있죠. 이렇게 인덱스를 실행하면 효율적인 검색, 컨텍스트 이해, 요약 활용 등이 가능해져 더 나은 결과를 얻을 수 있습니다.
네, 맞아요! GraphRAG의 작동 방식은 다음과 같아요:
Auto Templating은 질문의 의도와 구조에 따라 적절한 쿼리 템플릿을 선택하거나 생성하는 데 사용됩니다. 이 과정을 통해 사용자에게 자연스러운 답변을 제공합니다.
GraphRAG의 전체 프로세스는 다음과 같습니다:
사용자 입력:
엔티티 및 관계 추출:
그래프 쿼리 생성:
지식 그래프 검색:
SPARQL 쿼리를 사용하여 지식 그래프에서 정보를 검색합니다.
프롬프트 생성:
LLM을 통한 답변 생성:
사용자에게 답변 제공.
이 과정에서 주요 사용 라이브러리는 LLM(OpenAI GPT 모델), 그래프 처리(RDFLib, NetworkX), 데이터 처리(Pandas, NumPy) 등이 포함됩니다.
소스-타겟 엔티티를 구별하는 작업은 반드시 필요한 단계입니다. 그 이유는:
보통 모든 엔티티를 추출한 후 소스와 타겟을 구별하는 것이 일반적이지만, GraphRAG에서는 추출 과정에서 소스와 타겟을 동시에 식별하는 것이 중요합니다.
이 작업은 주로 입력 데이터를 처리하여 Parquet 파일을 만들 때 수행됩니다. 사용자의 질문 시에도 유사한 프로세스가 적용되지만, 주요 엔티티 추출 및 관계 설정은 데이터 준비 단계에서 이루어집니다. 전체 과정을 설명하자면:
데이터 수집:
데이터 전처리:
엔티티 추출:
관계 추출:
소스-타겟 엔티티 구별:
그래프 구조 생성:
Parquet 파일 생성:
이 과정에서 사용되는 주요 라이브러리는 LLM(OpenAI GPT 모델), NLP 도구(spaCy, NLTK), 데이터 처리(Pandas, NumPy), 그래프 처리(NetworkX, RDFLib) 등이 포함됩니다. 생성된 Parquet 파일은 이후 GraphRAG 시스템에서 빠른 검색과 질의 응답에 사용됩니다.
Claim Extraction에서 중요한 개념들인데요:
엔티티 "사양":
클레임 "설명":
이들은 지식 그래프 구축 과정에서 엔티티 간의 관계를 더 명확하게 정의하고, 복잡한 정보를 구조화하는 데 사용됩니다.
이 .txt 파일들은 GraphRAG 시스템의 다양한 구성 요소와 프로세스를 설정하고 관리하는 데 사용됩니다:
이러한 파일들은 시스템의 유연성을 높이고, 필요에 따라 쉽게 수정할 수 있도록 도와줍니다. 🛠️
"의사결정자"는 프로젝트나 조직 내에서 중요한 결정을 내리는 권한을 가진 개인이나 그룹을 의미해요.
GraphRAG 맥락에서의 의사결정자는 시스템 구현에 관한 주요 결정을 내리는 사람들을 의미합니다. 데이터 사용, 모델 선택, 시스템 아키텍처 등에 관한 결정권자일 수 있으며, 이 파일은 그들에게 프로젝트의 진행 상황, 주요 결과, 향후 계획 등을 보고하는 데 사용될 수 있습니다.
이렇게 정리된 내용을 바탕으로 MS사의 GraphRAG에 대해 더욱 명확하게 이해하실 수 있을 거예요! 궁금한 점이 있다면 언제든지 댓글로 남겨주세요! 😊