BoostCamp

2021.09.24 - [Week 8] Day 2. Coma

배기니어 2021. 9. 25. 02:55

공부한 내용

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 문제 같은 경우에는 어떤 식으로 해결하면 좋을지 연구가 많이 필요할 것 같다.

나는 윤리적인 개발자가 될 수 있을까??