Project & Competiton/Upstage x Fastcampus

[프로젝트 7¹] Team GBE.SK 대회 소개

Visioneer 2024. 5. 11. 02:10

대회 소개 ( Scientific Knowledge Question Answering : 과학 지식 질의 응답 시스템 구축 )

질문과 이전 대화 히스토리를 보고 참고할 문서를 검색엔진에서 추출 후 이를 활용하여 질문에 적합한 대답을 생성하는 대회.



대회 목표

과학 상식을 질문하는 시나리오를 가정하고 과학 상식 문서 4200여개를 미리 검색엔진에 색인. 

대화 메시지 또는 질문이 들어오면 과학 상식에 대한 질문 의도인지 그렇지 않은 지 판단 후에 과학 상식 질문이라면 검색엔진으로부터 적합한 문서들을 추출하고 이를 기반으로 답변을 생성.

만일 과학 상식 이외의 질문이라면 검색엔진을 활용할 필요 없이 적절한 답을 바로 생성.

본 프로젝트는 모델링에 중점을 둔 대회가 아니라 RAG(Retrieval Augmented Generation) 시스템의 개발에 집중.

여러 모델과 다양한 기법, 그리고 앙상블을 활용하여 모델의 성능을 향상시키는 일반적인 모델링 대회와는 다름.

검색 엔진이 올바른 문서를 색인했는지, 그리고 생성된 답변이 적절한지 직접 확인하는 것이 중요한 대회.

데이터셋

document.jsonl

모델 학습을 위한 학습데이터를 별도로 제공하지 않고, 과학 상식 정보를 담고 있는 순수 색인 대상 문서 4200여개가 제공.

'doc_id'에는 uuid로 문서별 id가 부여되어 있고 'src'는 출처를 나타내는 필드. 실제 RAG에서 레퍼런스로 참고할 지식 정보는 'content' 필드에 저장. 데이터를 Open Ko LLM Leaderboard에 들어가는 Ko-H4 데이터 중 MMLU, ARC 데이터를 기반으로 생성했기 때문에 출처도 두가지 카테고리를 가짐.

 

 

eval.jsonl

멀티턴 대화 시나리오를 가정하기 때문에 리스트 형태의 사용자와 시스템이 주고 받은 메시지 형태로 평가 데이터가 구성.

아래 예시 중 세번째("eval_id": 2)를 보시면 메시지 히스토리가 리스트 형태로 되어 있는 것을 확인.

 

 

msg는 LLM이 받는 입력 포맷을 그대로 따르게 구성.

전체 평가 데이터는 총 220개의 메시지이며 이중 20개는 멀티턴 대화를 포함.

220개 중 또 다른 20개는 위의 마지막 예시처럼 과학 상식을 묻는 질문이 아니라 일반적인 대화 메시지를 포함.

검색엔진의 평가뿐만 아니라 LLM을 활용한 질의 의도 분석 및 standalone query를 얼마나 잘 생성하고 있는지를 평가해야 하기 때문에 많지는 않지만 20개의 멀티턴 대화 및 20개의 일반 대화를 포함.

 

평가 방법

MAP(Mean Average Precision)라는 metric을 사용합니다. MAP는 질의 N개에 대한 Average Precision의 평균 값을 구하고, Average Precision은 Precision-recall curve에서 아래쪽 면적을 의미.

 

 

이번 대회에서는 MAP를 약간 변형하여 RAG 평가에 적합하도록 살짝 수정한 형태의 로직을 사용.

대화 메시지가 과학 상식에 대한 질문일 수도 있고 아닐수도 있기 때문에 과학 상식 질문이 아닌 경우는 문서를 추출할 필요가 없음. 검색이 필요없는 ground truth 항목에 대해서는 검색 결과가 없는 경우를 1점으로 주고 그렇지 않는 경우는 0점으로 계산하게 로직을 추가.