(특강) 이준엽 - Full Stack ML Engineer
학계/업계에서 ML Engineer 로 일하면서 느꼈던 저의 짧은 경험과 생각을 나누는 강의입니다.
Full stack ML Engineer 란 무엇인지?
ML Engineer 가 팀에서 어떤 역할을 하는지?
ML Team 은 어떤 사람들로 구성되어 있는지?
ML Engineer 가 되려면 어떤 기술을 갖추면 좋은지 에 대한 생각을 전합니다.
ML 엔지니러란?
- ML(DL) 기술을 이해하고, 연구하고, 제품을 만드는 엔지니어 
- Research영역과 Engineering 영역이 구분되지만 빠르게 발전한 기술이다보니 그 경계가 모호하다. 
Full Stack Enginner란?
말 그대로 A-Z 를 다 할 줄 아는 사람을 의미안다고 생각한다.
- Web... Front-Back End를 모두 할 줄 아는 사람 - java, spring, js, sql, html, css etc 
 
Full Stack ML Enginner란?
Deep learning research를 이해하고 + ML Product로 만들수 있는 엔지니어

두 가지를 모두 경험해 본 나는 서로의 입장을 이해할 수 있다
ML Product가 만들어지는 과정

- 요구사항 전달 - 고객사 미팅 or 서비스 기획 
- 요구사항 + 제약사항 정리 - 기능 상세 요구 사항 정리 
- 제약사항 정리 
- 일정 정리 
 
- ML Problem으로 회귀 - 실생활의 문제를 ML 문제로 회귀하는 작업 
 
 
- 데이터 수집 - Raw 데이터 수집 - 요구사항에 맞는 데이터 수집 
- Bias 없도록 분포 주의 
- 저작권 주의 
 
- Annotation Tool 기획 및 개발 - 데이터에 대한 정답 입력 툴 
- 모델 Input / Output 고려 
- 작업속도 / 정확도 극대화 
 
- Annotation Guide 작성 및 운용 - 가이드 라인 작성 
 
 
- ML 모델 개발 - 기존 연구 Research 및 내재화 - 논문을 찾아보고 이해하는 단계 
- 적절한 연구를 재현하여 내재화 
- 검증 단계 
 
- 실 데이터 적용 실험 + 평가 및 피드백 - 수집된 데이터 적용 
- 평가 및 모델 수정 
 
- 모델 차원 경량화 작업 - Distillation 
- Network surgery 
 
 
- 실 서버 배포 - 엔지니어링 경량화 작업 - TensoRT 등의 프레임워크 
- Quantization 
 
- 연구용 코드 수정작업 - 연구용 코드 정리 
- 배포용 코드와 Interface를 맞추는 작업 
 
- 모델 버전 관리 및 배포 자동화 - 모델 버전 관리 시스템 
- 모델 배포 주기 결정 & 업데이트 배포 자동화 작업 
 
 
ML Team

- 보통 겸임하기 마련이다. 
풀스택 ML 엔지니어 업무 프로세스
- 실생활 문제를 ML문제로 Formulation - ML 로 해결 가능한 문제인지 파악 
 
- Raw Data 수집 - 크롤링 프로그램 개발하여 데이터 수집 
 
- Annotation Tool 개발 - Labeling 작업을 수행하는 web app 개 
- 새로운 Task에 대한 Annotation tool 기획시 모델에 대한 이해가 필요할 수 있음 
- vue.js / django / mysql / docker 
 
- Data version 관리 및 loader 개발 
- Model 개발 및 논문 작성 - 기존 연구 조사 및 재현 
- 모델 개선 작업 + 아이디어 적용 -> 논문 작 
 
- Evaluation tool 혹은 Demo개발 - 모델의 Prediction 결과를 채점하는 Web app 개발 
- 모델 특성 파악을 위한 요구사항 발생 -> 모델 발전의 경쟁력이 될 수 있다. 
 

7. 모델 실 서버 배포

사용 기술 스택

Last updated
Was this helpful?
