RAG 대회에 참여하여 이런저런 실험을 하다가 AutoRAG에 대해 알게 되었다.
유튜브에 자세한 설명이 있어 관련 내용을 정리해본다(출처 아래 표기)
AutoRAG를 구현하는 것도 간단해보이진 않지만,
처음부터 AutoRAG를 사용하면 멍충이가 될 것 같아 나름의 삽질을 좀 더 해보다가 시도하기로.
베이스: BM25(그냥 쓰면 한국어에서는 잘 작동 X. 한국어형태소와 함께 사용해야)
좋은 한국어 임베딩 모델 사용하는 것이 중요
: 단락에 인덱싱 -> 정답 단락을 가져왔는지를 평가
검색후 선정한 단락 A, B, C가 retrieval gt A(정답 단락)과 일치하는가
생성한 답변 A가 generation gt B(생성해 놓은 정답)와 일치하는가
Q. GT를 어떻게 만드는가?
: LLM이 작성한 질문을 휴먼이 검수
평가데이터셋을 만들때는 제일 똑똑한 LLM(지금은 chatGPT4o)을 사용해야!
'질문-답변' 100개만 있어도 충분하다(작지만 고품질이 중요)
보통 위에서 3가지 지표를 함께 사용
LLM judge:
Passage Filter: 앞의 Reranker에서 나온 결과들 중 임계치 이하의 결과물들은 날려버림 -> Precision 상승
node_line: 일종의 폴더
데이터셋: 양질의 100개면 충분하다
QnA
FineTuning: 어투 변경 등을 위한 것. 새로운 지식 주입을 위한 것이 X
RAG의 한계
- 적합한 문서 검색 only. 전체 지식의 취합 & 정리는 어려움
- 도메인별 전문용어에 대해서는 단어가 달라지면 검색 어려움
- LLM 성능을 넘지 못함(LLM에 의존)
한국어 임베딩 성능을 높이려면?
- 한국어 형태소 모델 + BM25 함께 사용
메디컬, 과학기술 등 전문적인 단어가 많이 나오는 도메인이면?
- BM25 + Reranker 튜닝
BM25(Best Matching 25)가 뭐지?
- 임베딩을 사용하지 않는 단어 매칭 기반의 랭킹 함수
- 코사인 유사도 기반 검색 등 임베딩 기반 검색에서는 적용 X
좋은 한국어 임베딩 모델?
- OpenAI 모델이 그나마 낫다...
Reranker를 파인튜닝 한다는것은?
- '질문-답변' 유사도를 binary classification -> 1(유사성 있음)이 나올 확률을 점수로 사용
- Reranker는 보통 BERT, T5 기반의 모델을 사용
- 위 language moel을 파인튜닝 하는 것
VectorDB 추천?
- AutoRAG는 기본적으로 Chroma(로컬에서 사용하기 간편)
https://www.youtube.com/watch?v=oiWNA3HsvHQ
https://github.com/Marker-Inc-Korea/AutoRAG
https://github.com/Marker-Inc-Korea/RAGchain
https://www.youtube.com/watch?v=ahnGLM-RC1Y&list=PLOXw6I10VTv-exVCRuRjbT6bqkfO74rWz
'RAG' 카테고리의 다른 글
Barclays Bank와의 채팅 (1) | 2024.07.24 |
---|---|
[RAG] Information Retrieval 대회: 스코어가 안나온다... (0) | 2024.06.26 |
[RAG] Retrieval 평가지표 (0) | 2024.06.24 |
[RAG] Hybrid Retrieval(matching + cosine similarity) (0) | 2024.06.24 |