(특강) 이준엽 - 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 엔지니어 업무 프로세스

  1. 실생활 문제를 ML문제로 Formulation

    • ML 로 해결 가능한 문제인지 파악

  2. Raw Data 수집

    • 크롤링 프로그램 개발하여 데이터 수집

  3. Annotation Tool 개발

    • Labeling 작업을 수행하는 web app 개

    • 새로운 Task에 대한 Annotation tool 기획시 모델에 대한 이해가 필요할 수 있음

    • vue.js / django / mysql / docker

  4. Data version 관리 및 loader 개발

  5. Model 개발 및 논문 작성

    • 기존 연구 조사 및 재현

    • 모델 개선 작업 + 아이디어 적용 -> 논문 작

  6. Evaluation tool 혹은 Demo개발

    • 모델의 Prediction 결과를 채점하는 Web app 개발

    • 모델 특성 파악을 위한 요구사항 발생 -> 모델 발전의 경쟁력이 될 수 있다.

7. 모델 실 서버 배포

사용 기술 스택

Last updated