[Week 5- Day 1] 회고
# Product Serving
= MLOps 개론 (ex. Prototype, Linux, CI/ CD, MLflow, AirFlow 등)
!! Why 만들어졌는지 집중 (-> 1년 후엔 거의 안쓰는 lib가 될 수 O)
Q. 더 필요한 부분은? 더 개선하려면? 왜 이렇게 구현? (=> 제약조건, 상황에 따른 최선의 선택을 추구)
바라는 모습?
- 큰 그림 인지, 능동적인 자세(직접 문제정의& 필요한 도구 탐색), 지속적으로 개선, ML프로세스 이해
ex. 어떤 방법적용? 왜 해야? 어떤 방법이 좋나? 왜 좋나?
# ML 프로세스 (⭐️문제정의 중요)
- 현상 파악 (Q. 어떤 일이 발생? 어려움? 해결하고 싶은 거? 추가로? 가설? 데이터?)
- 목적/ 문제 정의 (Q. 무얼 해결하고 싶나? 알고 싶나?)(문제를 잘 solve하려면, 문제가 명확&구체적이여야 함)(Why에 집중)
- 프로젝트 설계 (무조건 알고리즘 접근 제시X)(RuleBase의 간단한 거 제시 후, 병렬로 알고리즘)
- Action
- 추가 원인 분석 (feature 어떤 값을 잘못 예측?)
프로젝트 설계를 자세히 살펴보면..
= 문제 구체화 => ML문제 타당성 확인 (흥미X, 비즈니스적 가치O) => Goal, Metric 설정
by 제약조건, Baseline, Prototype, eval 방법 설계
## ML문제는 "data로 부터 어떤 fn학습"하는 것임.
(-> 기존 model있는지? 필요 data종류?)
Q. 학습할 수 있는 패턴이 있나? (ex. 복권당첨모델)(어느정도 복잡성이 있어야, 잘 예측)(반복적으로 실행하는 것)
Q. 목적함수? (노이즈를 학습할 수O)
Q. goal & objective를 how to 연결할까?
- Goal = project의 큰 목적(일반적) (ex. 고객참여 최대화)
- Objectives = 목표 달성을 위한 세부단계 목표 (ex. NSFW : 사용자 불쾌감 콘텐츠 필터링)
!! but, 참여를 위한 최적화 시에 윤리적 의문이 존재
Netflix 소셜 딜레마 : 클릭 유도를 위한 자극적 콘텐츠 => 잘못된 정보 필터링, 품질에 따른 게시물 랭킹 선정
# 정확히 찾으려는 data없다면?
- label data (바로 use)
- 유사 label (ex. 재생/ 건너뛰기 기록 = 선호도)
- label X (직접 labeling or label X 학습 방법)
- data X (data 수집 방법 고민 or self-supervised)
Problem : 게시물이 매력적인데, 품질이 의심스럽다면(저해상도)?
- 품질에 따른 게시물 랭킹 선정 (게시물 품질)(qual_loss)
- 참여에 따른 게시물 랭킹 선정 (클릭 수)(engage_loss)
(방법 1) loss = 𝞪 qual_loss + β engage_loss
Problem : 𝞪, β 조정할 때마다, model 다시 학습
(방법 2) rank : 𝞪 qual_model(post) + β engage_model(post)
model이 재학습하지 않도록, 분류하는 게 중요
(+ objective 여러 개인 경우, 분리하는 게 좋음)(for easy learn)
# 성능
- Baseline : 새로 만든 모델을 무엇과 비교할 것인가? (ex. 기존사람 진행하던 시간 or 단순회귀 model)
- Threshold : 0.5 이상 or 0.7 이상일 경우 강아지
- Performance Trade-off : 속도 높은데 Acc 낮음 vs 속도 낮은데 Acc 높음
- 해석가능 여부 : 결과가 왜 발생했는지 해석이 필요한가? 누구에게 해석해주어야 하는가?
- Confidence Measurement : False Negative 있어도 ok? 오탐 있으면 안됨?
Q. Simple model부터 시작하는 이유?
최악성능 파악을 위해, 허수아비 모델(ex. 0.5 Acc)로 시작
(for model 위험도 낮추기 위해)(이만큼 더 나아졌다)
-> 유사문제 해결하고 있는 SOTA 논문 파악 (어떤 걸 base로 잡았구나) -> 우리 문제에선 어떤 시도 가능할까?
-> 간단한 모델 만들며, 피드백 (-> 동료들에게 활용가능한 환경 준비 -> 프로토타입 제공)
(ex. input -> output 반환하는 웹페이지. 이 때 html <<<< model. 다양한 Prototype 도구(ex. volia, streamlit, gradio) 이용)
## 피어 세션
미션 : 모더레이터 역할, TMI 타임- 음악 취향
주말에 '함께 자라기' 책을 읽은 것이 많은 도움이 되었다.
읽은 내용에 대해서 대화를 나누고, TMI 시간으로 '좋아하는 음악 장르나 스타일이 있는지?' 물어보았다.
데일리 스크럼 때, 내가 잘못 생각하고 있었다는 말을 해서 순간 말실수했나 생각했다.
하지만 나중에 충분히 보여주고 설명하였더니 나의 마음은 안심이요.
내가 하는 말을 글이라고 생각하려고 노력한다. 심적인 변화나 불안보다는 무언가를 위해 노력하기 위해.
전에 'K-정서상 어쩔 수 없는 일'이라는 말이 기억에 남는다. 나도 모르게 그런 일이나 말을 해도 생각이 없었다는 걸 알기에 이해할 수 있다.
벌써 다음 주부터 '이미지 분류 대회'다. 처음부터 구현해나가는 건가하는 불안이 엄습한다.
긴장할 필요 없이 할 일이나 할 말만 하면 된다.
현업자 특강을 들어보니, 정말 문제정의 부터 지표설정, 계속 테스트하고, 이게 왜 효과적인지 설득하고 참여율이 굉장히 높은 직업이었다.
이전까지는 모델이나 데이터로 계속 테스트하는 실험적인 인상이었는데, 현실은 비즈니스 가치창출을 위한 설득하는 인상이다.
조금 더 현재에 집중하고 살아야겠다.