일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 네이버 부스트캠프
- 코딩테스트
- 부스트캠프 회고
- 파이썬 프로그래머스
- 양과늑대
- 프로그래머스 레벨1
- 카카오코테
- 파이썬 카카오코딩테스트
- 부캠
- 프로그래머스LEVEL1
- 프레임워크란?
- 카카오 코딩테스트
- 도커연결오류
- Cannot connect to the Docker daemon at unix
- 프로그래머스
- 파이썬
- 프로그래머스 레벨3
- 부스트캠프AITech
- 부스트캠프
- 파이썬 양과늑대
- 프로그래머스 레벨2
- 프로그래머스 파이썬
- 프로그래머스 양과늑대
- docker시작하기
- 도커오류
- level1
- 카카오 파이썬
- 파이썬 재귀함수
- 라이브러리란?
- 카카오코딩테스트
- Today
- Total
코린이의 공부일기
[Boost Camp] 09_24 특강 본문
ML Engineer 란 ?
Machine learning의 기술을 이해하고 , 연구하고 Product 을 만드는 Engineer이다.
Deep learning의 급부상으로 Product에 Deep learning을 적용하고자 하는 수요가 발생했다.
폭발적인 발전속도로 인해 Researcher와 Enginner의 경계가 모호하다
(연구와 동시에 Product을 개발)
그렇다면 Full stack ML Enginner 란 ?
Deep learning research 을 이해하고 ML Product로 만들 수 있는 Enginner이다.
+ Apple Job Description
'코딩을 잘하고, 창의적이고, 다양한 조직의 사람과 협업할 수 있고, 새로운 기술을 배우는 것을 즐기는 개발자'
Full stack engineer은 상태가 방향성이라고 생각!
모든 Stack을 잘 다루려는 방향으로 가고있다면 Full stack engineer
기준을 세우자면 내가 만들고 싶은 Product을 시간만 있다면 모두 혼자 만들 수 있는 개발자
Pros of Full stack ML engineer
-ML 모델의 빠른 프로토타이핑
-기술간의 시너지를 줄 수 있다. -> 하나의 서비스로 합쳐지는 기술들, 연결되는 부분에 대한 이해가 중요하다.
(연결되는 Stack에 대한 이해가 각 Stack의 깊은 이해에도 도움을 준다)
-연결에 대한 고려가 들어간 개발 결과물은 팀의 불필요한 로스를 줄여준다.
-팀플레이 하는 경우에 서로 갈등이 생길 법한 부분에서의 기술적인 이해가 매우 도움이 된다.
-성장이 다각화된다. -> 연구자 +개발자+기확자가 모인 회의에서 모든 내용이 밑거림의 된다.
Cons of Full stack ML engineer
-하나의 스택에 집중한 개발자 보다는 해당 스택에 대한 깊이가 없어질 수 있다.
하루가 다르게 ML이나 CS에서 많은 기술과 논문이 나오기 때문에 모든 Stack을 공부하는데에 따라잡기가 어렵다.
ML Product
1. 요구사항 전달
* 고객사 미팅(B2B) or 서비스 기획(B2c)
*요구사항 + 제약사항 정리 ex) 1초에 몇개의 이미지가 처리되야한다.
*ML Problem 으로 회귀
실생활의 문제를 ML이 풀 수 있는 형태의 문제로 회귀하는 작업
2. 데이터 수집
*Raw 데이터 수집
-> 요구사항에 맞는 데이터 수집, Bias 없도록 분포를 주의, 저작권 주의
*Annotation Tool 기획 및 개발
-> 데이터에 대한 정답 입력 툴, 모델의 input,output 고려
*Annotation Guide 작성 및 운용
-> 간단하고 명확한 Guide 문서를 작성하도록 노력하고 업데이트해야한다.
3. ML 모델 개발
*기존 연구 Research 및 내재화
-> 논문을 찾아보고 이해하는 단계, 풀려고하는 문제와 적절한 연구를 재현하여 내재화
*실 데이터 적용 실험 +평가 및 피드백
-> 수집된 데이터 적용, 평가 및 모델 수정
* 모델 차원 경량화 작업
-> 빠르게 진행되야한다는 제약사항이 있다면 모델 경량화 작업이 필요하다.
4. 실 서버 배포
* 엔지니어링 경량화 작업
-> TensoRT 등의 프레임워크 적용
* 연구용 코드 수정 작업
-> 배포용 코드와 Interface을 맞추는 작업
*모델 버전 관리 및 배포 자동화
-> 모델 배포 주기 결정 & 업데이트 배포 자동화 작업
Full stack ML Engineer in ML Team
1. 실 생활 문제를 ML문제로 Formulation
-ML 모델이 해결 가능한 형태로 문제를 쪼개는 작업/ 가능한지 판단하는 작업
-기존 연구에 대한 폭 넓은 이해와 최신 연구의 수준을 파악해야하는 작업
2. Raw Data 수집
-웹에서 학습데이터를 모아야하는 경우가 있다.
-Web Crawler(Scraper) 개발해 데이터 수집
3.Annotation tool 개발
-수집/ 제공 받은 데이터의 정답을 입력하는 작업을 수행하는 web application 개발
- 작업 속도와 정확성을 고려한 UI디자인이 필요
-다수의 Annotator 들이 Client를 통해 동시에 서버로 접속, Annotation 작업을 수행
-새로운 Task에 대한 Annotation tool 기획시 모델에 대한 이해가 필요할 수 있음
4.Data version 관리 및 loader 개발
-쌓인 데이터의 version 관리
-Database에 있는 데이터를 Model로 Load 하기위한 Loader package개발
5. Model 개발 및 논문 작성
-기존 연구 조사 및 재현
-수집된 서비스 데이터 적용
6. Evaludation tool 혹은 Demo 개발
모델의 Prediction결과를 채점하는 Web application 개발
OCR 프로젝트 중 혼자 사용하려는 개발 (정/오답 케이스 분석) -> 이후 팀에서 모두 사용
7. 모델 실 서버 배포
Roadmap : Stackshare
Full stack ML Enginner가 되기 어렵나요?
- 쉽다고 할 수는 없지만 하지만
각 Stack에서 Framework의 발전이 점점 더 interface가 쉬워지는 방향으로 발전하기 때문에 초~중급수준의 구현은 쉬워질 것으로 예상된다.
중요한 점 !
모든 Stack은 공통적으로 시작이 가장 어렵다.
익숙한 언어 + 가장 적은 기능 + 가장 쉬운 Framework로 시작하는 것이 좋다
처음부터 너무 잘 만들려고 하지말고 최대한 빨리 완성하는 것이 중요하다
모든 Stackmm의 안티 패턴을 모두 신경써서 개발하다가 포기하기보다는 완성에 집중하는 것이 중요하다.
Full stack engineer라 하더라도 전문분야를 정하는 것이 중요하다.
모든 Stack에서의 초 ~중급 개발수준을 계속 유지하는 것은 좋지 않은 선택이다.
그리고 새로운 것에 대한 두려움을 없애기 위해 반복적으로 접해보자(유투브, 배우고 싶었던 Stack에 대한 문서)
Ml Enginner라면, 하나의 논문을 구현하고, Demo page을 만들어 보는 것이 좋다.
회고
이번 특강은 Full stack ML engineer가 팀에서 어떤 역할이고, 어떤 일을 하는지 전체적으로 알 수 있는 기회였다.
Full stack ML engineer는 딱 정해진 Position이라기 보다는 다른 engineer와 조금 다르게 여러 Stack들을 같이 공유하고 실행하며 팀 내의 전반적인 연결을 담당하는 것 같았다.
팀에서 정말 중요한 역할인 만큼 여러 Stack들을 공부해야하니 많은 시간과 노력이 필요한 것 같다.
다음 주 부터는 새로운 Object detection 프로젝트와 따로 진행하고 있는 C-GAN 프로젝트를 진행하는데
두 마리 토끼를 잡기위해 잠을 줄이고 약 3 주동안 빡세게 달릴예정이다!
+(추가적으로 정처기 실기까지 보니,,,)
이렇게 노력한 만큼 내년 초에는 멋진 결실을 맺을거라 생각하며
모두 화이팅 (◍•ᴗ•◍)❤
'BOOST CAMP_정리' 카테고리의 다른 글
[Boost Camp]MMDetection & Detectron2 (0) | 2021.09.29 |
---|---|
[Boost camp] 2 Stage Detectors (0) | 2021.09.28 |
[Boost camp] 09_23 특강 (0) | 2021.09.23 |
[Boost Camp] U stage_ Conditional generative model (0) | 2021.09.15 |
[Boost Camp] U.stage_Object detection (0) | 2021.09.12 |