데이터 팀의 역할과 구성원은 누구인가?
- 데이터 팀의 미션
- 신뢰할 수 있는, 신속히 사용 가능한 데이터를 바탕으로 부가가치 생성
- 신뢰
- 데이터의 품질이 보장되지 않으면 데이터를 이용하는 일들이 전부 보장되지 않는다.
- 신속
- 필요할 때 이용 가능 = 데이터가 빠르게 이용 가능해야 한다.
- 부가가치
- 데이터는 본업이 아니다. 그러나 데이터를 기반으로 수요를 올리거나, 회전율을 높여 부가가치를 생성해낼 수 있다.
- 신뢰
- 신뢰할 수 있는, 신속히 사용 가능한 데이터를 바탕으로 부가가치 생성
- 데이터 팀 목표
- 고품질의 데이터를 제공해 정책 결정에 사용 => 결정과학(Decision Science)라고 부르기도 함.
- 데이터 참고 결정(data informed decisions) vs 데이터 기반 결정(data driven decisions)
- = 데이터를 참고하겠다 vs 데이터가 말하는대로 가겠다
- 기본적으로 전자가 좋다!
- 고품질 데이터가 필요할 때 제공해 사용자 서비스 경험 개선
- 데이터 기반 알고리즘을 통해 개선.
- 하지만 사람의 개입/도움이 필요 (human-in-the-loop)
- 고품질의 데이터를 제공해 정책 결정에 사용 => 결정과학(Decision Science)라고 부르기도 함.
- 데이터 활용 순서
- 사이트의 방문 트래픽과 외부 데이터가 생성됨 (이메일, 마케팅 등등)
- 데이터 팀(데이터 엔지니어들)이 모아진 데이터를 데이터 웨어하우스에 모아 놓음
- 데이터 웨어하우스
- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스
- 데이터의 크기에 맞게 DB 선택
- 크기가 커지면 AWS RedShift, 구글 클라우드 BigQuery, 스노우 플레이크나 오픈소스 기반 하둡/스팍 사용 추천 : 모두 SQL 지원.
- 프로덕션용 DB와 별개의 DB임.
- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스
- 데이터 파이프라인 = ETL(Extract, Transform, Load) 시스템을 통해 데이터 형태를 원하는 form으로 변환 후 웨어하우스에 적재
- Airflow 오픈소스 프로젝트. 파이썬 3 기반. (에어비앤비, 우버, 리프트, 쿠팡 등에서 사용)
- AWS와 구글클라우드에서도 지원
- 흔한 데이터 소스의 경우 SaaS(Softare as a Service) 사용 가능 (ex)FiveTran, Stitch Data, ...)
- 데이터 웨어하우스
- 비즈니스 인사이트를 도출해 냄 (데이터 분석팀 / 데이터 애널리스트 팀) - 시각화 작업
- 데이터 분석이란?
- 회사와 팀별 중요 지표(metrics) 정의. 대시보드 형태로 시각화(visualization)
- 이외 데이터와 관련한 다양한 분석/리포팅 업무 수행
- 시각화 대시보드란?
- 중요한 지표를 시간의 흐름과 함께 보여줌.
- 3A(Accessible, Actionable, Auditable)가 중요
- Accessible : 쉽게 접근 가능해야 한다.
- Actionable : 지표를 보고 무슨 일을 해야할 지 분명히 드러나야 좋은 지표다.
- Auditable : 지표가 맞게 계산되고 있는지 감사할 방법이 있어야 한다.
- 3A(Accessible, Actionable, Auditable)가 중요
- 널리 사용되는 대시보드
- 구글 클라우드 룩커(Looker)
- 세일즈포스의 태블로(Tableau)
- 마이크로소프트 파워 BI(Power BI)
- 오픈소스 아파치 수퍼셋(Superset)
- 중요한 지표를 시간의 흐름과 함께 보여줌.
- 데이터 분석이란?
- (개인화 등을 통한) 제품 서비스 개선.
- 데이터 팀에서의 역할
- 데이터 엔지니어
- 데이터 인프라(데이터 웨어하우스와 ETL) 구축
- 데이터 분석가, 과학자들과 협업을 통해 필요한 툴이나 데이터 제공
- 데이터 분석가
- 데이터 웨어하우스의 데이터 기반 지표를 만들고 시각화 (대시보드)
- 내부 직원들의 데이터 관련 질문 응답
- 필요한 스킬셋 - SQL, 통계적 지식, 비즈니스 도메인에 관한 깊은 지식, 보통 코딩을 하진 않음
- 데이터 과학자
- 과거 데이터 기반 미래를 예측하는 머신러닝 모델을 만들어 고객들 서비스 경험 개선(개인화/자동화/최적화)
- 테스트는 가능하면 A/B 테스트를 수행하는 것이 더 좋음
- A/B 테스트란?
- 온라인 서비스에서 새 기능 임팩트를 객관적으로 측정하는 방법
- 새로운 기능을 런치함으로 생기는 위험부담을 줄이는 방법.
- 먼저 5% 사용자에게만 런치하고 나머지 95%의 사용자와 매출액과 같은 중요 지표를 가지고 비교
- 5% 대상으로 별 문제가 없으면 점진적으로 10%, 20% 정도로 런치 비율을 늘린 후 최종적으로 100%로 런치
- 기존 기능에 노출된 그룹(control) 새로운 기능에 노출된 그룹(test) 2개 그룹으로 나눠 시간을 두고 관련 지표 비교
- 가설과 영향받는 지표를 미리 정하고 시작하는 것이 일반적
- A/B 테스트란?
- 필요한 스킬셋 - 머신러닝/인공지능에 대한 깊은 지식과 경험, 코딩 능력(파이썬, SQL), 통계 지식, 수학 지식, 끈기와 열정. 박사 학위가 도움이 됨.
- 머신러닝 모델링 사이클
- 가설 - (데이터 수집 - 분석 - 모델 개발 - 모델 런치 - 테스트 시작) - 비즈니스 개선(매출증대, 경비 절약)
- 괄호로 묶은 부분을 짧은 사이클로 구성하여 점진적으로 개선함. (폭포수보단 애자일)
- 작은 회사에선 한 사람이 몇 개의 역할을 동시 수행하기도 함
- 데이터 엔지니어
데이터 팀 조직 구조
- 중앙집중 구조 : 모든 데이터 팀원들이 하나의 팀으로 존재
- 일 우선 순위는 중앙 데이터팀이 최종 결정
- 데이터 팀원들간 지식, 경험 공유가 쉬워지고 커리어 경로가 잘 보임
- 현업 부서들 만족도는 상대적으로 떨어짐
- 분산 구조 : 데이터 팀이 현업 부서별로 존재
- 일 우선 순위는 각 팀별로 결정
- 데이터 일을 하는 사람들간 지식/경험 공유가 힘들고 데이터 인프라나 데이터 공유가 힘들어짐
- 현업부서들 만족도는 처음엔 좋지만 많은 수 데이터 팀원들이 회사를 그만두게 됨
- 중앙집중과 분산 하이브리드 모델
- 가장 이상적 조직 구조
- 데이터 팀원들 일부는 중앙에서 인프라적 일 수행, 일부는 현업팀 파견식으로 일하되 주기적으로 일 변경
- 데이터 팀 안에서 커리어 경로가 만들어짐
모델 개발시 고려할 점
- 데이터 과학자는 복잡하더라도 cross validation의 결과가 좋은 모델을 만드려한다. 그래서 모델을 다 만들고 나서는 신경을 꺼버린다. 그러나 엔지니어들은 모델에 대한 테스트를 제대로 하지 않게 된다. 모델을 제대로 알지도 못하고, 해봤자 자신한테 더 도움되는 것은 없기 때문에.
- 즉, 모델을 production에 어떻게 이양(serve)할 건지를 고려해야 한다.
- 모델 개발 시 꼭 기억할 포인트
- 모델 개발부터 최종 런치까지 책임질 사람이 필요하다.
- 모델 개발 초기부터 개발/런치 과정을 구체화하고 소통
- 모델 개발 시 모델을 어떻게 검증할 것인가?
- 모델을 어떤 형태로 엔지니어들에게 넘길 것인가?
- 피쳐 계산을 어떻게 하고, 모델 자체는 어떤 포맷인가?
- 모델을 프로덕션에서 A/B 테스트할 것인가?
- 한다면 최종 성공판단 지표가 무엇인가?
- 개발된 모델이 바로 프로덕션에 런치간으한 프로세스/프레임워크가 필요
- ex1) 트위터 : 데이터 과학자들에게 특정 파이썬 라이브러리로 모델 개발 정책화
- 툴을 하나로 통일하면 제반 개발과 런치 관련 프레임워크 개발이 쉬워진다.
- ex2) AWS의 SageMaker : 머신러닝 모델개발, 검증, 런치 프레임워크
- 검증된 모델을 버튼 클릭 하나로 API 형태 런치 가능
- Google Cloud와 Azure도 비슷한 프레임워크 지원
- ex1) 트위터 : 데이터 과학자들에게 특정 파이썬 라이브러리로 모델 개발 정책화
- 피드백 루프가 필요
- 운영에서 생기는 데이터를 갖고 개선점 찾기
- 검색이라면 CTR(Click Through Rate, 결과가 10개있으면 몇 개를 클릭한 비율. 3개 클릭했음 30% 정도밖에 안 되는 것일 듯.) 모니터링하고 모든 데이터 기록
- 주기적으로 모델 재빌딩
- 온라인 러닝 : 모델이 프로덕션에서 사용되며 계속적으로 업데이트되는 방식의 머신러닝
- 운영에서 생기는 데이터를 갖고 개선점 찾기
데이터 일 관련 교훈
- 데이터를 통해 매출이 생겨야 함.
- 어느 조직이건 회사에서 존재 이유는 매출 창조 혹은 경비 절감이다.
- 데이터 조직의 수장의 역할이 중요하다.
- 다시 한 번 데이터 인프라 구성이 첫 번째라는 점을 명심하되 단기적으로 좋은 결과를 낼 방법을 찾아야 한다.
- 데이터 인프라가 무조건 첫 번째다.
- 데이터 인프라 없이는 데이터 분석이나 모델링은 불가능하다. (성장한 회사 기준)
- 고려점
- 클라우드 vs 직접 구성
- 배치 vs 실시간
- 데이터 품질이 아주 중요.
- 항상 성공 척도(지표)를 처음부터 생각.
- 나름 가설을 세우는 것이 인사이트를 키우는데 큰 도움이 됨
- 지표 계산에 있어 객관성이 중요
- 계산된 지표를 아무도 못 믿으면 큰 문제
- 지표를 어떻게 계산할 것인지, 이걸 다른 사람들에게 어떻게 설명할지 고려
- 가능한 간단한 솔루션으로 시작. 반복 기반의 점진적 개발 방식(애자일)을 채택하자.
'AI > KDT 인공지능' 카테고리의 다른 글
[07/21] Spark 2 (0) | 2021.07.21 |
---|---|
[07/20] Spark (0) | 2021.07.20 |
[06/28] 심층학습 기초2 (0) | 2021.06.28 |
[06/24] 심층학습 기초 (0) | 2021.06.24 |
[06/23] 다층 퍼셉트론 (0) | 2021.06.23 |