원문: https://docs.auto-rag.com/tutorial.html

Tip

이 튜토리얼을 시작하기 전에 AutoRAG를 설치했는지 확인하세요. 설치하려면 설치를 확인하세요.

Colab Tutorial

Colab을 사용하시나요? Colab 튜토리얼은 여기에서 확인할 수 있습니다.

평가 데이터셋 준비

먼저, RAG 파이프라인을 위한 평가 데이터셋를 준비해야 합니다. 좋은 평가 데이터셋를 만드는 것이 좋은 RAG 파이프라인을 얻기 위한 핵심입니다. 따라서 평가 데이터셋의 품질에 집중해야 합니다. 일단 데이터셋가 확보되면 AutoRAG를 사용해 최적의 RAG 파이프라인을 쉽게 찾을 수 있습니다.

따라서 좋은 평가 데이터셋를 만들고자 하는 사용자를 위해 여기에서 자세한 가이드를 제공하고 있습니다.

이미 만들어진 평가 데이터셋을 사용하고자 하는 사용자를 위해, 여기에서 예제 데이터셋을 제공하고 있습니다.

또한, 샘플 데이터셋을 확인할 수 있습니다. 허깅페이스에서 샘플 데이터셋를 확인할 수도 있습니다. 허깅페이스 데이터셋 라이브러리를 사용하여 수동으로 다운로드할 수도 있습니다.

Attention

훈련 데이터셋와 테스트 데이터셋를 분할하는 것을 잊지 마세요. 데이터셋를 분할하지 않는 것은 일반적인 실수이지만, 과적합 문제가 발생할 수 있습니다. 훈련 데이터셋으로 RAG 파이프라인을 최적화하고 나중에 테스트 데이터셋으로 전체 파이프라인을 평가할 것을 적극 권장합니다.

평가 데이터셋를 준비한 후에는 데이터셋의 경로를 염두에 두시기 바랍니다.

참고: 데이터셋 형식

평가 데이터셋가 두 개, 즉 qa 데이터셋와 말뭉치 데이터셋가 있는지 확인하세요. 그리고 반드시 parquet 형식으로 저장해야 합니다. 특정 열과 데이터 유형에 대해 잘 모르는 경우 데이터 포맷 섹션을 확인하세요.

최적의 RAG 파이프라인 찾기

AutoRAG로 최적의 RAG 파이프라인을 찾아봅시다! 평가 데이터셋을 준비한 후에는 구성 YAML 파일이 필요합니다. GitHub 리포지토리 sample_config 폴더에는 미리 만들어진 구성 YAML 파일이 몇 개 있습니다. 시작용으로 미리 만들어진 구성 YAML 파일을 사용하는 것을 적극 권장합니다. starter.yaml 파일을 로컬 환경에 다운로드하면 모든 준비가 완료됩니다.

사용자 정의 구성 yaml 파일 작성

자세한 설정과 실험을 위해 사용자 정의 구성 yaml 파일을 직접 작성하고 싶다면, 최적화 섹션을 확인하세요.

시스템 검증

최적화를 시작하기 전에 시스템의 유효성을 검사해야 할 수 있습니다. AutoRAG를 실행할 때 YAML 파일에 오류, 파이썬 종속성, GPU 오류 또는 예기치 않은 오류가 있을 수 있습니다. 따라서 유효성 검사를 실행하는 것이 좋습니다. 전체 최적화를 실행하지만 최소한의 비용으로 시스템 오류를 찾기 위해서만 실행합니다.

cli 명령으로 유효성 검사를 실행할 수 있습니다.

autorag validate \
	--config your/path/to/default_config.yaml \
	--qa_data_path your/path/to/qa.parquet \
	--corpus_data_path your/path/to/corpus.parquet

또는 아래와 같이 파이썬 코드를 사용할 수도 있습니다.

from autorag.validator import Validator
 
validator = Validator(qa_data_path='your/path/to/qa.parquet', corpus_data_path='your/path/to/corpus.parquet')
validator.validate('your/path/to/default_config.yaml')

AutoRAG 최적화 실행

CLI에서 아래 코드를 실행하면 AutoRAG가 자동으로 데이터셋을 평가하고 데이터셋에 가장 적합한 RAG 파이프라인을 찾습니다.

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 \
	--project_dir ./your/project/directory

또는 아래와 같이 파이썬 코드를 사용할 수도 있습니다.

from autorag.evaluator import Evaluator
 
evaluator = Evaluator(
	qa_data_path='your/path/to/qa.parquet', 
	corpus_data_path='your/path/to/corpus.parquet',
	project_dir='your/path/to/project_directory'
)
 
evaluator.start_trial('your/path/to/config.yaml')

완료되면 현재 디렉터리에 생성된 여러 파일과 폴더를 볼 수 있습니다. 이러한 파일과 폴더에는 평가 결과와 데이터에 가장 적합한 RAG 파이프라인에 대한 모든 정보가 포함되어 있습니다.

|200

가장 먼저 보이는 것은 위 이미지에서 3과 같이 숫자의 이름을 딴 폴더일 수 있습니다. 이 폴더는 위에서 실행한 모든 결과가 들어 있는 평가판 폴더입니다. 이 숫자는 평가판 번호이며, 평가판을 실행하면 trial.json 파일에서 확인할 수 있습니다.

그리고 가장 중요한 파일은 summary.csv 파일입니다. 어떤 모듈과 파라미터가 데이터셋에 가장 적합한지 확인할 수 있습니다. 그리고 노드 라인과 노드 폴더 안에는 많은 세부 정보가 있습니다. 폴더 구조와 결과 파일에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

프로젝트 폴더를 지정하고 싶으신가요?

프로젝트 디렉터리는 --project_dir 옵션 또는 project_dir 파라미터로 지정할 수 있습니다.

python 명령을 사용하는 이유는 무엇인가요?

커스텀 LLM 모델 또는 커스텀 임베딩 모델을 추가하려면 파이썬 명령을 사용해야 합니다. 추가 프로세스가 파이썬 코드로 실행되어야 하기 때문입니다. 커스텀 LLM 또는 임베딩 모델을 추가하는 방법은 이 문서를 참고하세요.

❗trial 사용 중 오류가 발생하면 trial을 다시 시작하세요

trial 사용 중 오류가 발생하면 trial을 다시 시작할 수 있습니다.

config.yaml 파일에 문제가 있는 경우, trail 폴더에서 config.yaml 파일을 수정한 후 아래 코드를 실행하면 됩니다.

CLI에서 아래 코드를 실행하면 AutoRAG가 자동으로 평가를 다시 시작합니다.

autorag restart_evaluate --trial_path your/path/to/trial_folder

또는 아래와 같이 파이썬 코드를 사용할 수도 있습니다.

from autorag.evaluator import Evaluator
 
evaluator = Evaluator(
	qa_data_path='your/path/to/qa.parquet', 
	corpus_data_path='your/path/to/corpus.parquet'
)
 
evaluator.restart_trial(trial_path='your/path/to/trial_path')

Trial_Path에 First Node Line도 생성되지 않은 경우 어떻게 하나요?

다시 시작하려는 trial path에 First Node Line 폴더가 생성되지 않은 경우, restart_trial 대신 start_trial 함수가 실행됩니다.

해당 trial path에 새로운 trial 폴더가 생성되는 것이 아니라 새롭게 재시작 결과가 생성됩니다.

대시보드를 실행하여 평가판 결과 확인하기

AutoRAG 버전 0.2.0까지는 대시보드 기능을 사용하여 AutoRAG의 결과를 쉽게 확인할 수 있습니다. 아래 명령어로 대시보드를 실행할 수 있습니다.

autorag dashboard --trial_dir /your/path/to/trial_dir

파이프라인 추출 및 테스트 데이터셋 평가하기

이제 찾은 RAG 파이프라인으로 테스트 데이터셋을 평가할 차례입니다. 이를 위해 최적의 파이프라인을 추출하여 새 구성 YAML 파일에 저장합니다.

아래 코드를 사용할 수 있습니다.

trial 폴더는 Evaluator를 실행하는 디렉터리에 있다는 것을 기억하세요. 그리고 trial 폴더 이름은 0, 1, 2, 3 등과 같은 숫자입니다.

CLI에서 아래 코드를 실행하면 AutoRAG가 자동으로 최적의 파이프라인을 추출하여 새 YAML 파일에 저장합니다.

autorag extract_best_config \
	--trial_path your/path/to/trial_folder \
	--output_path your/path/to/pipeline.yaml

또는 아래와 같이 파이썬 코드를 사용할 수도 있습니다.

from autorag.deploy import extract_best_config
 
pipeline_dict = extract_best_config(trial_path='your/path/to/trial_folder', output_path='your/path/to/pipeline.yaml')

파이프라인 YAML 파일은 your/path/to/pipeline.yaml에서 확인할 수 있습니다. 그런 다음 테스트 데이터셋으로 평가를 다시 실행합니다.

Caution

평가를 다른 폴더로 실행합니다. 동일한 폴더에 있는 다른 데이터셋으로 평가를 실행하면 심각한 오작동이 발생할 수 있습니다.

autorag evaluate \
	--config your/path/to/pipeline.yaml \
	--qa_data_path your/path/to/qa_test.parquet \
	--corpus_data_path your/path/to/corpus_test.parquet

발견된 RAG 파이프라인으로 테스트 데이터셋을 평가합니다.

최적의 RAG 파이프라인 배포

1. 코드로 실행

찾은 최적의 RAG 파이프라인을 추출한 YAML 파일로 바로 사용할 수 있습니다.

from autorag.deploy import Runner
 
runner = Runner.from_yaml('your/path/to/pipeline.yaml')
runner.run('your question')

또는 trial 폴더를 사용하여 YAML 파일을 추출하지 않고 파이프라인을 실행할 수 있습니다.

from autorag.deploy import Runner
 
runner = Runner.from_trial_folder('/your/path/to/trial_dir')
runner.run('your question')

2. API 서버로 실행

이 파이프라인을 API 서버로 실행할 수 있습니다.

API 엔드포인트는 여기에서 확인하세요.

from autorag.deploy import Runner
 
runner = Runner.from_yaml('your/path/to/pipeline.yaml')
runner.run_api_server()

또는

from autorag.deploy import Runner
 
runner = Runner.from_trial_folder('/your/path/to/trial_dir')
runner.run_api_server()
autorag run_api \
	--config_path your/path/to/pipeline.yaml \
	--host 0.0.0.0 --port 8000

프로젝트 폴더를 지정하고 싶으신가요?

프로젝트 디렉터리는 --project_dir 옵션 또는 project_dir 파라미터로 지정할 수 있습니다.

3. 웹 인터페이스로 실행

를 선택하면 이 파이프라인을 웹 인터페이스로 실행할 수 있습니다.

웹 인터페이스는 여기에서 확인하세요.

from autorag.deploy import Runner
 
runner = Runner.from_yaml('your/path/to/pipeline.yaml')
runner.run_web()
from autorag.deploy import Runner
 
runner = Runner.from_trial_folder('/your/path/to/trial_dir')
runner.run_web()

CLI는 간소화된 웹 인터페이스를 실행하지만 코드는 그라디오 버전입니다.

autorag run_web --yaml_path your/path/to/pipeline.yaml
autorag run_web --trial_path your/path/to/trial_dir

프로젝트 폴더를 지정하고 싶으신가요?

프로젝트 디렉터리는 --project_dir 옵션 또는 project_dir 파라미터로 지정할 수 있습니다.

Hint

작업 및 평가 결과를 다른 사람들과 공유해 보시지 않으시겠어요? yaml 파일 또는 summary.csv 파일을 간단히 공유할 수 있습니다. 이를 통해 전체 RAG 파이프라인과 평가 결과를 다른 사람들과 공유할 수 있습니다.

Discord 채널에서 여러분의 작업을 자유롭게 공유하세요!

여기까지입니다! 데이터셋에 대한 최적의 RAG 파이프라인을 성공적으로 찾아서 배포했습니다. 이제 사용자 정의 구성 파일을 만들고, 더 나은 구성 YAML 파일을 작성하고, 그리고 더 나은 결과를 위해 반복해서 평가할 수 있습니다.

또는 AutoRAG로 절약한 시간으로 새로운 RAG 제품을 출시하세요!

다음 단계