공부한 내용
1. Full Stack Machine Learning Engineer
1.1. What is ML Engineer?
• ML(DL) 기술을 이해하고, 연구하고, Product를 만드는 Engineer
• SW Engineer 영역과 ML Researcher 사이의 영역
• Research 영역과 Engineer 영역의 경계가 모호함
1.2. What is Full Stack Engineer?
• client / server SW를 개발할 수 있는 사람 (web application)
• 코딩 잘하고, 창의적이고, 다양한 조직의 사람과 협업할 수 있고, 새로운 기술을 배우는 것을 즐기는 개발자 (Apple)
• 모든 stack을 잘 다루려는 방향으로 가고 있다면 full stack engineer
• 만들고 싶은 product를 시간만 있다면 모두 혼자 만들 수 있는 개발자
1.3. What is Full Stack ML Engineer?
• (Full Stack + ML) Engineer
• Deep learning research를 이해하고 ML product로 만들 수 있는 engineer
1.4. Pros of Full Stack ML Engineer
• 처음부터 끝까지 직접 만드는 재미
• 빠른 프로토 타이핑
- 실제 product처럼 만들어서 보면 다른 느낌
- 의사결정의 트리거가 될 수 있다.
- 프로토타이핑은 협업하기 곤란한 경우가 많다.
• 기술간 시너지
- 각 stack과 stack간 관계의 깊은 이해에 도움
• 팀플레이
- 갈등이 생길법한 부분에서 기술적인 이해가 도움
- 타 개발자의 영역의 잠재적 위험에 대한 고려
• 성장의 다각화
- 회의의 모든 내용이 성장의 밑거름
- 매너리즘 극복
1.5. Cons of Full Stack ML Engineer
• ML 분야의 깊이가 없어질 수 있다.
• 많은 시간 투자가 필요
1.6. ML Product
• 요구사항 전달 -> 데이터 수집 -> ML 모델 개발 -> 배포
• 요구사항 전달
- B2B / B2C 기획
- 요구사항 / 제약사항 정리
- ML Problem으로 정의
• 데이터 수집
- Raw data 수집
- Annotation tool 기획 및 개발
- Annotation guide 작성 및 운용
• ML 모델 개발
- 기존 연구 research 및 내재화
- 실생활 data 적용 / 실험, 평가 / 피드백
- 모델 차원 경량화
• 배포
- 엔지니어링 경향화
- 연구용 코드 수정
- 모델 버전 관리 / 배포 자동화
1.7. ML Team
• 프로젝트 매니저, 개발자, 연구자, 기획자, 데이터 관리자
• 역할을 겸하는 경우도 많다.
1.8. Full Stack ML Engineer in ML Team
• 개발자 겸 연구자 겸 데이터 관리자 겸 ...
• 실생활 문제를 ML problem으로 formulation
• Raw data 수집
• Annotation tool 개발
• Data version 관리 및 loader 개발
• Model 개발 및 논문 작성
• Evaluation tool, Demo 개발
• 모델 배포
1.9. Roadmap
• 익숙한 언어, 적은 기능, 쉬운 framework로 시작
• 처음부터 너무 잘하려고 하기보다는 최대한 빨리 완성하기
• 전문 분야 정하기
• 새로운 것을 반복적으로 접해서 두려움 없애기
• 논문 구현 -> Demo page -> 기능 추가 -> ... 순서로 시작해보기
2. AI & Ethics
2.1. Bias
• COMPAS에서 인종간 bias 존재
• bias는 다양한 부분에서 발생하고, 원인 파악이 어렵다.
• target variable과 class label 정의에 따라서도 bias가 발생한다.
• train data 수집에 따라서도 bias 발생 가능
• feature를 선택적으로 활용해서는 안된다.
• 인종간 자주 사용하는 이름에도 bias가 있다.
- e.g. European American names는 Pleasant attribute를 예측할 확률 높고, African American names는 Unpleasant attribute를 예측할 확률 높다.
- 싱기방기
2.2. Privacy
• Singapore TraceTogether App
- Singapore의 covid-19 contact tracking 서비스
- Bluetooth로 개인 간 접촉 확인
- 개인 정보를 정부에서 관리
2.3. Social Inequality
• AI Now Report에서 AI 기술의 현재와 미래 발표
• AI를 의사결정에 활용
• Racial, Gender, Education, Regions 등에 따른 bias 해결 고민 필요
• 이해관계자들 사이에 이익 / 손해 고려
• Labor 관점에서 AI 도입에 따라 발생할 수 있는 문제
2.4. Misinformation
• Deepfakes와 같은 가짜 정보 주의
• Manipulation Detection 등 연구도 활발
• Identity swap : 얼굴 교체
• Identity prediction : user data 이용해서 user identity를 예측
2.5. AI & Humanity
• 질병 발생 예측에 AI 활용
• AI 모델 훈련으로 인해 기후 변화에 영향
• e.g. BERT 훈련에 미국 대륙 횡단 비행에서 발생하는 양 만큼의 이산화탄소 발생
• AI 활용하여 기후 변화에 대응
3. AI 시대의 커리어 빌딩
3.1. AI를 다루는 회사의 종류
• AI for X : 기존 서비스에 AI 적용
• AI centric : AI 도입으로 새로운 비즈니스 창출
3.2. Variety in AI engineering positions
• AI engineer
- 모델 학습, 컨테이너 작성
- 논문 읽고 모델 개선
- 데이터 전처리, 오류 수정
- 모델 경량화, 최적화
• AI engineer & AI researcher
- 고객 대응, 데이터/모델 개선, 배포
- evaluation 방법 고민
- 논문 작성
• AI researcher
- 논문 읽기
- 세미나
- 프로토 타이핑
- 빠른 논문 재현
• Data engineer & AIOps
- 고객 : AI 모델링팀
- ML workflow, infra 관리
- 데이터 통합, 버전관리, 파이프라인 자동화
• Data engineer & AIOps & AI engineer & AI researcher & AI Manager
- Firefighting
- 매니저 역할
3.3. Trends in AI engineering positions
• AI modeling 외에 엣지를 살릴 수 있는 포지션 찾는 것이 중요
• AI+BE, AI+FE, AI+Research, ...
3.4. How to start
• 자신이 어떤 성향인지 파악하기
• 쉽게 접근할 수 있는 것부터 일찍 시작하고 확장해 나가기
• AI competition 참가
• 최신 논문 재현 연습
3.5. Skills
• 범위를 확장하면서 그 때 그 때 필요한 역량 쌓기
• CS 기본지식
• SW engineering skill
• 최신 기술 이해하기 위한 영어
• Soft-skills
- Grit : 끈기있는 자세
- Humility : 끊임없는 노력
- Passion : 새로운 기술 즐길 수 있는 열정
- Teamwork : 협업 능력
- Kindness : 세상을 이롭게 하는 기술 개발
4. 자연어 처리를 위한 언어 모델의 학습과 평가
4.1. 언어 모델링
• 주어진 문맥 활용해 다음 단어 예측
• 이전 단어 embedding + 현재 단어 embedding -> 다음 단어 예측
4.2. 양방향 언어 모델링 (Bidirectional Language Modeling)
• ELMo (Embeddings from Language Models)
• BERT (Bidirectional Endoder Representations from Transformers)
4.3. 언어 모델의 평가
• GLUE (General Language Understanding Evaluation)
- 언어 모델 평가를 위한 영어 벤치마크
- 자연어 생성 모델 평가
4.4. 다국어 벤치마크
• FLUE : 프랑스어
• CLUE : 중국어
• IndoNLU benchmark : 인도네시아어
• IndicGLUE : 인도어
• RussianSuperGLUE : 러시아어
4.5. KLUE (Korean Language Understanding Evaluation)
• 한국어 자연어 이해 벤치마크
특강만 듣다 보니 교양 수업을 들은 느낌이다.
AI의 사회적, 윤리적인 문제에 대해 들으면서 어떤 생각과 자세로 AI를 공부해야 할 지 생각해보게 되었다.
특히 bias 문제 같은 경우에는 어떤 식으로 해결하면 좋을지 연구가 많이 필요할 것 같다.
나는 윤리적인 개발자가 될 수 있을까??
'BoostCamp' 카테고리의 다른 글
2021.09.23 - [Week 8] Day 1. Comma (0) | 2021.09.24 |
---|---|
2021.09.14 - [Week 7] Day 2. 팀 구성 완료 (0) | 2021.09.15 |
2021.09.13 - [Week 7] Day 1. 컨디션 쏘쏘 (0) | 2021.09.14 |
2021.09.09 - [Week 6] Day 4. - (0) | 2021.09.10 |
2021.09.07 - [Week 6] Day 2. - (0) | 2021.09.08 |