# 250808 한국어 감정 분류 모델 학습 ## 오후 5시 13분 ### 한국어 감정 분류 모델 학습 및 배포 #### 배경 - 로빙의 감정 인식 기능 필요 - 한국어 텍스트에서 7가지 감정 분류 (공포, 놀람, 분노, 슬픔, 중립, 행복, 혐오) - KLUE-BERT 기반 모델 학습 #### 작업 과정 ##### 1. 환경 구성 - WSL2 환경에서 학습 진행 - 하드웨어: i9-12900KF, RTX 3060 x2, CUDA 12.6 - emotion_training 폴더 생성 후 training_emotion으로 변경 - uv 패키지 매니저로 가상환경 구성 ##### 2. 데이터 준비 **KOTE 데이터셋** - Hugging Face에서 다운로드 - 6개 감정, 심각한 클래스 불균형 - 학습 결과: F1 35.8% **AI Hub 데이터셋** - 한국어_단발성_대화_데이터셋.xlsx - 한국어_연속적_대화_데이터셋.xlsx - 38,594개 샘플, 7개 감정 균형 분포 - 학습 결과: F1 56.3% ##### 3. 주요 문제 해결 **TrainingArguments 파라미터 변경** ```python # 기존 (오류) evaluation_strategy="epoch" # 수정 eval_strategy="epoch" ``` **compute_loss 시그니처 오류** ```python # WeightedTrainer 클래스에 추가 def compute_loss(self, model, inputs, return_outputs=False, num_items_in_batch=None): # num_items_in_batch 파라미터 추가 필요 ``` **Bash 타임아웃 문제 (중요)** - 기본 2분 타임아웃으로 학습 중단 반복 - 사용자 피드백: "타임아웃은 .. 신발.." - 해결: 1시간 타임아웃 설정 ```bash # Claude Code에서 timeout 설정 timeout=3600000 # 1시간 ``` ##### 4. 최종 모델 성능 - Macro F1 Score: 56.3% - ECE (Expected Calibration Error): 0.090 - Brier Score: 0.564 - 온도 보정 적용 (T=1.232) ##### 5. Git 저장소 구성 - 저장소: https://git.ro-being.com/ivada_Ro-being/training_emotion.git - 폴더 구조 정리: - scripts/: 데이터 처리 스크립트 - data/: 학습 데이터 - outputs/: 학습된 모델 - logs/: 학습 로그 - .gitignore로 체크포인트 제외 (용량 관리) ##### 6. 배포 계획 - 51124 서버에 skill-emotion 서비스 구축 - 포트 8503 사용 - FastAPI 기반 API 서버 - 로빙과 HTTP API로 연동 #### 교훈 1. **타임아웃 설정의 중요성**: 긴 학습 작업 시 충분한 타임아웃 설정 필수 2. **라이브러리 버전 호환성**: transformers 라이브러리 업데이트로 파라미터명 변경 주의 3. **데이터 품질**: KOTE보다 AI Hub 데이터가 균형잡혀 있어 성능 향상 (35.8% → 56.3%) 4. **파일 인코딩**: README 작성 시 UTF-8 인코딩 확인 필요 5. **브랜치명 규칙**: main 브랜치 사용 (master 대신) 6. **uv 패키지 매니저**: pip보다 빠르고 의존성 관리 편리 #### 다음 단계 - skill-emotion 서비스 구현 - 로빙(rb10508_test)과 통합 - 실시간 감정 분석 기능 추가 ## 오후 7시 30분 ### 감정 분류 모델 배포 중단 #### 상황 - training_emotion 저장소를 51124 서버로 클론 완료 - outputs/aihub-7emotions-complete/ 폴더에 토크나이저와 설정 파일만 존재 - **모델 가중치 파일(pytorch_model.bin, model.onnx) 부재** #### 문제점 발견 1. **모델 파일 누락**: 학습된 모델 가중치가 저장소에 포함되지 않음 2. **포트 충돌**: 제안된 8503 포트는 이미 rb10408_test에서 SKILL_SLACK_URL로 사용 중 3. **저장소 미생성**: skill-emotion 저장소가 아직 생성되지 않음 #### 결정 사항 - 사용자 요청으로 작업 중단 ("아냐 됐다. 그만하자") - 모델 가중치 파일 없이는 배포 불가능 - 추후 모델 파일 준비 후 재시도 필요 #### 교훈 1. **배포 전 체크리스트**: 모델 파일, 설정 파일, 토크나이저 모두 확인 필수 2. **포트 할당 관리**: 기존 서비스 포트 사용 현황 사전 확인 3. **Git LFS 고려**: 대용량 모델 파일은 Git LFS 사용 검토