일반 소개
HippoRAG는 인간의 장기기억 메커니즘에서 영감을 받아 오하이오 주립대학의 OSU-NLP 그룹에서 개발한 오픈 소스 프레임워크입니다. 검색 증강 생성(RAG), 지식 그래프, 개인화된 페이지랭크 기술을 결합하여 대규모 언어 모델(LLM)이 외부 문서로부터 지식을 일관되게 통합할 수 있도록 도와주며, HippoRAG 2는 NeurIPS 2024에서 시연된 HippoRAG의 최신 버전입니다. 이 모델은 저렴한 비용과 짧은 대기 시간을 유지하면서 멀티홉 검색과 복잡한 컨텍스트 이해를 수행하는 모델의 능력을 향상시킵니다. 오프라인 인덱싱을 위한 리소스 풋프린트가 GraphRAG와 같은 솔루션보다 더 적습니다. 사용자는 GitHub를 통해 코드를 다운로드하여 무료로 배포할 수 있습니다.

HippoRAG2 구현 방법론
기능 목록
- 문서 색인화: 외부 문서를 지속적인 업데이트를 지원하는 검색 가능한 지식 구조로 변환합니다.
- 멀티홉 검색지식 연결을 통해 다단계 추론이 필요한 질문에 답하세요.
- Q&A 생성검색 결과를 기반으로 정확한 답변을 생성합니다.
- 모델 지원OpenAI 모델 및 네이티브와 호환 가능 vLLM 배포된 LLM.
- 효율적인 처리빠른 온라인 검색과 낮은 오프라인 인덱싱 리소스 요구 사항.
- 실험적 검증연구 복제를 지원하기 위한 데이터 세트와 스크립트를 제공합니다.
도움말 사용
설치 프로세스
HippoRAG의 설치는 간단하며 파이썬에 대한 기본 지식이 있는 사용자에게 적합합니다. 자세한 단계는 다음과 같습니다:
- 가상 환경 만들기
터미널에 다음 명령을 입력하여 Python 3.10 환경을 만듭니다:
conda create -n hipporag python=3.10
그런 다음 환경을 활성화합니다:
conda activate hipporag
- HippoRAG 설치
활성화된 환경에서 실행됩니다:
pip install hipporag
- 환경 변수 구성
하드웨어 및 요구 사항에 따라 다음 변수를 설정하세요. 예를 들어 여러 개의 GPU를 사용합니다:
export CUDA_VISIBLE_DEVICES=0,1,2,3
export HF_HOME=<你的 Huggingface 目录路径>
export OPENAI_API_KEY=<你的 OpenAI API 密钥> # 使用 OpenAI 模型时需要
환경을 다시 활성화하여 적용되도록 합니다:
conda activate hipporag
OpenAI 모델 사용
HippoRAG? 를 빠르게 시작하려면 OpenAI 모델을 사용할 수 있습니다. 단계는 다음과 같습니다:
- 문서 준비
예를 들어 문서 목록을 만듭니다:
docs = [
"张三是一名医生。",
"李四住在北京。",
"北京是中国的首都。"
]
- HippoRAG 초기화하기
Python에서 매개변수 설정하기:from hipporag import HippoRAG save_dir = 'outputs' llm_model_name = 'gpt-4o-mini' embedding_model_name = 'nvidia/NV-Embed-v2' hipporag = HippoRAG(save_dir=save_dir, llm_model_name=llm_model_name, embedding_model_name=embedding_model_name)
- 인덱스 파일
인덱싱할 문서를 입력합니다:hipporag.index(docs=docs)
- 질문 및 답변
질문을 입력하면 답변을 확인할 수 있습니다:queries = ["张三做什么工作?", "李四住在哪里?"] rag_results = hipporag.rag_qa(queries=queries) print(rag_results)
출력은 다음과 같습니다:
- 장산은 의사입니다.
- 리시는 베이징에 거주하고 있습니다.
네이티브 vLLM 모델 사용
로컬로 배포하고 싶으신가요? 다음 단계는 다음과 같습니다:
- vLLM 서비스 시작
예를 들어 라마 모델과 같이 터미널에서 로컬 서비스를 시작합니다:export CUDA_VISIBLE_DEVICES=0,1 export VLLM_WORKER_MULTIPROC_METHOD=spawn export HF_HOME=<你的 Huggingface 目录路径> conda activate hipporag vllm serve meta-llama/Llama-3.3-70B-Instruct --tensor-parallel-size 2 --max_model_len 4096 --gpu-memory-utilization 0.95
- HippoRAG 초기화하기
파이썬에서 로컬 서비스 주소를 지정합니다:hipporag = HippoRAG(save_dir='outputs', llm_model_name='meta-llama/Llama-3.3-70B-Instruct', embedding_model_name='nvidia/NV-Embed-v2', llm_base_url='http://localhost:8000/v1')
- 색인 및 Q&A
작업은 OpenAI 모델과 동일하며 문서와 질문을 입력하기만 하면 됩니다.
주요 기능 작동
멀티홉 검색
히포래그의 하이라이트는 멀티홉 검색 기능입니다. 예를 들어 "리시는 어느 나라의 수도에 살아요?"라고 질문하면 다음과 같이 대답합니다. 시스템은 먼저 "리시는 베이징에 산다"를 찾은 다음 "베이징은 중국의 수도다"와 연관시켜 "중국"이라고 대답합니다. 이 기능을 사용하려면 질문만 입력하면 됩니다:
queries = ["李四住在哪个国家的首都?"]
rag_results = hipporag.rag_qa(queries=queries)
print(rag_results)
실험적 복제
논문 결과를 검증하고 싶으신가요? HippoRAG는 복제 도구를 제공합니다.
- 데이터 집합 준비하기
GitHub 또는 HuggingFace에서 데이터 집합을 다운로드합니다(예sample.json
)에 넣고reproduce/dataset
카탈로그. - 실험 실행
터미널에 입력합니다:python main.py --dataset sample --llm_base_url https://api.openai.com/v1 --llm_name gpt-4o-mini --embedding_name nvidia/NV-Embed-v2
- 결과 보기
출력을 확인하여 멀티홉 검색 및 Q&A 효과를 확인합니다.
오프라인 배치 처리
vLLM은 오프라인 모드를 지원하며 인덱싱 속도를 3배 이상 높일 수 있습니다. 작동 방식은 다음과 같습니다:
- 오프라인 배치 실행
export CUDA_VISIBLE_DEVICES=0,1,2,3 export HF_HOME=<你的 Huggingface 目录路径> export OPENAI_API_KEY='' python main.py --dataset sample --llm_name meta-llama/Llama-3.3-70B-Instruct --openie_mode offline --skip_graph
- 후속 작업
완료되면 온라인 모드로 돌아가서 vLLM 서비스 및 Q&A 프로세스를 실행합니다.
주의
- 메모리 부족GPU 메모리가 충분하지 않으면
max_model_len
어쩌면gpu-memory-utilization
. - 테스트 중 구성 요소 조정사용
reproduce/dataset/sample.json
테스트 환경. - 문서 정리실험을 다시 실행하기 전에 이전 데이터를 지웁니다:
rm -rf outputs/sample/*
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...