--- 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 공부 방법 ⇒ 멘토님은 공홈 정독하셨다고함. + 병렬화 성능을 높이는 것의 중요성은 아무리 강조해도 부족하지 않다!