
Marker-Inc-Korea/AutoRAG
요약
AutoRAG는 사용자의 특정 데이터와 유스케이스에 최적화된 RAG 파이프라인을 자동으로 찾아주는 AutoML 도구입니다. 다양한 RAG 모듈 조합을 자동으로 평가하여 가장 적합한 구성을 제안합니다.
핵심 포인트
- 데이터 및 유스케이스 맞춤형 RAG 파이프라인 자동 탐색
- 다양한 RAG 모듈 조합에 대한 자동 평가 기능 지원
- QA 및 Corpus 데이터셋을 활용한 최적화 프로세스
- Python 기반 설치 및 GPU/Parsing 버전 지원
데이터에 최적화된 RAG 파이프라인을 자동으로 찾아주는 RAG AutoML 도구입니다.
시중에는 수많은 RAG 파이프라인과 모듈이 존재하지만, "당신만의 데이터"와 "당신만의 유스케이스 (use-case)"에 어떤 파이프라인이 훌륭한지는 알 수 없습니다. 모든 RAG 모듈을 직접 만들고 평가하는 것은 매우 시간이 많이 걸리고 어려운 작업입니다. 하지만 이 과정 없이는 어떤 RAG 파이프라인이 당신의 유스케이스에 가장 적합한지 결코 알 수 없을 것입니다.
AutoRAG는 "당신의 데이터"를 위한 최적의 RAG 파이프라인을 찾는 도구입니다. 당신만의 평가 데이터로 다양한 RAG 모듈을 자동으로 평가하고, 당신의 유스케이스에 가장 적합한 RAG 파이프라인을 찾을 수 있습니다.
AutoRAG는 수많은 RAG 모듈 조합을 평가할 수 있는 간단한 방법을 지원합니다. 지금 바로 시도하여 당신의 유스케이스에 가장 적합한 RAG 파이프라인을 찾아보세요.
우리의 📖 문서를 탐색해보세요!!
AutoRAG.Tutorial.1.1.mp4
기본적으로 음소거 상태이며, 음성 설명을 들으려면 소리를 켜주세요
YouTube에서 확인하실 수 있습니다:
- Step 1: AutoRAG의 기초 | RAG 파이프라인 최적화
- Step 2: 데이터 생성 | RAG 최적화를 위한 데이터 생성
- Step 3: 커스텀 LLM 및 임베딩 모델 사용 | 커스텀 모델 사용
AutoRAG 사용을 위해 Python 버전 3.10 이상을 사용하는 것을 권장합니다.
pip install AutoRAG
로컬 모델을 사용하려면 GPU 버전을 설치해야 합니다.
pip install "AutoRAG[gpu]"
또는 파싱 (parsing)을 위해 파싱 버전을 사용할 수 있습니다.
pip install "AutoRAG[gpu,parse]"

RAG 최적화에는 두 가지 유형의 데이터가 필요합니다: QA 데이터셋과 코퍼스 (Corpus) 데이터셋입니다.
QA 데이터셋 파일 (qa.parquet)
Corpus 데이터셋 파일 (corpus.parquet)
QA 데이터셋은 정확하고 신뢰할 수 있는 평가와 최적화를 위해 중요합니다.
Corpus 데이터셋은 RAG의 성능에 결정적입니다. 이는 RAG가 문서를 검색하고 이를 사용하여 답변을 생성할 때 코퍼스를 사용하기 때문입니다.
modules:
- module_type: langchain_parse
parse_method: pdfminer
여러 개의 파싱 (Parse) 모듈을 동시에 사용할 수도 있습니다. 하지만 이 경우, 각 파싱 결과에 대해 새로운 프로세스를 반환해야 합니다.
단 몇 줄의 코드만으로 원본 문서를 파싱할 수 있습니다.
from autorag.parser import Parser
parser = Parser(data_path_glob="your/data/path/*")
parser.start_parsing("your/path/to/parse_config.yaml")
modules:
- module_type: llama_index_chunk
chunk_method: Token
...
여러 개의 청크 (Chunk) 모듈을 동시에 사용할 수도 있습니다. 이 경우, 하나의 코퍼스 (Corpus)를 사용하여 QA를 생성한 다음, 나머지 코퍼스를 QA 데이터 (QA Data)에 매핑해야 합니다. 청크 방법 (Chunk method)이 다르면 검색 정답 (retrieval_gt)도 달라지므로, 이를 QA 데이터셋에 다시 매핑해야 합니다.
단 몇 줄의 코드만으로 파싱된 결과물을 청킹 (Chunking)할 수 있습니다.
from autorag.chunker import Chunker
chunker = Chunker.from_parquet(parsed_data_path="your/parsed/data/path")
chunker.start_chunking("your/path/to/chunk_config.yaml")
단 몇 줄의 코드만으로 QA 데이터셋을 생성할 수 있습니다.
import pandas as pd
from llama_index.llms.openai import OpenAI
from autorag.data.qa.filter.dontknow import dontknow_filter_rule_based
...

다음은 노드 (Nodes)만 보여주는 AutoRAG RAG 구조입니다.
다음은 모든 노드와 모듈 (Modules)을 보여주는 이미지입니다.
AutoRAG의 각 노드에서 사용되는 지표 (Metrics)는 아래와 같습니다.
다음은 AutoRAG가 지원하는 지표에 대한 상세 정보입니다.
먼저, RAG 최적화를 위한 설정 (Config) YAML 파일을 설정해야 합니다.
입문자를 위해 미리 만들어진 설정 (Config) YAML 파일을 사용하는 것을 강력히 권장합니다.
다음은 세 개의 검색 (Retrieval) 노드, prompt_maker 노드, 그리고 generator 노드를 사용하는 설정 (Config) YAML 파일의 예시입니다.
node_lines:
- node_line_name: retrieve_node_line
nodes:
...
단 몇 줄의 코드만으로 RAG 파이프라인 (Pipeline)을 평가할 수 있습니다.
from autorag.evaluator import Evaluator
evaluator = Evaluator(qa_data_path='your/path/to/qa.parquet', corpus_data_path='your/path/to/corpus.parquet')
evaluator.start_trial('your/path/to/config.yaml')
또는 명령줄 인터페이스 (Command Line Interface)를 사용할 수도 있습니다.
autorag evaluate --config your/path/to/default_config.yaml --qa_data_path your/path/to/qa.parquet --corpus_data_path your/path/to/corpus.parquet
완료되면 현재 디렉토리에 생성된 여러 파일과 폴더를 확인할 수 있습니다.
숫자로 명명된 (예: 0) trial 폴더에서,
데이터에 대한 평가 결과와 최적의 RAG 파이프라인을 요약한 summary.csv 파일을 확인할 수 있습니다.
더 자세한 내용은 여기에서 폴더 구조가 어떻게 구성되어 있는지 확인할 수 있습니다.
결과를 쉽게 확인할 수 있도록 대시보드 (dashboard)를 실행할 수 있습니다.
autorag dashboard --trial_dir /your/path/to/trial_dir
trial 폴더에서 즉시 최적의 RAG 파이프라인을 사용할 수 있습니다. trial 폴더는 실행 중인 대시보드에서 사용되는 디렉토리입니다. (예: 0, 1, 2, ...)
from autorag.deploy import Runner
runner = Runner.from_trial_folder('/your/path/to/trial_dir')
runner.run('your question')
이 파이프라인을 API 서버로 실행할 수 있습니다.
API 엔드포인트 (endpoint)는 여기에서 확인하세요.
import nest_asyncio
from autorag.deploy import ApiRunner
nest_asyncio.apply()
...
autorag run_api --trial_dir your/path/to/trial_dir --host 0.0.0.0 --port 8000
CLI 명령은 추출된 설정 (config) YAML 파일을 사용합니다. 이에 대해 더 알고 싶다면 여기를 확인하세요.
이 파이프라인을 웹 인터페이스 (web interface)로 실행할 수 있습니다.
웹 인터페이스는 여기에서 확인하세요.
autorag run_web --trial_path your/path/to/trial_path


다음의 멋진 분들께 감사드립니다:
우리는 AutoRAG를 오픈 소스 (open-source)로 개발하고 있습니다.
따라서 이 프로젝트는 기여 (contribution)와 제안을 환영합니다. 이 프로젝트에 자유롭게 기여해 주세요.
또한, 여기에서 상세 문서를 확인하실 수 있습니다.
@misc{kim2024autoragautomatedframeworkoptimization,
title={AutoRAG: Automated Framework for optimization of Retrieval Augmented Generation Pipeline},
author={Dongkyu Kim and Byoungwook Kim and Donggeon Han and Matouš Eibich},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기