[DAY 27] 마스터클래스 - 이활석 마스터
- OCR 분야로 오신지 얼마 안되어서 성과를 내셨는데, 짧은 기간동안 학습 효과를 올린 특별한 방법?
- 6개월 all in
- GPU, Data, … 등등이 준비되어 있어야 함
- naver deview에 6개월간의 방법론을 올려놓았음
- 손발이 맞는 똑똑한 팀원
- AI 분야의 신입 엔지니어에게, 이것만큼은 꼭 갖췄으면 한다는 역량?
- 실력(모델링, 엔지니어링 등의 소양)
- 러닝커브(얼마나 단기간 동안에 새로운 것을 익혔을 때, 빠르게 수행할 수 있는가?)
- AI는 빠르게 발전하기 때문에, 내가 배운 것을 너무 고수하지 않고, 빠르게 익혀내는 능력이 중요
- 이러한 경험을 이전에 해본적이 있는지, 그러한 자세를 가지고 있는지?
- 기본기가 튼튼하면 빠르게 익힐 수 있음
- AI의 기본기는 python등의 코딩실력, 수학, 버릴 수 있는 마음(이전까지 했던 것을 놓고 다른 것으로 넘어갈 수 있는 마음)
- 제품화에 대한 이야기를 많이 하시는데요, AI가 제품이 되기 위해서는 어떤 것이 고려되어야할까요?
- 수학인식기 같은 예시에서, 사실은 그 전에 아이디어를 낼 때부터 얘기를 많이 한다.
- 두 가지의 교집합을 잘 찾아야함
- 기술적으로 가능한 프로젝트인가? (예산과 시간을 고려)
- 비즈니스 적으로 의미이있는 프로젝트인가?
- 주변상황에 민감해야함(기술팀은 기술적인 주변상황에 민감해야하고, 비즈니스하는 사람도 비즈니스 면에서, 동향에 민감해야함)
- 또한, 서로가 서로의 상황을 이해해야함
- 학습 데이터셋 담당자의 경우에는 개발자가 담당? 따로 이 일만을 담당하는 포지션이 있는가?
- 아직 개발팀의 규모가 크지 않으므로, 대부분은 개발자가 담당하고, 개발자가 데이터셋 ~ 서빙 모두 다 하는 경우가 많고, 팀이 커지면 세분화 된다.
- 자체개발을 안하는 경우도 있음(그럼 PM 역할만 한다.)
- 강의를 보고 모델 엔지니어링에 관심이 생겼다. 어떤 부분을 중점적으로 공부하는 것이 좋을까? 어떤 책, 강의?
- 경량화 관련, 아직 정보가 많이 쌓이지 않아서, 강의나 책으로 나온 것이 없다.
- 모델 엔지니어링 업무가 많이 변화
- 버전업이 굉장히 빠르게 일어나고 있다. pytorch, tensorflow가 아주 빠르게 변화
- 이러한 현상이 모델 엔지니어링 관련해서 비슷하게 일어나고 있다.
- 부캠에서 강의하지 않는 내용 중에 모델링 외에 당장 어떤 것을 배우는 것을 추천하는지? 또 이런 것을 배울 때 스스로 공부하는 경우, 회사에서 직접 일하면서 배우는 것과는 많이 다를텐데, 이러한 갭을 채우는 방법?
- 개발능력을 키우기
- 지금은 모델링을 잘하는 사람을 뽑으니까, 모델링만 잘해도되는데, 조만간에 모델링 하는 사람이 많아지니까, 모델링 외에 다른 것도 배워놓는 것이 좋을 것이다.
- FE, BE 대용량 데이터처리 쿠버네틱스, Hadoop 같은 거 해보기를 추천!
- 회사에서도 지원자들이 했던 것들이 회사가 추구하는 것과 다르다는 것을 알 수 있음
- 그래도 무언가 스스로 공부하고 오는 사람이 더 빠르게 1인분을 할 수 있으므로, 뭐든 해보기!
- 직접 해보면서, 스스로를 회사에 fine tuning!
- AI 개발팀 구조에 대해 배웠는데 궁금한 점이 생김, 개발팀이 도메인(NLP, CV, Audio) 마다 따로 있는가?
- 따로 있다.
- 요즘은 사용하는 모델이 겹치는 경우가 종종있어서 협업하기도 한다.
- 모델 구조 자체는 비슷해지는 경향이 있다.
- (경력이 아닌)신입으로 AI 엔지니어를 준비하는 경우, 어떤 직무를 맡을 수 있을지?
- 당장 지원자가 와서 기여할 수 있는 부분
- 성장할 수 있는 일을 주는 업무를 주는 편(기회)
- 회사 내, 레거시 코드가 쌓인다… 이를 활용
코드 리뷰
를 시키는 경우 있음 - 익히는 과정데이터 리뷰
- 쌓아놓은 데이터에 대해서 미션을 주면, 분석을 해보고 어떤 문제점이 있는지, 보완점이 있는지, 특이점이 있는지
- 정량평가는 코드 돌려서 나오는 eval
- 정량말고
정성평가
prediction을 보고 문제를 파악하기
- 다른 분야가 없다는 가정 하에, 다 겪어볼 수 있게끔 업무를 주었다.
- 실무에서 데이터 분석을 할 대, 구축된 데이터셋의 크기가 커서 모든 데이터를 고려하지 않고, 샘플링을 할 것 같은데, 적절한 샘플링 크기를 어떻게 정하는지 궁금. 데이터의 크기, 성질 따라 샘플링 사이즈도 다르다면 수학적으로 유의미하다고 통계 내릴 수 있는 사이즈가 있는가?
- NO. 다 면밀히 고려한다.
- 예산과 기간이 정해져있으므로 신중하게 샘플링한다.
- 해당 서비스 분야의 도메인지식, 기술적 의견 등이 활용된다.
- 데이터 크기가 클수록 좋은 성능은 불문율!
- max datasize를 정하고, 이 max dataset을 어떤 data로 채울지가 더 중요
- 작은 모델을 학습시켜보고, 결과가 의도대로 나오는지 확인하고 수정!
- 아직까지는 경험적인 면이 크다. 따라서 유사한 task가 논문에 있으면, 참고하기도 함. 레퍼런스 확실한게 그래도 그나마 보장되어있으므로
- 이전 경험에 따라서, 유사한 경험을 이전에 했을 때, 서비스 딜리버리 한다고 했을 떄, 그 뒤에 분석을 하는 편. 그래프를 뽑아서 수렴하는 커브를 본다.
- 나중에 분석해서 정보를 쌓아놓고, 나중에 새로운 task가 들어왔을 때, 레퍼런스를 참고하여 정의
- 따라서 이 분야는 경험이 중요
- 데이터가 많아지고 줄어듦에 따라서 어떤 변화가 이루어지는지
- 주변 역량을 키우라는 조언을 해주셨는데, 현재 현업에서 ML 엔지니어들이 FE, BE 능력을 가진 비중이 얼마나 되는지 궁금
- 없다.
- 없으니까 이러한 역량도 함께 기르면, 추후 경쟁력을 기를 수 있을 것이다.
- 둘 다 제대로 하는 경우는 희소
- 근데, 둘다 애매하게 할 바에는, 둘 중 하나를 제대로 하는 게 더 좋다고 봄
- 근데 당장은 모델링 하는 사람도 없으니까 모델링만 제대로 해도..
- 검증된 외부 모델을 사용할 때, 구체적 과정을 듣고싶다(외부코드를 사용하거나 개조할 때 저작권이나 상업적 사용 가능여부, 제작자에게 알려야하는지)
- 라이선스
- 회사에서 저작권 굉장히 중요
- 자신에게 필요한 라이센스 몇개는 외우고 있으면 좋다.
- 라이센스 확인하고
- 모델을 가져다 쓸 수 있는지
- 우리가 가진 데이터로 학습이 가능한지
- 학습 코드가 없다면, 학습코드를 짜는데 걸리는 시간과 비용 고려
- 주로 pytorch에서 tensorflow로 변환한다고 하셨는데, 처음부터 tensorflow로 작성하는 경우는 많이 없는지
- 그냥 편해서 pytorch, tensorflow 반반 사용
- pytorch와 tensorflow 변환이 요즘엔 ㄱㅊ
- 어느정도 모델 구조가 안정화되면, 자동으로 변환 가능
- 수동이 아닌 스크립트로 서로 변환 가능
- AI 트렌드를 빨리 캐치할 수 있는 마스터님의 노하우
- 커뮤니티 활용
- 텐서플로우 코리아
- 더 빠르게? 트위터!
- 뉴스레터 (papers with code: 논문과 논문을 잘 구현한 코드, …)
- 경량화된 backbone을 사용했을 떄, …
- 유투버(주요 캐치할만한 논문을 5분내에 설명하는 컨텐츠, 해외에..)
- 커뮤니티 활용
- 마스터님께서 현업에서 서비스향 AI 모델을 개발하면서 직면했던 가장 어려웠던 문제나, 자주 직면한 문제가 있었다면 어떤 문제였는지 그리고 해결한 과정들이 궁금
- 아무 레퍼런스가 없는 상황에서 맨땅에 헤딩하는 과정이 힘들었음
- 팀원 같이 길을 개척해나가는 것이 기억에 남음
- 토론, 커뮤니케이션을 통해서 다같이 이 문제를 어떻게 해결할지 논의
- 그 경험이 쌓이면, 전파하려고 노력함
- 어떤 태스크에 의해 성공했던, 실패했던, 결과를 공유함(덜 고생하기 위해)
- 마스터님께서는 게임회사 그리고 네이버에서 다루었던 AI 분야가 꽤나 다른 분야인 것 같습니다. 이처럼 분야 전환시 적응하는 것에는 어려운 점이 없었는지, 그리고 적용 기술에 대하여 어떻게 따라가실 수 있었는지 궁금
- 어차피 프레임워크는 똑같음
- 본인의 노하우를 쌓을 수 있을 것(스스로 레벨업을 할 수 있는 역량)
- 러닝커브가 좋으면, 다 잘할 수 있다.
- 만약 학사 출신의 신입도 채용을 한다면, 석사출신에 비해 논문경험, 연구 경험이 훨씬 적을 것으로 예상되는데, 학사 출신 신입은 무엇을 보고 채용?
- 석사 출신도 논문경험이 많지 않을 수 있음
- 실제 현업에서 일을 하셨는데 비전공 신입에게 기대하는 개발 역량 또는 AI 기술 역량은 어느정도인지 궁금
- 비전공이라서 감안은 할 수 있겠지만, 결국 1인분 몫을 해야할 것이다.
- 따라서 같은 역량을, 자질을 갖춰야 할 것이다.
- 이번 부스트캠프로 개발을 시작했다면 어떤 역량을 위주로 키워나가는 것을 추천?
- 부캠에서 다양한 도메인을 경험할 것
- 원하는 도메인에 대한 지식을 늘일 것
- 모델링을 한다 하면, 논문을 읽고 구현할 수 있는 능력이 기본! 이거 해볼것!
- p stage를 앞두고 있는 캠퍼들에게 한마디
- 나름대로의 기준을 세우고 목표를 향해 가기
- 주변과 상의하기, 주변 동향을 잘 살피기
- “스스로” 많이 공부하기