7단계 훈련 파이프라인

7단계 훈련 파이프라인

EasyRAG의 훈련은 7단계로 나뉘고, 각 단계가 독립적이라 사전 학습 산출물이 있으면 그 단계는 건너뛸 수 있어요. 데이터 준비부터 평가까지 흐름을 볼게요.

출처: https://github.com/ii-research/EasyRAG

전체 흐름은 이래요. Download & Preprocess → Build Index → Train Retriever(선택) → Precompute → Train Model → Evaluate. 첫 단계는 데이터 준비예요.

python data_pipeline/download_kilt_data.py   # Download KILT Wikipedia + NQ, TriviaQA, HotpotQA
python data_pipeline/fix_triviaqa.py         # Fix TriviaQA missing question text
python data_pipeline/filter_kilt_data.py     # Filter samples without valid provenance

다음으로 검색 인덱스를 만듭니다. 위키피디아를 Arrow 형식으로 변환하고, GTR-T5-Base 임베딩으로 Faiss 인덱스를 구축해요.

python data_pipeline/build_wiki_index.py   # Convert Wikipedia to Arrow format
python data_pipeline/build_gtr_index.py    # Build Faiss index with GTR-T5-Base embeddings

검색 결과를 사전 계산합니다. FiD-Light / Stochastic RAG는 top-40, FiD는 top-100 문서를 미리 뽑아 둬요. 그다음 알고리즘에 맞는 훈련 스크립트를 실행해요.

python training/train_fidlight_paper.py \
  --precomputed_path data/precomputed/all_tasks_train.parquet \
  --output_dir checkpoints/fidlight \
  --steps 50000 \
  --multi_gpu   # Use all available GPUs

마지막으로 평가 스크립트로 체크포인트를 검증해요. --task(nq, triviaqa, hotpotqa, all)와 --multi_gpu 옵션을 지원하죠.

python evaluation/evaluate_fidlight.py --checkpoint checkpoints/fidlight/final --task nq

각 알고리즘·백본 조합마다 평가 스크립트가 준비되어 있고, 학습·평가 상태는 웹 대시보드에서 실시간으로 확인할 수 있어요.

더 알아보기