https://github.com/Marker-Inc-Korea/AutoRAG?tab=readme-ov-file
BM25: 키워드 기반 검색방법Open-source AutoML tool for RAG
개념
수많은 실험을 효율적으로 편하게 할 수 있도록 자동화한 툴
YAML파일만으로 python코드작성 없이 여러 RAG모듈 테스트
Pdf등 raw data에서 평가용데이터 자동 생성
자동으로 찾은 성능 좋은 RAG파이프라인을 api서버와 streamlit 웹으로 사용
각 데이터에 최적인 RAG 파이프라인을 자동으로 찾을 수 있음
RAG 평가 방법
질문
단락: Retrieval 평가/Retrieve된 단락 A, B, C가 retrieval gt A(정답단락A)와 일치하는가?
생성(LLM): 생성한 답변 평가/생성한 답변 A가 generation gt B와 유사한가?
Retrieval평가/Generation평가
ground truth: 학습하고자 하는 데이터의 원본
RAGAS: simple, reasoning등 지표에 가중치를 두고 평가데이터셋을 만듦
RAG 평가데이터
데이터 생성을 전부 자동화하는 것은 불가능
최악이 처음부터 끝까지 LLM을 사용하는것
실제 유저데이터 활용 - 도메인 전문가 - human-in-loop(LLM+사람) - 전부LLM 순으로 좋은 방법
human-in-loop(LLM+사람): LLM으로 QA생성 - human 검증 - 프롬프트 재작성의 과정
langsmith: 피드백을 통해 프롬프트 최적화
llm: GPT-4o 사용(보안이슈 없으면). 평가데이터셋은 최고의 모델을 사용해야 함. API사용의 과금은 어쩔 수 없음. 질문 100개정도를 standard로 잡음 .. reasonable한 평가 가능. 작지만 고품질의 ground truth !!
Chunking이 완료된 문서에서 LLM을 사용하거나 직접 예상 질문/응답 만든다.
질문 생성에 사용된 chunk, 질문, 응답이 곧 QA 평가데이터셋이 된다.
Generation 지표
LLM-based metrics: 비쌈. 도메인 데이터에 프롬프트를 직접 작성해, 커스텀해서 사용 가능
LM-based metrics: 쌈. BERT같은 작은 LM이용해 의미론적으로 얼마나 비슷한지 측정
N-gram based metrics: 전통적임. 얼마나 비슷한지. METEOR, BLEU, ROUGE
AutoRAG 작동원리
AutoRAG 사용
AutoRAG 결과값 해석