반응형

 

머신러닝 모델을 만드는 가정 하에 데이터 과학자들이 어떤 생각을 하는지 한번 살펴보자.

 

 

 

모델을 만드는 것은 시작일 뿐이다.

그것이 현업에서 어떻게 배포되고 사용되는지에 관심을 가져야지

실제로 내가 만든 머신러닝 모델에 의미가 있는 것이다.

 

 

 

 

데이터 모델 배포 잘 됬어?

 

실제 서비스 엔지니어: "뭐 잘 됬겠지?"

 

이런 마찰이 생기는 원인은 어디서 발생하는 것일까?

 

 

현재도 많은 수의 데이터 과학자들은 R로 데이터 모델을 만든다.

그러나 이것은 실제 서비스에 접붙이기가 쉽지 않다.

 

MLOpes 팀이 생기게된 개념.

(머신러닝 모델의 배포와 운영을 해주고, 그것을 자동화하는 것까지 책임지는 팀)

 

배포를 담당하는 백엔드 엔지니어는 R로 개발된 언어를 받아서

서비스의 java나 python으로 포팅을 하게 되는데, 이것은 2번 일을 하는 것과 다름이 없다.

 

백엔드 엔지니어 론치하다가 현타옴..

 

현재는 이런 모델을 만들 때, 만드는 것에서 끝나는 것이 아니라, 이것을 론치시키는 과정까지

조금 더 길게 스코프를 보는 MLOps 팀이 생기게 된다.

 

MLOps 팀은 개발된 머신러닝 모델을 받아서 이것을 배포하고 운영하는 것까지 책임지게 된다.

예전에는 이 작업을 백엔드 팀이 하고 있었다.

 

 

이런 과정을 담당해주는 프레임워크들도 생겨났다.

AWS의 sagemaker 같은 것들이 대표적이다.

 

 

트위터 같은 경우에는 데이터 과학자들에게 R 사용을 지양하게끔 했다.

파이썬의 특정 라이브러리만 사용해라. - 배포와 운영 과정을 단순화 시킴.

 

AWS - SageMaker와 같이 머신러닝 모델 개발, 검증, 배포를 하나의 프레임워크에서 수행.

 

 

 

모델 개발은 시작일 뿐이다.

운영을 통해 점진적 개선을 이루어야 하는 것이다.

운영하다보면, 예전에 개발된 모델의 성능을 개선해야 한다.(성능이 자연적으로 떨어지기 때문이다.)

반응형
반응형

 

안녕하세요!

코딩교육자 헨리입니다.

 

오늘은 데이터 커리어 분야에서 새롭게 뜨고 있는 데이터 직군에 대해서

강의를 들었습니다.

데이터 엔지니어, 데이터 분석가, 데이터 과학자 이외에도 실제 서비스를 운영하면서

파생된 다양한 데이터 직군들이 있다는 것을 배우게 되었고,

제가 앞으로 나아가고 싶은 길은 왠지 데이터 엔지니어 혹은 ML 엔지니어가 아닐까 하는 생각을 하게 되었습니다.

 

 

아래부터는 강의 요약입니다.

블로그에 노트를 정리하면 쓴 글이므로, 어투가 변경될 수 있는 점 양해부탁드립니다.)

 

 

 

어떤 새로운 직군들 혹은 뜨는 서비스들이 있는가?

# ML 엔지니어 (vs. 데이터 과학자 & 데이터 엔지니어)

 - 근데 JD로 보면, 데이터 과학자 기반 위에 데이터 엔지니어가 약간 더 들어가는 느낌이다.)

# ML옵스 (MLOps)

# 프라이버시 엔지니어: 개인정보 보호

 - 데이터 팀에 속한다고 보기는 어려울 수 있지만, 개인정보 보호에 있어서, 시스템 설계 때부터 생각할 수 있게, 설계해주고, 디자인해주는 직군으로 보면 된다.

# 데이터 디스커버리 서비스

# A/B 테스트 서비스

 - SaaS 형태로 제공되기도 한다.

 

 

MLOps란 무슨일은 하는가?

 # DevOps가 하는 일은?

  -- 개발자가 만든 코드를 시스템에 반영하는 프로세스(CI/CD, deployment)

배포하고 테스트를 계속 돌리고, 배포 후에 정상 동작 모니터링하고, 이슈가 생기면 이슈 해결을 위해 일하는 팀이다.

 

  -- 시스템이 제대로 동작하는지 모니터링 그리고 이슈 감지 시 escalation 프로세스 (On-call 프로세스)

 

 

 # MLOps가 하는 일은?

  -- 앞의 DevOps가 하는 일과 동일. 차이점은 서비스 코드가 아니라 ML모델이 대상

  -- 모델을 계속적으로 빌딩하고 배포하고 성능을 모니터링

   * ML모델 빌딩과 프로덕션 배포를 자동화할 수 있을까? 계속적인 모델 빌딩(CT, Continous Training)과 배포!

   * 모델 서빙 환경과 모델의 성능 저하를 모니터링하고 필요시 escalation 프로세스 진행

 

 

MLOps 엔지니어가 알아야하는 기술

3가지 데이터 직군 도메인이 겹쳐지는 부분이다.

CI/CD - 개발이 진행될 때마다, 계속적으로 빌드하고 테스트하고 배포할 것인가.

 

 

 

프라이버시 엔지니어란 무엇일까?

 # 전체 시스템에서 개인정보 보호를 위한 가이드라인/툴을 제공

  -- 개인정보란? 개인을 식별할 수 있는 정보

 # 이는 데이터 시스템에서 더욱 중요

 # 개인 정보 보호 법안의 징벌 조항이 점점 강화되는 추세

  -- 정보 주체의 권리를 강화하는 방향으로도 변화: GDPR의 프로파일링 거부권

  -- 유럽 연합의 GDPR (General Data Protection Regulation)

GDPR : 개인이 원하면 내 정보를 사용하지 말아라 라고 요청할 수 있다. 도 GDPR 법안의 일부이다.

  -- 미국의 HIPAA (건강보험 이전 및 책임에 관한 법률)

  -- 미국 캘리포니아의 CCPR (캘리포니아 소비자 개인정보 보호 법안)

 

 

데이터 디스커러버리 (Data Discovery)란?

 

데이터가 너무 많아지고, 대시보드가 너무 많아지면, 점점 어떤 데이터 및 대시보드를 봐야할 지 혼란이 생긴다.

어떤 테이블이 있고, 어떤 테이블을 주가 가장 최근에 사용했고, 어떤 차트가 있고, 어떤 대시보드가 있고,

이런 것들을 검색해주는 서비스가 나오기 시작했다.

 

실제로 어느정도 규모가 있는 회사에는 이런 이슈가 다 있었다.

이런 이슈를 해결하기 위해 필요한 서비스가 데이터 디스커버리이다.

 

 

자 이제 지금까지 배운 것들을 요약해보자.

 

 

 

반응형
반응형

안녕하세요

코딩교육자 헨리입니다.

 

 

오늘은 데이터 엔지니어의 여정에 있어서,

다양한 데이터 팀의 직군에 대해 알아보려고 합니다.

 

 

데이터 팀의 직군에는 다음과 같은 직군들이 있습니다.

1. 데이터 엔지니어

2. 데이터 분석가

- 지표/KPI와 시각화 툴

3. 데이터 과학자

- AB 테스트

4. 새로운 데이터 관련 직군

 

어떤 일들을 하고 어떤 스킬셋이 필요하고 어떤 특징들이 있는지 알아 볼 것입니다.

(이하부터는 강의를 정리하는 노트이기 때문에 "~다"로 끝맺음이 있을 수 있습니다.)

 

 

 

데이터 엔지니어가 인프라를 구축해주면,

데이터 분석가가 해당 데이터 웨어하우스의 데이터를 기반으로 지표를 만들고 시각화한다.

이후에 데이터 과학자가 머신러닝 모델을 만들어 인사이트를 도출하며, 서비스를 제공한다.

 

먼저 데이터 엔지니어에 대해서 알아보자

 

데이터 엔지니어의 역할

 

1) 기본적으로는 소프트웨어 엔지니어다

- 파이썬이 대세, 자바 혹은 스칼라와 같은 언어도 아는 것이 좋다.

2) 데이터 웨어하우스 구축

- 데이터 웨어하우스를 만들고 이를 관리. 클라우드로 가는 것이 요즘 추세이다.

  (AWS 의 Redshift, 구글클라우드의 GibQuery, 스노우플레이크)

- 관련해서 중요한 작업중의 하나는 ETL 코드를 작성하고 주기적으로 실행해주는 것이다.

  (ETL 스케쥴러 혹은 프레임워크가 필요하다, Airflow라는 오픈소스가 대세)

* ETL이란 데이터를 전처리하고 적재하는 과정

3) 데이터 분석가와 과학자 지원

- 데이터 분석가, 데이터 과학자들과의 협업을 통해 필요한 툴이나 데이터를 제공해주는 것이 데이터 엔지니어의 중요한 역할 중의 하나.

 

 

데이터 엔지니어가 알아야하는 기술 (1)

 

# SQL: 기본 SQL, Hive, Presto, SparkSQL 등

# 프로그래밍 언어: 파이썬, 스칼라, 자바

# 데이터 웨어하우스

- Redshift / Snowflake BigQuery

# ETL/ELT 프레임워크: Airflow 등을 잘 알고 있으면 Big Plus가 된다.

# 대용량 데이터 처리 플랫폼: Spark/YARN

 

적용 TIP: 스파크 Yarn 사용해보기

 

데이터 엔지니어가 알아야하는 기술 (2)

# 클라우드 컴퓨팅

- AWS

- GCP

- Azure

# 도움이 되는 기타 지식

- 머신 러닝 일반

- A/B 테스트

- 통계

# 데이터 엔지니어 스킬 로드맵

- https://github.com/datastacktv/data-engineer-roadmap 

 

GitHub - datastacktv/data-engineer-roadmap: Roadmap to becoming a data engineer in 2021

Roadmap to becoming a data engineer in 2021. Contribute to datastacktv/data-engineer-roadmap development by creating an account on GitHub.

github.com

- MLOps 혹은 ML Engineer가 다음 스텝이 많이 된다. <- 데이터 엔지니어에서 파생되는 다양한 직군들이 있다.

 

 

 

느낀 점:

데이터 엔지니어로써 필요한 기술 스택을 항상 알고 싶었다.

스파크의 경험은 있지만, Standalone 방식으로 예제 수준만 해보았고, YARN에 대한

경험은 없었다는 것을 알았습니다. 이번 강의를 통해서 스파크와 YARN 프레임워크에 대해서

공부를 해보아야겠다는 생각을 했습니다.

반응형
반응형

실리콘밸리에서 날아온 데이터 분석 커리어 특강

 

안녕하세요.

코딩교육자 Henry입니다~~!

 

Day 2에서 제가 프로그래밍 강의를 하나 신청했다고 말씀드렸는데요.

여기 참고 => https://datacodingschool.tistory.com/240

 

나에게 있어 성장이란?

안녕하세요. 코딩교육자 Henry입니다. 첫인사로 제 닉네임 앞에 코딩교육자라는 말을 넣어보았습니다. 코딩교육자? 무슨의미지 싶어하시는 분들도 있을 것 같습니다. 개발자가 교육자의 길을 걸

datacodingschool.tistory.com

오늘은 그 강의 중 1강을 퇴근하고 몇일동안 듣고 난 뒤, 배운 내용들을 정리하는 시간을 가졌습니다.

 

글 솜씨가 없어, 내용이 투박하게 느껴지는 점 양해부탁드립니다ㅎ

 

 

 

데이터 조직의 비전

- 신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성 <- 에어비엔비 데이터팀의 모토

  • Data is the new oil?
  • 데이터의 중요성이 강조되니 데이터 팀도 어느회사나 인정을 받는다?

아니다! 데이터를 통해 돈을 버는 회사가 아니라면, 내가 원하는 대우를 받지 못할 것이다.

대우받기 위해 데이터를 통해 부가가치를 창출해야 한다.

 

"어떻게 데이터 조직이 회사의 성장과 발전에 기여하는지"

 

여기에 포커스를 맞추어야 한다.

 

 

데이터 조직이 하는일

1. 고품질 데이터를 기반으로 의사 결정권자에게 입력 제공

데이터를 기반으로 한 결정은 현재 일의 최적화를 가능케 하지만, 완전 새로운 일에는 필요하지 않다!

 

2. 고품질 데이터를 기반으로 패턴을 찾아 오류 탐지, 개인화 추천 등을 한다.

공장이라면? 이상 탐지 / 이커머스는 개인화 추천 모델링 등을 한다.

이것이 데이터 과학자들이 하는 일이다.

 

데이터의 흐름과 데이터 팀의 발전 단계

 

데이터 엔지니어를 고용하여, 곳곳에 뿌려진 (회사에 필요한) 다양한 데이터를 수집해서

한 곳(데이터 웨어하우스)에 모아놓는다.

 

이 과정을 흔히 ETL이라고 한다.

혹은 데이터 파이프라인, 데이터 잡이라고도 한다.

보통 파이썬을 많이 쓴다.

 

 

이게 주기적으로 실행되면, 데이터 웨어하우스에 적재가 되기 시작하고,

데이터 분석가들이 이 데이터를 활용하여 지표를 만들어내고, 시각화 한다.

데이터 과학자들은 이것을 활용해서 최적화, 개인화, 공정 개선, 탐지 등을 한다.

 

 

1. 데이터 인프라 구축

일단 데이터를 모아야지.

데이터 웨어하우스에 대해서 알아보자.

 

프로덕션데이터베이스 <(더 큰 개념) 데이터웨어하우스

 

프로덕션은 - 우리 서비스가 온라인 웹이라고 하면, 그 서비스를 운영하는데 필요한 데이터베이스이다.

특징: 응답 속도가 빨라야한다.(EndUser에게 서비스를 빠르게 제공해야하기 때문에)

데이터웨어하우스는 데이터 인프라에서 수집된 다양한 데이터들이 저장되는 곳

 

 

 

프로덕션 데이터베이스(외부고객들) -> 빨라야한다.

데이터웨어하우스(내부직원들) -> 빠르면 좋지만, 더 중요한 것은 처리할 수 있는 데이터의 크기이다.

 

데이터 웨어하우스

- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스(SQL 데이터베이스)

  • 데이터의 크기에 맞게 어떤 데이터베이스를 사용할지 선택한다.
  • 크기가 커진다면 다음 중 하나를 선택

- AWS Redshift, 구글 클라우드의 BigQuery

- 스노우플레이크(Snowflake)

- 오픈소스 기반의 하둡/스파크

- 이 모든 SQL을 지원

 

 

데이터웨어하우스에 적재되는 데이터가 많아지면,

자연스럽게 ETL의 개수도 많아진다.

 

그러면 자연스럽게 이것을 관리하는 포인트를 가져야한다.

 

이때 가장 많이 사용되는 것이 Airflow이다.

 

 

현재는 ETL SaaS가 잘 되어있는 곳이 많이 없어서,

데이터가 많이 않은 초기에는 ETL SaaS를 사용해도 괜찮지만,

이후 처리하는 데이터가 많아지면, 데이터 엔지니어를 고용해서 데이터 웨어하우스 ETL과정을 관리해야한다.

 

 

2. 데이터 분석 수행

 

 

시각화 대시보드를 통해 지표를 보여주어야 한다.

- 보통 중요한 지표를 시간의 흐름과 함께 보여주는 것이 일반적

  • 지표의 경우 3A(Accessible, Actionable, Auditable)가 중요
  • Accessible: 이 지표가 대시보드 형태로 쉽게 접근할 수 있는가.
  • Actionable: 이 지표가 액셔너블 하는가, 올라가거나 내려가면 그 의미가 분명한가. / 이 지표의 변화가 의미하는 것이 분명한가.
  • Auditable: 이 지표가 제대로 계산되었는지 검증이 가능하는가.
  • 중요 지표의 예: 매출액, 월간/주간 액티브 사용자수, ...

- 가장 널리 사용되는 대시보드

  • 구글 클라우드의 룩커(Looker) <- 경제적인 부분이 넉넉히 마련되었다면, 가장 우수한 솔루션이다.
  • 세일즈포스의 태블로(Tableau)
  • 마이크로소프트의 파워 BI(Power BI)
  • 오픈소스 아파치 수퍼셋(Superset) <- 오픈소스이므로 무료이다.

 

3. 데이터 과학 적용

 

 

이제 인프라가 마련되었고, 데이터 분석가들이 지표를 마련해놓았다면,

데이터 과학자들이 새로운 피쳐를 뽑아내는 작업이다.

사용자 경험 개선(추천, 검색 등 개인화)

 

 

 

이 과정에서는 머신러닝이 주로 사용된다.

 

  • 머신러닝(Machine Learning)이란?

- (프로그래밍 없이) 배움이 가능한 알고리즘 -> 블랙박스

 

- 데이터로부터 패턴을 찾아 학습

  • 데이터의 품질과 크기가 중요
  • 데이터로 인한 왜곡(bias) 발생 가능 - 학습 데이터가 한쪽으로 치우쳐저서 들어온 경우. (왜곡 여부, AI 윤리침범 여부)
  • 내부동작 설명 가능 여부도 중요 (ML Explainability)

범주적으로 말하자면, 아래와 같다.

인공지능 >> 머신러닝 >> 딥러닝

 

 

머신러닝의 종류

 

1) 지도 기계 학습(Supervised Machine Learning)

- 명시적 예제(트레이닝셋)을 통해 학습

- 분류 지도 학습(Classification)

이진 분류(Binary)와 다중 분류(Multi-class)

- 회귀 지도(Regression)

 

2)비지도 기계 학습(Unsupervised Machine Learning)

- 클러스터링 혹은 뉴스 그룹핑처럼 주어진 데이터를 몇 개의 그룹으로 분리

 

3)강화 학습(Reinforcement Learning)

알파고 혹은 자율주행

기본적으로 규칙이 정해진 환경에서 잘 동작한다.

자율주행처럼 예외사항이 많은 경우는 아직 발전해야하는 부분이 많다.

 

 

머신러닝 모델을 실제로 배포하는 그림은 아래와 같다.

우선적으로 트레이닝 셋(X,Y)값이 필요하고,

모델을 학습했다면, 해당 모델을 Production한 환경으로 배포를 한다.

응용 프로그램에서 데이터가 발생하면 이 데이터를 모델에 넣어주고, 예측값을 전달하는 것이다.

 

 

 

요즘 뜨고 있다는 MLOps란?

데이터 과학자가 만든 모델을 배포하고, 모니터링 하고, 관리하고

문제가 있다면 재 배포하고, 이런 과정이 복잡해지면, 자동화하는 것을 맡게되는 직군이다.

 

 

느낀 점


아직 1강밖에 듣지 못했지만, 배우는 것이 많았던 시간이었다.

데이터 조직이 하는 일에 대해서 배우면서,
단순 기술을 사용하는 방법보다 더 거시적인 관점에서 데이터 기술을 바라볼 수 있었던 시간이었다.
강의 1/5이 끝났다. 5시간 강의에 거의 1시간짜리 강의였다.

한번에 다 듣지는 못해고, 수강기한이 있는 강의는 아니니까,
천천히 소화시키면서 공부해야겠다!


참! 강의 하나를 더 결제했다.
이번에는 강의가 아닌 스터디이다.

현재 듣고 있는 강의와 동일한 강사님인 한기용 강사님의 스터디가 열렸다!!
2/5일에 시작이라고 하는데, 스터디에서 뒤쳐지지 않도록 지금 듣고 있는 강의는 2월까지는 마무리 하는 걸로ㅎㅎ

 

반응형

+ Recent posts