---
# System prepended metadata

title: 211006 멘토링
tags: [멘토링]

---

---
tags: '멘토링'
---

211006 멘토링
===

사전 질문
---

멘토링 진행 과정
---

- 현재 진행방향은?
- 역할분담
    - 코드리팩토링
    - 파이토치 라이트닝 시도
    - AEDA 시도
    - RBERT를 이용하여 Entity 토큰 모델 생성
    - LSTM 모델 추가
- zero-shot으로 시도해 보았는가?
    - 대회 데이터셋을 학습하지 않은 pre-trained 모델을 그대로 불러와서 사용해 보았는가?
    - 이러한 방식으로 base line을 정해보는 것도 좋다
- Test 데이터셋에 대해서 어떻게 성능을 높이는가?
    - 그러게 말입니다...
- Data Augmentation 적용
    - KoEDA, AEDA 사용
    - 석민님의 sub obj entity 활용한 Augmentation
- 마지막에 어떻게 모두가 한 것을 잘 조화롭게 합치기 위해서 해야할 것들은 무엇이 있나요?
    - 체감상 시간이 이전 p-stage보다 더 촉박한 느낌
    - 당연히 성능 기준으로 우선순위를 정하라
    - Layer 구성, Augmentation, 학습 방법, hyper parameter 최적화 등
- 팀 레포트 작성 팁
    - 템플릿은 상관이 없다
    - 기록으로 남겼을 때 유의미하고 가치가 있으려면, "실험의 양"이 중요하다
    - 이것이 가장 중요하고 성능이 좋았다는 것을 증명해야 함
    - 결과가 좋지 않더라도 어떤 실험을 해서 결과가 좋지 않았는지를 기록해야 한다
    - 시도를 하기 전, 문제를 정의하고 왜 시도를 했는지에 대한 내용을 언급하고 시작하는 것도 할 수 있다면 좋다
- hyper parameter 최적화
    - greedy search
    - random search
    - 베이지안 optimization(BO)
        - package나 tool 사용 권장
        - bohb(?), bo, hyper band
        - hyper band => 리소스 최적화
        - Ray의 하이퍼파라미터 최적화를 찾아보자
            - 산업에서 Ray는 필수적이니까 꼭 공부해보자
    - ray - GPU 병렬 최적화
    - lr, batch size, loss function 종류 등은 공통적으로 고려하는 편
    - seed, warmup_step, weight_decay, gradient_accumulation_steps, 배치사이즈를 썼다.
- 저번 코드리뷰는 어떠한가?
- 멘토님은 AI를 왜 선택하셨을까요?
    - 전공은 컴공.. BE, FE, Server, Network 등을 다 제외하고 AI를 왜 선택했을까
    - 학부생때 머신러닝 과목 하나만 있었음
    - 취준하면서 갑자기 업계가 뜨면서 혹한 것이 크다
    - 애초에 흥미도 있었다
- 좋아하는 일과 돈이 되는 일의 사이의 고민
    - AI 업계는 그래도 아직 정형화 되어 있지 않은 것 같다
    - 비교적 하고 싶은 일을 연구하고 개발 할 수 있지 않나..
    - 좋아하는 족으로 찾아 갈 수 있을 수도 있다
- 학습시간이 오래걸릴 때, 어떻게 일 해야 하는가?
    - 기본적으로 학습시간을 줄이기 위한 기본은 "병렬처리"
    - "병렬학습" => "분산학습"(?)이랑 같은건가?
    - GPU resource가 많이 필요하고, task를 잘 할당하는 것
    - 한 바퀴가 정상적으로 동작하는지를 먼저 확인하고 나서 전체 Data를 돌려야 한다
        - 작은 사이즈의 toy 예제를 돌려보면서 base line을 구축하는 것
        - 방법을 보고 분석하는 것은 시간이 오래걸리니까, 생각한 모든 방법을 돌리고 나서 결과를 한꺼번에 보면서 정리하는 것도 좋다


동규님 정리
---

프로젝트 기록을 잘 남기는 방법 

 -  많은 실험량이 보이는 레포트는 신뢰도가 높다. 다양한 실험을 시도했음과 그에 대한 결과 분석, 프로젝트 수행과정을 잘 보여주는 것이 레포트의 신뢰도에 많은 영향을 미친다.

 -  실험 계획 설정에 대한 근거를 달아주는 것.  ⇒  Sota 모델의 방법론들을 따라했음. 논문에서 제시한 근거를 설명해주면서 근거를 달면 될듯.

 -  하이퍼파라미터 서치 마지막 시도 좋은 선택일수 있음.

Ray, BOHB (BO + 하이퍼밴드), BO, scheduler, 하이퍼밴드 (⇒ resource를 효율적으로 쓸 수 있게 해주는 애) => (뭔지는 잘 모름...)

 -  GP - 오래걸리지만 좀 더 정확한 결과를 제공

 -  TP 라는 것도 있다고 함.

 -  어쩔수 없지만 random search가 더 유용할때도 있다. search space가 굉장히 큰 경우. 

 -  일반적으로 시도해보는 하이퍼파라미터 유형: Learning rate, Batch size , Weight decay, Optimizer 종류,  Loss function

+  Ray는 현업에서도 정말 많이 씀.  

+  Ray 공부 방법 ⇒ 멘토님은 공홈 정독하셨다고함.  

+  병렬화 성능을 높이는 것의 중요성은 아무리 강조해도 부족하지 않다!