LMSYS - Chatbot Arena Human Preference Predictions

MSMoon·2025년 4월 22일

kaggle 학습

목록 보기
7/18
post-thumbnail

1. 대회 설명

  • 목표: LLM 품질 평가를 자동화하기 위해 LLM이 생성한 두 응답 중, 사용자가 더 선호할 가능성이 높은 쪽을 예측하는 모델을 구축
  • 문제 유형: 다중 분류 (Multi-class Classification)
  • 데이터 배경
    -> LMSYS에서 수집한 사람 기반의 챗봇 응답 평가 데이터

2. 성능 평가 방식 이해

  • Log Loss (Cross Entropy Loss): 확률 분포의 신뢰도를 기반으로 예측 성능을 측정

3. 데이터 전처리

3-1) EDA

  • 텍스트 데이터로 구성되어 있어 prompt, response_a, response_b의 분포, 길이 등을 확인
  • 대부분의 데이터는 단일턴(single-turn)이며, 일부는 multi-turn

3-2) Data Cleansing

  • null 또는 None 응답을 문자열로 대체
  • \ud... 형태의 Unicode 이모지를 <[SPECIALCHAR]>로 치환

3-3) Feature Engineering

  • 문자열 포맷 생성
Instruction: <prompt>
Model A: <response_a>
Model B: <response_b> Style: SINGLETURN
  • 실제 필사를 진행한 구글 코랩 환경에선느 Gemma 원본 모델과 다르게 Falcon 기반의 단일턴 입력 구조 사용

4. 모델링

4-1) 모델

  • tiiuae/falcon-rw-1b 공개 모델을 사용
  • AutoModelForSequenceClassification으로 3-way 분류 모델 구성
  • torch_dtype=torch.float16 설정하여 Colab T4 환경에 맞게 최적화

4-2) 데이터 분할

  • 공식 테스트셋 기반 예측

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

  • tuning 없이 사전학습된 모델을 그대로 사용

4-4) 최종 성능

  • 예측 확률을 기반으로 결과 확인

5. 정리(Lesson & Learned)

  • Kaggle 노트북은 Kaggle 전용 환경에 최적화되어 있기 때문에 Google Colab에서 실행 시 여러 문제가 발생함
    -> bitsandbytes 양자화 > Colab T4 GPU에서는 충돌
    -> 멀티 GPU 추론 구조 > Colab에서는 단일 GPU만 사용 가능
    -> 해당 문제들을 해결하기 위해 모델을 Gemma에서 Falcon으로 변경하고 inference 구조를 단일 모델 기반으로 재구성

  • Kaggle 필사를 통해 환경 차이에 따른 실행 오류의 본질을 이해하고, 이를 리팩토링하는 실전 능력을 기를 수 있었음

  • 입력 간 상호작용을 고려한 구조가 필요한 두 응답을 비교해 사람이 선호할 만한 쪽을 예측해야 하는 것에 대한 어려움 체감

  • 입력 구성 (prompt + response 조합)의 디자인적 영향 실감
    -> 입력 문자열 길이, 구조, 순서 등이 추론 결과에 직접적인 영향을 줌
    -> 향후 LLM 활용 프로젝트 진행시 프롬프트 구조 설계의 중요성을 재확인

  • 데이터 구조의 일관성 필요 인식
    -> 실습 과정에서 ast.literal_eval() 실패 → "ERROR IN DATA" 문제 발생 → 입력 데이터 전처리에서 포맷 일치가 얼마나 중요한지 실감함

LMSYS - Chatbot Arena Human Preference Predictions

0개의 댓글