XRAG

LLM FrameworksCLIPython

★ 729주당 +211

무엇인가

XRAG는 검색증강생성 파이프라인을 구성하는 기반 모듈을 개별 단위로 분해해 평가하는 벤치마킹 도구다. 완성된 RAG 애플리케이션을 만드는 것이 아니라, 이미 조립된 파이프라인에서 특정 모듈 하나를 교체했을 때 답변 품질이 어떻게 달라지는지를 측정하는 실험 계측 계층에 해당한다. ICDE 2026에 채택된 논문을 기반으로 한다.

어떻게 동작하나

실행 구조는 오케스트레이터가 담당한다. sequential, conditional, iterative, parallel, hybrid 다섯 유형의 오케스트레이터가 컴포넌트 실행 순서와 분기, 반복을 관리한다. 검색기는 BM25, 벡터 유사도, 하이브리드, 트리 구조, 키워드, 문서 요약 방식을 선택할 수 있고, 텍스트 분할기는 SemanticSplitterNodeParser, SentenceSplitterNodeParser, SentenceWindowNodeParser를 포함한다. 평가는 LlamaIndex와 DeepEval 기반 지표, F1·EM·MRR·Hit@K·MAP·NDCG 같은 전통 지표, faithfulness·relevancy·correctness, contextual precision/recall·hallucination·bias를 함께 산출하며 결과를 리포트와 시각화로 출력한다.

무엇과 다른가

LangChain이나 LlamaIndex가 파이프라인을 조립해 동작시키는 프레임워크라면, XRAG는 조립을 고정하고 변수를 하나씩 통제하는 비교 실험 쪽에 있다. HotpotQA, DropQA, NaturalQA 같은 벤치마크 데이터셋은 XRAG가 소비하는 입력이며, 별도의 generate 명령으로 문서 폴더에서 QA 쌍을 직접 만들어 쓸 수도 있다. 즉 데이터셋 제공자가 아니라 데이터셋을 태워 모듈별 기여도를 분리하는 평가자다.

어떻게 쓰나

설치는 conda로 가상환경을 만든 뒤 pip로 패키지를 넣는 방식이다. 설정 파일에서 API 키, 모델, 검색 파라미터를 지정하고, generate 명령으로 QA 쌍을 생성하며, api 명령으로 백엔드 서버를 띄운다. 서버는 POST /query로 질의를 받고 GET /health로 상태를 반환하며 --host, --port, --json_path, --dataset_folder 옵션을 받는다. WebUI는 데이터셋 업로드, 인덱스 구축, RAG 전략 구성, 대화형 테스트, 종합 평가 순서로 진행된다.

전제와 한계

Python 3.11 이상이 필요하다. OpenAI 모델을 쓰려면 API 키가 있어야 하고, 로컬 모델은 Ollama로 구동한다. 데이터셋은 JSON 파일 또는 문서 폴더 형태로 투입한다. 로드맵에 미완료로 표시된 항목에는 Semantic Perplexity, Entropy/Semantic Entropy, Auto-J, Prometheus, Late Chunking, PGE/GTE/M3E 임베딩, 30B 이상 모델 실험이 있다.

관련 논문 4

유사 도구