1. 베이스라인 코드 보면서 내용 익히기
베이스라인으로 나온 결과 리더보드에 올렸을 때: 0.42(sparse)
2. 프롬프트 바꿔주기
프롬프트를 구체적으로 입력하고, 동일한 프롬프트에서 sparse_retrieve와 dense_retrieve를 각각 넣어서 결과를 확인해봄
sparse_retrieve에서 0.57 -> 프롬프트 중 function calling의 description을 영어에서 한글로 바꿔보니 0.52로 떨어짐
dense_retrieve에서 0.37
3. sparse와 dense를 합쳐서 사용하는 hybrid_retrieve 사용
sparse로 초기 후보 문서 10개 가져오고, 10개에 대해서 dense 검색으로 리랭킹하여 상위 3개 문서만 추출
결과는 0.45 -> dense가 0.37로 낮은 성능을 보였기 때문에 임베딩 모델을 바꾸고 dense 성능을 끌어올리면 hybrid가 잘 작동할 것이라고 생각. ==> 임베딩 모델을 바꿔보자!
4. 임베딩 모델 변경
1) solar 임베딩 시도 - 차원수가 높아서(4096인가) 엘라스틱서치 안에 안들어가서 패스
2) Sentence Transformer 모델로 가져와 쓸 수 있는 것 중에서 버트 모델: BM-K/KoSimCSE-bert 사용
-> dense 0.5 로 성능 향상 / hybrid 0.56
3) openai 임베딩 모델 사용: text-embedding-3-small
-> dense 0.49 / hybrid 0.64
==> openai 임베딩을 사용한 hybrid retrieve 성능이 가장 좋았으니 이걸 좀 더 파보자고 생각.
5. TopK 문서를 더 많이 뽑고 3개를 더 정교하게 선발해보자(?) - 각종 파라미터 변경해가기
기존에는 질문 하나에 관련 문서를 뽑아오는 방식인데, 질문 하나당 비슷한 질문을 3개를 더 만들어서 각 질문에 대해 관련 문서들을 10개씩 뽑아오고, 거기서 뽑힌 문서들 중에서 가장 많이 뽑힌 문서를 추출하는 방식. 질문 3개 만들 때 챗지피티 사용.
ensemble_retrieve를 새로 만들어서,
문서 5개만 뽑음, 질문 3개 만들 때 temperature 0.3, hybrid 점수 계산할 때 sparse 0.4 dense 0.6 -> 0.65
문서 10개씩 뽑음, 질문 3개 만들 때 temperature 0.2, hybrid 점수 계산할 때 sparse 0.4 dense 0.6 -> 0.66
문서 10개씩 뽑고, 질문 3개 만들 때 temperature 0.2, hybrid 점수 계산할 때 sparse 0.2 dense 0.8 ->
6. ColBERT 활용한 도메인 성능 최적화 - 임베딩 모델 학습시키기
문서 집합을 가지고 pseudo train 데이터셋 만들기
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
[IR] 벡터 유사도를 계산하는 다양한 방법들 (0) | 2024.12.19 |
---|---|
[IR] 클로드로 프로젝트 관련 질문 싹다 몰아넣기 (0) | 2024.12.19 |
학습일지 | Data Centric AI (0) | 2024.12.17 |
[LLM] LLM 학습일지 (1) | 2024.12.06 |
[논문 리뷰] 팩트체크 시스템의 기초를 마련한 FEVER 데이터셋 (0) | 2024.12.02 |