YZ-Cai/SimGRAG
요약
ACL 2025에 채택된 SimGRAG는 지식 그래프(KG) 기반의 RAG 접근 방식으로, 유사 서브그래프를 활용해 질의응답 및 사실 검증 성능을 높입니다. LLM, 임베딩 모델, 벡터 DB를 플러그 앤 플레이 방식으로 결합하여 높은 유연성을 제공합니다.
핵심 포인트
- ACL 2025 논문 기반의 KG-RAG 프레임워크
- 유사 서브그래프를 활용한 지식 그래프 기반 검색 최적화
- LLM, 임베딩, 벡터 DB의 플러그 앤 플레이 구성 지원
- Llama 3, Nomic, Milvus 등 오픈소스 솔루션 활용
이곳은 ACL 2025 논문인 *"SimGRAG: Leveraging Similar Subgraphs for Knowledge Graphs Driven Retrieval-Augmented Generation"*를 위한 저장소입니다.
SimGRAG는 질의응답 (Question Answering) 및 사실 검증 (Fact Verification)과 같은 다양한 지식 그래프 (KG) 기반 작업을 지원할 수 있는 KG 기반 RAG (Retrieval-Augmented Generation) 접근 방식입니다.
SimGRAG는 다음 세 가지 구성 요소를 통해 플러그 앤 플레이 (Plug-and-play) 사용성을 지원합니다:
- 거대 언어 모델 (Large Language Model): 생성을 위한 모델.
- 임베딩 모델 (Embedding Model): 노드 (Node) 및 관계 (Relation) 임베딩을 위한 모델.
- 벡터 데이터베이스 (Vector Database): 지식 그래프 내 노드와 관계의 임베딩을 저장하여 효율적인 유사도 검색 (Similarity Search)을 지원.
이 저장소는 다음 구성 요소들의 오픈 소스 솔루션을 기반으로 구축되었습니다:
- Llama 3 70B 거대 언어 모델을 실행하기 위한 Ollama
- 노드 및 관계 임베딩을 위한 Nomic 임베딩 모델
- 벡터 데이터베이스를 위한 Milvus
사용자의 선호에 따라 구성 요소를 교체할 수 있으며, API만 준비하면 됩니다. 다음은 저희가 사용한 구성 요소들에 대한 준비 단계입니다.
Ollama 웹사이트를 방문하여 로컬 환경에 Ollama를 설치해 주세요. 설치 후, 다음 명령어를 사용하여 Llama 3 70B 모델을 실행할 수 있습니다:
ollama run llama3:70b
그 다음, 다음 명령어를 사용하여 SimGRAG에 필요한 서비스를 시작할 수 있습니다:
bash ollama_server.sh
다음 명령어를 통해 여기서 모델을 클론 (Clone)할 수 있습니다:
mkdir -p data/raw
cd data/raw
git clone https://huggingface.co/nomic-ai/nomic-embed-text-v1
Milvus 웹사이트를 방문하여 로컬 환경에 Milvus를 설치해 주세요. 설치 후, 해당 문서를 따라 SimGRAG에 필요한 서비스를 시작할 수 있습니다.
저장소에 있는 URL을 따라 MetaQA 데이터셋을 다운로드하여 data/raw 폴더에 넣어주세요.
저장소에 있는 URL을 따라 FactKG 데이터셋을 다운로드하여 data/raw 폴더에 넣어주세요.
준비가 완료되면 디렉토리는 다음과 같이 구성되어야 합니다:
SimGraphRAG
├── data
│ └── raw
...
설정 파일은 configs에서 찾을 수 있습니다.
폴더입니다. 필요에 따라 설정 파일(configuration files)을 수정할 수 있습니다.
MetaQA의 경우, 다음 명령어를 실행할 수 있습니다:
cd pipeline
python metaQA_index.py
python metaQA_query1hop.py
...
FactKG의 경우, 다음 명령어를 실행할 수 있습니다:
cd pipeline
python factKG_index.py
python factKG_query.py
결과는 설정 파일의 "output_filename"에 할당된 파일에서 확인할 수 있습니다. 예를 들어, "results/FactKG_query.txt"와 같습니다. 결과 파일의 각 줄은 딕셔너리(dictionary) 형태이며, 그중 "correct" 키는 최종 답변의 정답 여부를 나타냅니다.
이 프로젝트를 연구에 사용하신다면, 다음 논문을 인용해 주세요:
@inproceedings{simgrag2025,
title = "{SimGRAG}: Leveraging Similar Subgraphs for Knowledge Graphs Driven Retrieval-Augmented Generation",
author = "Cai, Yuzheng and
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기