Kaggle - LLM Science Exam

MSMoon·2025년 5월 12일

kaggle 학습

목록 보기
16/18
post-thumbnail

1. 대회 설명

  • 목표: 대형 언어 모델(LLM)이 과학 관련 지문을 읽고, 문제에 답할 수 있는지를 측정
  • 문제 유형: 자연어 처리 (NLP), LLM 평가, 텍스트 분류
  • 데이터 배경
    -> train.csv: 문제 ID, 질문, 선택지, 정답 레이블
    -> test.csv: 동일한 형식이나 정답 없음
    -> sample_submission.csv: 예측 결과 제출 형식
    -> 모든 문항은 science 관련된 주제로, 실제 시험 환경을 시뮬레이션한 형태

2. 성능 평가 방식 이해

  • Accuracy
    -> 단일 정답 선택 문제에서 얼마나 많이 맞췄는지를 측정
    -> 예측 값이 정답 레이블과 일치하는 비율로 계산

3. 데이터 전처리

3-1) EDA

  • answer 컬럼의 분포를 보면 클래스 불균형은 크지 않음
  • 대부분의 문항이 지문 + 질문 + 선택지로 구성
  • prompt, question, A~D 선택지를 모두 포함한 입력 텍스트를 생성

3-2) Data Cleansing

  • tokenizer 처리 시 너무 긴 입력은 truncation
  • 정답 label에 대해 숫자 label로 변환 필요

3-3) Feature Engineering

  • 선택지별로 하나의 예측 점수를 생성해야 하므로, 각 선택지마다 별도 추론
  • Huggingface tokenizer 사용

4. 모델링

4-1) 모델

  • sentence-transformers 기반 임베딩 모델
  • 파라미터 학습 없이, 임베딩 유사도 기반으로 Top-3 후보를 선택하는 구조 (zero-shot 형태)

4-2) 데이터 분할

4-3) 하이퍼파라미터 튜닝

  • 하이퍼파라미터 topk, embedding batch size, similarity cutoff 등을 조정 가능
  • 실제 학습은 없지만, Top-K 유사도 후보 수 및 후처리 방식에서 성능 차이가 발생

4-4) 최종 성능

  • 공개 노트북 기준 1등 솔루션
  • 실제 필사에서는 MAP@3 평가를 위해 answer 병합 후 직접 구현된 평가 코드 사용

5. 정리(Lesson & Learned)

  • Zero-shot 구조임에도 성능이 뛰어남
  • 코사인 유사도 기반 Top-K 선택 방식의 효율성 확인
  • 필사 과정에서 shell script 자동화 및 모듈 분리 구성 방식까지 학습하며, 현업형 프로젝트 구성법에 도움이 됨

kaggle-llm-science-exam

0개의 댓글