(특강) 이준엽 - 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