Full Stack ML Engineer
ML Engineer란?
- Machine learning(Deep learning) 기술을 이해하고, 연구하고, Product를 만드는 Engineer
- Deep learning의 급부상으로 Product에 Deep learning을 적용하고자 하는 수요 발생
- 전통적인 기술의 경우 Research 영역과 Engineering 영역이 구분되지만, Deep learning의 경우 폭발적 발전속도로 인해 그경계가 모호함
Full Stack Engineer란?
Client / Server software를 개발할 수 있는 사람
Full Stack ML Engineer란?
Deep learning research를 이해하고 + ML Product로 만들 수 있는 Engineer
Full Stack ML Engineer의 장단점
- 장점
- 재미있다
- 빠른 프로토타이핑
- 기술간 시너지
- 팀플레이(기술에 대한 이해 == 잠재적 위험에 대한 고려)
- 성장의 다각화
- 단점
- 깊이가 없어질 수 있다
- 시간이 많이 들어간다
ML Product
- 요구사항 전달 : 고객의 요구사항을 수집하는 단계
- 고객사 미팅 or 서비스 기획
- 요구사항 + 제약사항 정리
- ML Problem으로 회귀
- 데이터 수집 : Model을 훈련/평가할 데이터를 취득하는 단계
- Raw 데이터 수집
- Annotation Tool 기획 및 개발
- Annotation Guide 작성 및 운용
- ML 모델 개발 : Machine learning 모델을 개발하는 단계
- 기존 연구 Research 및 내재화
- 실 데이터 적용 실험 + 평가 및 피드백
- 모델 차원 경량화 작업
- 실 서버 배포
- 엔지니어링 경량화 작업
- 연구용 코드 수정 작업
- 모델 버전 고나리 및 배포 자동화
ML Team
일반적으로 프로젝트 매니저 1명, 개발자 2명, 연구자 2명, 기획자 1명, 데이터 관리자 1명으로 구성된다.
- 실생활 문제를 ML문제로 Fromulation
- 고객 / 서비스의 요구사항은 실생활 문제
- Machine learning 모델이 해결 가능한 형태로 문제를 쪼개는 작업 / 가능한지 판단
- 기존 연구에 대한 폭 넓은 이해와 최신 연구의 수준을 파악
- Raw Data 수집
- 웹에서 학습 데이터를 모아야하는 경우도 있음
- Web Crawler(Scraper) 개발해서 데이터 수집
- Annotation Tool 개발
- 수집/제공 받은 데이터의 정답을 입력하는 작업을 수행하는 Web Application 개발
- 작업 속도와 정확성을 고려한 UI 디자인이 필요
- 다수의 Annotator들이 Client를 통해 동시에 서버로 접속
- 새로운 Task에 대한 Annotation Tool 기획시 모델에 대한 이해가 필요할 수 있음
- Data Version 관리 및 Loader 개발
- 쌓인 데이터의 Version 관리
- Database에 있는 데이터를 Model로 Load 하기위한 Loader Package 개발
- Model 개발 및 논문 작성
- 기존 연구 조사 및 재현
- 수집된 서비스 데이터 적용
- 모델 개선 작업 + 아이디어 적용 -> 논문 작성
- Evaluation Tool 혹은 Demo 개발
- 모델의 Prediction 결과를 채점하는 Web Application 개발
- OCR 프로젝트 중 혼자 사용하려고 개발 -> 이후 팀에서 모두 사용
- 모두 사용하다보니 모델 특성 파악을 위한 요구사항 발생 -> 반영하다보니 모델 발전의 경쟁력이 됨
- 모델 실 서버 배포
- 연구용 코드를 Production Server에서 사용 가능하도록 정리하는 작업
- File Server에 코드 + Weight 파일 압축해서 Version 관리
- Production Server에서는 Python Worker에게 MQ를 통해 job을 전달
Roadmap
- 각 스택에서 점점 더 Framework의 발전이 점점 더 Interface가 쉬워지는 방향으로 발전
- 처음부터 너무 잘 만들려 하지말고 최대한 빨리 완성하라
- 전문 분야를 정하라
- 새로운 것에 대한 두려움 없애기 위해 반복적으로 접하라
AI & Ethics
AI & Individual
- Bias Source
- Defining “Target Variable” and “Class Labels”
- Training Data: Labeling Examples
- Training Data: Collection
- Feature Selection
- Proxies (Unintentional discrimination)
- Bias Metrics
- Privacy
- Singapore TraceTogether App
- Privacy Issues of Contact Tracing Apps
AI & Society
- AI used in important decision making
- Housing
- Health insurance
- Credit rating
- Employment
- Legal decisions
- Amplified bias
- Racial
- Gender
- Education
- Regions
- Social Inequality에서의 AI는 더 나빠지게 하는 경향이 있다.
- Misinformation
- Deepfakes
- Manipulation Detection
- Identity Prediction
AI & Humanity
- Technology for Health
- AI를 사용하면 CO2 배출량이 더 많이 나온다
- Electricity Systems
- Forecasting PV Power Generation
- Transportation
- Low-emission Transportation
- Buildings & Cities
- Hot Water Consumption
- Urban Computing
- Industry
- DeepMind Uses AI to Reduce Energy Use
- Farms & Forests
- Climate Prediction
AI 시대의 커리어 빌딩
Careers in AI
- 학교를 가야하나 회사를 가야하나
- 논문을 쓰고 싶다면 "학교"
- 상품/서비스를 만들고 싶다면 "회사"
- AI for X : AI로 기존 비즈니스를 더 잘하려는 회사
- AI centric : AI로 새로운 비즈니스를 창출하려는 회사
- Engineering : AI/ML 모델링은 팀 전체 업무의 일부
Variety in AI engineering positions
- AI engineer
- 모델을 학습하고, 모델을 실행할 수 있는 컨테이너를 작성해 모델 서버팀에 전달
- 논문 읽고 새 아이디어 얻어서 모델 개선
- 데이터 전처리 및 오류 수정
- AI engineer + AI researcher
- 고객 문의/컴플레인이 들어오면 데이터/모델 개선 및 배포
- 어떻게 evaluation을 해야 고객 문의/컴플레인을 조기에 탐지하고 고객 만족도를 가장 잘 측정할 수 있는지 고민함
- 풀어내는 문제를 학계에서 관심있는 형태로 포장하여 논문화
- AI researcher
- 논문 읽기
- 세미나 하기
- 프로토타이핑
- Data engineer + AIOps
- 고객은 AI 모델링팀
- Kubernetes 및 Kubeflow 등을 활용한 ML 워크플로우, 인프라스트럭쳐 관리
- 다양한 소스로부터 들어오는 데이터의 통합 및 버저닝, 파이프라인 자동화, 관리 등
- Manager
- 온종일 내외부 미팅 많음
How to start my AI engineering career
1. Understand yourself
2. AI 관련 인턴십/아르바이트를 적극 권장
3. AI competition (ex: 캐글)
4. 최신 논문 재현
5. 컴퓨터 공학에 대한 기본적인 이해와 소프트웨어 엔지니어링 능력
6. 최신 기술을 빠르게 습득하기 위한 영어 독해 능력
7. 공통적인 Soft-skills
- Grit: 어려운 문제를 많이 풀어야하기 때문에 끈기 있는 자세를 가지는 것이 가장 중요
- Humility: 스스로의 능력에 만족하지 않고 끊임없이 공부를 해야함
- Passion: 엄청나게 빠른 속도로 발전하는 기술을 즐길 수 있는 열정이 있어야 함
- Teamwork: 다른 사람들과 협력해서 문제를 풀어야 함
- Kindness: 세상을 이롭게 하는 기술을 개발해야하기때문
8. 실력을 보여줄 수 있는 "스펙"의 예시
- Coding competitions: ICPC 등 규모가 큰 프로그래밍 대회에서 입상 경력이 있는지
- AI competitions: Kaggle 등 규모가 큰 AI 관련 대회에서 수상한 경력이 있는지
- Publication record: NeurIPS 등 AI 관련 주요 국제 학회나 워크샵에 1저자로 출판한 논문이
있는지 - 서비스 경험: 경력자의 경우 실제로 라지 스케일 서비스를 다뤄봤으며 그 과정을 주도했는지
- 다른 회사 경력: 다른 AI 관련 회사의 근무 경험과 성과
자연어 처리를 위한 언어 모델의 학습과 평가
언어 모델링 (Language Modeling)
주어진 문맥을 활용해 다음에 나타날 단어 예측
양방향 언어 모델링(Bidirectional Language Modeling)
Deep contextualized word representations (NAACL 2018)
BERT : Bidirectional Encoder Representations from Transformers (NAACL 2019)
GLUE 벤치마크 (General Language Understanding Evaluation)
- 언어 모델 평가를 위한 영어 벤치마크
- 선응이 BERT보다 뛰어난 자연어 이해 모델 등장의 계기
- 자연어 생성 모델의 평가에 활용
한국어 자연어 이해 벤치마크(KLUE : Korean Language Understanding Evaluation)
- 개체명 인식 (Named Entity Recognition)
- 품사 태깅 및 의존 구문 분석 (POS tagging + Dependency Parsing)
- 문장 분류 (Text classification)
- 자연어 추론 (Natural Language Inference)
- 문장 유사도 (Semantic Textual Similarity)
- 관계 추출 (Relation Extraction)
- 질의 응답 (Question & Answering)
- 목적형 대화 (Task-oriented Dialogue)
학습 회고
1. Full Stack ML Engineer에 대한 내용은 어제 수강한 특강 내용과 겹치는 부분이 많아서 얻은 부분은 없었던 것 같다.
2. AI 윤리에 대한 내용은 거의 당연한(?) 내용이었던 것 같아서 도움이 되었다기보다 몰랐던 사례들을 알게되어 재밌었던 것 같다.
3. 커리어 빌딩에 대한 특강은 어떤 Position이 어떤 역할과 일을 하는지 알 수 있게 해준 강의였던 것 같다. 마지막에 어떤 스펙과 skill을 가져야하는지 알려주어서 좀 더 도움이 되었다.
4. 컴퓨터 비전을 공부하고 있는데 자연어 처리 특강을 들으려니 하나도 눈에 안들어온다. 거의 다 흘려들었다.
'Boostcamp AI Tech' 카테고리의 다른 글
[Boostcamp Day-37] Object Detection Pstages (0) | 2021.09.30 |
---|---|
[Boostcamp 8주차] 피어세션 (0) | 2021.09.24 |
[Boostcamp Day-35] 특강 - Part 1 (0) | 2021.09.23 |
[Boostcamp 7주차] 피어세션과 학습 회고 (0) | 2021.09.17 |
[Boostcamp Day-34] Computer Vision - 3D Understanding (0) | 2021.09.17 |