효율적인 RAG 구축 공략
: 과학지식 편
(The Goal of Building an Efficient RAG: Scientific Knowledge)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
GBE-SK
가상민, 김다운, 김도연, 서상혁, 신동혁, 이소영, 장호준
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
Content
01. 팀원 소개
02. 대회 소개
03. Strategy
05. Result
04. 5-aspects
06. 경진대회 진행 소감
07. Q&A
01
팀원 소개
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
팀원 소개
1 | 2 | 3 |
가상민 | 김다운 | 김도연 |
| | |
4 | 5 | 6 | 7 |
서상혁 | 신동혁 | 이소영 | 장호준 |
| | | |
02
대회 소개
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
대회 개요
과학 상식을 질문하는 시나리오를 가정
과학 상식 문서 4200여개를 미리 검색엔진에 색인
대화 메시지, 질문
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
평가 지표
MAP(Mean Average Precision)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
제출 파일
03
Strategy
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
데이터 설명
과학 상식 정보로 색인 대상 문서 4200여개.
* 'doc_id' : uuid로 문서별 id가 부여
* 'src' : 출처를 나타내는 필드
* 'content' : 실제 RAG에서 레퍼런스로 참고할 지식 정보
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
평가 데이터
eval.jsonl
{"eval_id": 243, "msg": [ {"role": "user", "content": "사람이나 물체가 지구 위에서 땅속으로 꺼지거나 바깥으로 튕겨나가지 않고 가만히 서 있을 수 있잖아?"}, {"role": "assistant", "content": "네 맞습니다."}, {"role": "user", "content": "그 이유를 힘의 원리로 설명해줘."}] }
멀티턴 대화
일반적인 대화 메시지
{"eval_id": 32, "msg": [{"role": "user", "content": "오늘 너무 즐거웠다!"}]}
멀티턴 대화
일반 대화
04
5-aspects
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4. 효율적인 성능 5가지 측면
4-1. 프롬프트 측면
4-2. 모델의 임베딩 측면
4-3. 역색인과 임베딩의 혼합 측면
4-4. 역색인 측면
4-5. Hyde기반의 문서 검색
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-1. 프롬프트 측면
📕 프롬프트 역할
질의 의도 분석 & 일반 대화 메시지 대응
1. 지식과 관련된 메시지에 대해 search 함수를 호출하고 적절한 standalone query를 추출해야 한다.
2. 지식과 관련 없는 일반 대화에 대해 search 함수를 호출하지 않고 적절한 대답을 생성해야 한다.
📕 목표(GOAL)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-1. 프롬프트 측면
❓ 질의 분석 Instruction
1. “과학 지식에 관한” → “지식에 관해”
: 다양한 주제의 지식 관련 질문을 모두 처리하도록
2. “반드시” : 지식 관련 메시지임에도 search 함수가
호출되지 않는 문제 해결
3. “함수 호출 없이” : search 함수 호출하지 않아야 하는 메시지(일반 대화 메시지)임에도 함수 호출되는 문제 해결
- 🆔 최대한 많은 키워드를 포함하도록 수정
"description"
: "User's question. Full message if the user message is single-turn."
⇒ 싱글턴 메시지의 경우, user의 메시지를 그대로 쿼리로 추출하도록
- parameter 이름 : “standalone_query” → “question”
⇒ 단어의 나열보다는 질문 형식 그대로 추출하도록
📕 Persona_function_calling
📕 Function calling - Standalone_query 정의
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-2. 모델의 임베딩 측면
# 어미, 조사, 구분자, 줄임표, 지정사, 보조 용언 등을 제거된 내용.
"stop tags": ["E", "J", "SC", "SE", "SF", "VCN", "VCP", "VX"]
📕 L2 Norm
📕 Cosine Similarity
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-2. 모델의 임베딩 측면
Baseline
- SBERT 기반 모델 8개 - baseline 모델 보다 높은 성능
- hunkim/sentence-transformer-klue
- jhgan/ko-sbert-sts
- sentence-transformers/LaBSE
- sentence-transformers/sentence-t5-large
- bespin-global/klue-sroberta-base-continue-learning-by-mnr
- bongsoo/moco-sentencedistilbertV2.1
- sentence-transformers/distiluse-base-multilingual-cased-v2
- sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
- RoBERTa 기반 모델 3개 - 의미론적 유사도 성능이 SBERT보다 높음*
- ddobokki/klue-roberta-base-nli-sts
- jhgan/ko-sroberta-multitask - 가장 높은 성능
- jhgan/ko-sroberta-sts
📕 다양한 임베딩 모델(vector encoder) 11개 실험
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-2. 모델의 임베딩 측면
📕 임베딩 모델 파인튜닝
: LLM으로 각 document에 대해 가상의 질문 3개씩 생성하여 학습 데이터를 구축한 뒤 파인 튜닝하는 방식
Step 1. Question Generation
Step 2. query + document pair 생성
& 학습 데이터 구축
Step 3. 모델 파인튜닝
domain을 사용해
1 Positive Pair + 15 Negative Pair (10 Hard, 5 Soft) 생성하여
학습 데이터 구축
question/document/domain으로 구성된 json 데이터 생성
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-3. 역색인과 임베딩의 혼합 측면
Model | Sparse | Dense | E.T.C(기타) |
1 | 0.0005 | 1 | boost |
2 | 0.1 | 1.5 | boost |
3 | 0.002 | 1 | boost |
4 | 0.02 | 1.5 | boost |
5 | 0.03 | 0.7 | boost |
6 | 0.01 | 1 | boost |
7 | 0.001 | 1 | boost |
💎 역색인 + Vector 유사도 혼합
body =
{ "query":
{
"match":
{ "content":
{ "query": query_str,
"boost": 0.002 }
}
},
"knn": { "field": "embeddings",
"query_vector": query_embedding.tolist(),
"k": 5,
"num_candidates": 50,
"boost": 1 },
"size": 3
}
es.search(index="test", body=body)
* score = 0.0025 * match_score + 1 * knn_score
📕 hybrid(sparse retrieve + dense retrieve)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-4. 역색인 측면
📕 확률 모델 (BM25) → 언어 모델 (LM Jelinek-Mercer)
BM25 (Best Matching 25)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-4. 역색인 측면
📕 확률 모델 (BM25) → 언어 모델 (LM Jelinek-Mercer)
💎 LM Jelinek-Mercer
BM25와는 달리 단어의 출현 빈도나 문서의 길이보다는 언어 모델을 기반으로 유사성을 측정하는 특징이 있음
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-4. 역색인 측면
📕 nori analyzer에 동의어 filter 추가
💎 “다음 세대”와 “후손”이 동의어로 등록되어 있다면
“다음 세대”로 검색한 결과에 “후손”이 포함된 문서도 검색 결과로 반환됨
"synonyms_filter": {
"type": "synonym",
"lenient": True,
"synonyms": [
"Dmitri, 드미트리",
"traffic, 트래픽",
*
*
*
"결혼 전, 혼전",
"숨, 호흡"
]
}
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
4-5. HyDE 기반 문서 검색
📕 Hypothetical Document Embeddings(HyDE)
🔱 HyDE Prompt 🔱
12.55% 향상
기존 한계 :
기존 문서 검색시 사용자의 기본 쿼리를 검색으로 한 색인화 작업으로 인한 관련된 결과가 없을경우 생성시에 어려움이 존재함.
해결책 :
사용자의 기본 쿼리보다, 문서 검색을 수행할 때 가설적인 답변을
생성하고, 생성된 결과를 색인에 사용하면 질문 자체인 기존 사용자의 기본 쿼리를 직접적으로 사용하는 것보다 우수한 결과가 입증 됨.
측면 :
향상된 신뢰성, 효율성 및 생산성
05
Result
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
결과(Public)
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
결과(Private)
06
경진 대회 진행 소감
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
Feedback
대회 평가
데이터 탐색 및 분석
대회 관련 Solution
대회 진행 방향
* 대회가 answer를 내는 end to end 가 아닌 적합한 reference를 얼마나 잘 추출했는지에 대한 평가를 진행하기 때문에 그 부분에 집중하여 진행하는 것이 좋을 것이다.
* 차별점을 얻기 위해 fine tuning을 한다면 그 과정을 진행하는 ‘이유’ 에 대해서 생각하는 습관을 만드는 것이 좋다.
* 과학 상식인지 과학 상식이 아닌지에 대한 하나의 모듈을 더 생성해서 진행 하는 것이 좋을 것이다.
* RAG 로만 해결한다고 했을 경우 유사도나 score를 가지고 threshold를 구성하지만, 단순히 threshold 를 지정해서 모델 학습을 시키는 것이 위험할 수 있다.
* QA의 경우 2가지로 나눌 수 있다.
* 데이터를 분석하는 과정이 가장 먼저 진행되어야 할 Task 이다.
* train 데이터 탐색 시 과학 질문인지 아닌지 판단했을 때 정확도에 얼마나 영향을 미치는지 분석해 볼 필요가 있다.
* 데이터를 파악한 후 어느 쪽에 힘을 줘야 할지 판단하는 것이 중요하다.
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
진행 소감
* 검색 엔진을 활용하여 과학 지식에 기반한 질의 응답 시스템을 구축하고, 적절한 답변을 생성하는 과정을 이해할 수 있다.
의 의
차기 아이디어
아쉬운 점
배운점
* Scientific Knowledge Question Answering에 초점을 맞춘 Information Retrieval 시스템을 구축하는 경험을 할 수 있다.
* Elasticsearch, 역색인 기법, 벡터 유사도 기법에 대해 학습해보고 심층적으로 연구해볼 수 있는 시간을 가질 수 있었다.
* 대회에서 사용된 Retrieval techniques와 Generation 모델의 통합에 대해 학습할 수 있었다.
* Information Retrieval 대회의 참여 기간이 짧아서 다양한 검색 모델과 생성 모델의 조합을 테스트 해보지 못한 것이 아쉬웠다.
* 제한된 데이터와 자원 내에서 최적의 검색 결과를 추출하기 위한 인덱싱 및 쿼리 전략을 개발하는 것이 도전적이었다.
* 임베딩된 문서 벡터를 잘 반영할 수 있는 LLM 모델을 선정하는 것.
* Elasticsearch에 대한 심도있는 공부를 통해 좀 더 효율적으로 사용하기 위한 방법 모색
* MAP(Mean Average Precision) 지표를 사용하여 검색 결과의 정확도를 평가하는 방법을 배웠다.
* 작은 규모의 데이터셋으로 초기 실험을 수행하고 이를 전체 데이터셋으로 확장하는 전략의 중요성을 깨달았다.
* RAG 시스템의 개발에 중점을 두어, 검색된 문서가 질문에 얼마나 잘 매칭되는지 평가하는 새로운 접근 방식을 경험할 수 있다.
* 생성된 답변이 사용하는 API에 따라서도 달라지는 경향을 보이므로, 앙상블을 적용할 방법을 모색할 것.
* Elasticsearch를 효율적으로 활용하지 못하여 아쉬웠다.
* 추론된 Data들을 활용하여 model 과 model 사이의 장단점을 구분하는 방법을 늦게 알게 되어 아쉬웠다.
* HyDE 기반 문서 색인 방법을 적용한 모델 학습 방법을 모색할 것.
Q&A
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지
감사합니다.
www.fastcampus.co.kr
Copyright ⓒ FAST CAMPUS Corp. All Rights Reserved. 무단전재 및 재배포 금지