[AI]2단계_모델_추론성능_최적화_성향기반_장소추천 - 100-hours-a-week/12-marong-Wiki GitHub Wiki

1.기존 모델 추론의 성능 지표 수집 및 문서화

MBTI 키워드 벡터 및 분위기 벡터 임베딩 후, 아래 4개 모델의 학습 결과를 비교함평점이 높아질 수록 두 벡터의 유사도는 높게, 낮을 수록 두 벡터의 유사도가 낮아지도록 학습함최적 평균 손실과 임베딩 벡터 공간 차원을 고려할 때 손실이 가장 낮고 차원 수가 비교적 적은 'snunlp/KR-SBERT-V40K-klueNLI-augSTS' Model을 초기 MVP에서 사용할 임베딩 모델로 선정

모델명 평균 학습 시간 최적 평균 손실(Optimal Avg Loss) 학습 양상 임베딩 벡터 공간 차원 GPU 예약 메모리
snunlp/KR-SBERT-V40K-klueNLI-augSTS 약 1분 0.1148 최적의 Avg Loss 값으로 적절하게 수렴 768 2.3GB
unsloth/llama-2-7b-bnb-4bit 약 1분 0.1153 최적의 Avg Loss 값으로 적절하게 수렴 4096 7.2GB
google/gemma-2b-it 약 1분 0.1291 최적의 Avg Loss 값으로 적절하게 수렴 2048 5.0GB
sentence-transformers/all-MiniLM-L6-v2 약 1분 0.1291 최적의 Avg Loss 값으로 적절하게 수렴 384 1.2GB

2.식별된 성능 병목 요소 및 원인 분석

  • 초기 MVP 단계에서 데이터셋 수집의 한계로 인한 사용자에게 개인화된 서비스 제공의 어려움
  • 사용자의 MBTI와 더불어 좋아하는 음식, 싫어하는 음식, 취미, 기타 행동 기반 요소(예시: 해당 장소 방문 횟수, 유사 성향의 사용자가 방문하는 장소 등)에 대한 데이터 부재

3.적용할 최적화 기법 구체 계획 수립

추가 데이터 수집

  • BeautifulSoup, Selenium을 이용하여 1차적으로 '판교역' 주변 식당과 카페의 상호명, 주소, 판매 음식, 영업 시간, 별점, 리뷰 데이터 수집
  • '판교역' 인근에서 확장하여 경기도 성남시 내 데이터를 수집하는 것으로 확장 예정

4.최적화 적용 후 기대 성능 지표 정의

  • 상위 K개 정밀도(Top K Precision): 모델이 추천한 상위 K개 중 실제로 사용자가 좋아한(클릭, 좋아요, 찜, 방문 리뷰 등) 장소가 몇 개나 포함되었는지를 평가
  • 상위 K개 재현율(Top K Recall): 사용자가 좋아한 장소 중 모델이 추천한 장소가 몇 개나 포함되었는지를 평가
  • AP(Average Precision): 모델이 추천한 항목 중에서 사용자가 좋아한 장소가 얼마나 위에 잘 나왔는지 평균낸 값

Average Precision(AP) 계산 예시

가정

  • 유저 A에게 5개 장소 추천: ["a", "b", "c", "d", "e"]
  • 유저 A가 실제 좋아한 장소: ["b", "e"]
k 장소 rel(k) P(k) = 정밀도 k 누적합
1 "a" 0 0 / 1 = 0.00 0.00
2 "b" 1 1 / 2 = 0.50 0.50
3 "c" 0 1 / 3 = 0.33 0.50
4 "d" 0 1 / 4 = 0.25 0.50
5 "e" 1 2 / 5 = 0.40 0.90
  • rel(k) : k번째 항목이 실제 관련(relevant) 항목이면 1, 아니면 0
  • P(k) : 추천 리스트 상위 k개까지 중 사용자가 좋아한 항목의 비율