Mova LoRA 재학습 · DB 정리 · 리뷰 댓글

채팅 무응답 근본 원인 규명 + EXAONE LoRA 재학습

채팅이 추천 카드를 전혀 반환하지 못하던 문제를 근본 원인부터 추적했다.

단계 발견
로그 추적 lora 서버 호출 200, 파싱 정상 — 모델 출력의 picks가 빈 배열
파이프라인 재현 실 DB 카탈로그 16편을 줘도 {"picks": []} 반환
원인 7/20 학습 어댑터가 구버전 출력 형식(movie_id 그라운딩 이전)으로 학습됨

해결: Gemini를 교사로 증류 데이터셋 생성 — 실 DB 카탈로그로 현재 프롬프트를 구성하고, Gemini의 movie_id 그라운딩된 정답을 검증 필터(카탈로그 밖 pick 제외)로 걸러 60건 확보. EXAONE-3.5-2.4B-AWQ LoRA 재학습(3 epoch, loss 0.92→0.49).

재검증 결과 모든 질의에서 추천 3편 정상 반환. “마블 이후에 볼 슈퍼히어로 영화” 질의도 프랜차이즈 사전(마블→어벤져스·스파이더맨 등 제목 확장) + 제목 매칭 추가로 실제 마블 작품만 후보로 잡힌다.

안정성 — 자동 폴백 + 서킷 브레이커

  • FallbackRecommendationAdapter: lora 서버 실패 시 Gemini로 자동 전환 (기존엔 EC2 .env 수동 수정 + 컨테이너 재생성 필요)
  • 서킷 브레이커: 연속 2회 실패 시 60초간 즉시 실패 처리 — 죽은 서버에 요청마다 60초 타임아웃을 기다리지 않음

DB 정리 — 4,255편 → 3,419편

정리 항목 방법 삭제 수
성인물 CLIP 포스터 제로샷(0.995 임계) + 제목 키워드 + 성인물 배우 전파 + 수동 검토 672
한국 미개봉 TMDB release_dates에 KR 없음 (고전 명작 19편은 오탐 보존) 400
고아 배우 출연·연출작 0건 3,938명

전량 DB trash 스키마에 백업 후 삭제 — 복원 가능. 동시에 TMDB에서 한국 개봉 기준(외화 포함)·성인물 제외·최신 개봉순으로 신규 1,000편 수집.

“집에서만 502” 인프라 미스터리 해결

집 노트북의 docker cloudflared가 EC2와 같은 터널 토큰으로 이중 접속 → Cloudflare가 트래픽 일부를 구버전 로컬 스택으로 분산하던 것이 원인. lora 전용 터널(systemd)은 별도로 이미 존재했으므로 중복 커넥터만 중지해 해결.

리뷰 댓글 + 에디터 리뷰

  • review_comments 테이블 신규(알렘빅 마이그레이션) — 1단 댓글, 로그인 작성, 본인만 삭제. 헥사고날 전체 스택 + 접힘식 댓글 스레드 UI.
  • 본인 리뷰 카드에 “수정” 버튼 — 기존 수정 폼으로 연결.
  • 에디터 리뷰 배치: 구글뉴스 RSS(제목+요약만, 원문 미수집) + Gemini로 “Mova 에디터” 계정 리뷰 자동 생성 — 영화당 1건, 재실행 안전.

UX 개선 10건

가로 행 마우스 드래그 스크롤, 배우 클릭→소개+출연작 다이얼로그, 장르 행 로테이션(최근 15년 우선), 콜드 스타트 추천 최신 우선 정렬, 랭킹 포디움 빈 슬롯 안내, 네이티브 confirm/alert 전부 Mova 다이얼로그화, 닉네임 깜빡임 수정, 랜딩·서브페이지 헤더 통일, 로딩 영상 크롭, 출연진 정렬·아바타 폴백.