1 Mon

TIL

[AI 스쿨 1기] 9주차 DAY 1

Big Data : 데이터의 역할

데이터 팀의 미션

  • 신뢰할 수 있는 데이터를 바탕으로 부가가치 생성

데이터 팀의 목표

  • 고품질의 데이터를 제공하여 정책 결정에 사용

    • 결정과학이라고 부르기도 함

    • 이런 일을 하는 사람을 data analyst 라고 함

    • 데이터 참고 결정을 가능하게함

      • 데이터를 참고해서 어느 길로 나아갈 지 결정하겠다

      • vs 데이터 기반 결정 : 데이터에 의존해서 어느 길로 나아갈 지 결정하겠다

      • 전자가 더 안전하다. 후자는 과거에 없던 데이터가 발생할 경우의 안정성을 보장하지 못함

  • 고품질 데이터를 필요할 때 제공하여 사용자의 서비스 경험 개선

    • 머신러닝과 같은 데이터 기반 알고리즘을 통해 개선

      • 개인화를 바탕으로 한 추천과 검색 기능 제공

      • 하지만 사람의 개입이 반드시 필요

      • ex) 넷플릭스의 추천, 구글의 검색엔진

  • 이러한 것들이 가능하려면 데이터 인프라(또는 데이터 스트럭처)가 필요

    • 데이터 팀의 역할

      1. 데이터 웨어하우스를 짓고 여기에 회사가 필요한 데이터를 저장. 이 때 데이터 파이프라인을 작성한다 라고 한다. 데이터 파이프라인은 데이터 웨어하우스에 데이터를 적재하는 과정. ETL이라고 부르기도 한다. 결국, 다양한 데이터 파이프라인을 만들어서 웨어하우스에 데이터를 적재한다.

      2. 비지니스 인사이트 : 적재되어있는 데이터를 다양한 포맷을 통해 변형 및 시각화 하여 대시보드에 추가한다. 이를 통해 회사 내의 여러 정보들을 제작해서 요구 및 제안한다

      3. Site Services : 웨어하우스에 있는 데이터를 이용해 가설을 설정하고 훈련 데이터로 정의한다. 개인화 등을 통한 제품 서비스를 개선한다.

데이터 팀의 발전

  1. 데이터 인프라 구축

    • 데이터 웨어하우스와 ETL (Extract, Transform, Load)를 의미

    • 데이터 웨어하우스 : 회사에 필요한 모든 데이터들을 저장하는 중앙 데이터베이스

      • 데이터의 크기에 맞게 어떤 데이터베이스를 사용할지 선택

      • 크기가 커지면 Redshift(AWS), BigQuery(google cloud) 등

    • ETL : 소스에 존재하는 데이터들을 데이터 웨어하우스로 복사해오는 코드를 지칭. 보통 파이썬으로 작성

      • E : 외부 데이터 소스에서 데이터를 추출

      • T : 데이터의 포맷을 원하는 형태로 변환

      • L : 변환된 데이터를 최종적으로 데이터 웨어하우스로 적재(주로 테이블 형태)

      • Airflow라는 프레임워크를 많이 사용하며 파이썬 3기반의 코딩이 필요

    • 데이터 인프라의 구축은 데이터 엔지니어가 수행

  2. 데이터 분석 수행

    • 데이터 분석

      • 회사의 팀별 중요 지표를 정의하고 대시보드 형태로 시각화

      • 이외에도 데이터와 관련한 다양한 분석/리포팅 업무 수행

      • 이는 데이터 분석가가 맡는 일임

    • 시각화 대시보드

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

      • 지표의 경우 3A(Accessible, Actionable, Auditable)가 중요

        • Accessible : 지표의 트렌드가 한눈에 알기 쉬워야 함

        • Actionable : 지표의 트렌드를 보고 얻을 수 있는 피드백이 명확해야 함

        • Auditable : 해당 지표가 맞게 도출된건지 검사할 수 있어야 함

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

        • 구글 클라우드의 룩커

        • 세일즈포스의 태블로

        • 마이크로소프트의 파워 BI

        • 오픈소스 아파치 수퍼셋

  3. 머신러닝/인공지능 적용

Big Data : 데이터 팀의 구성원

데이터 팀의 구성원

  • 데이터 엔지니어

    • 데이터 인프라 구축

    • 기본적으로는 소프트웨어 엔지니어

      • 파이썬이 대세. 자바나 스칼라와 같은 언어도 알면 좋음

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

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

  • 데이터 분석가

    • 데이터 웨어하우스의 데이터를 기반으로 지표를 만들고 시각화

    • 내부 직원들의 데이터 관련 질문 응답

    • 필요한 스킬셋

      • SQL, 통계 지식

      • 비지니스 도메인 지식

      • 보통 코딩을 하지는 않음

    • 딜레마

      • 보통 많은 수의 긴급한 데이터 관련 질문들에 시달림

      • 많은 경우 현업팀에 소속 EX) 마케팅 소속 데이터 분석가 => 소속감이 불분명

  • 데이터 과학자

    • 문제에 맞춰 가설을 세우고 데이터를 수집한 후에 예측 모델을 만들고 이를 테스트

    • 테스는 가능하면 A/B 테스트를 수행하는 것이 더 좋음

    • 과거 데이터를 기반으로 미래를 예측하는 머신러닝 모델을 만들어 고객들의 서비스 경험을 개선

    • 개인화 혹은 자동화 혹은 최적화

    • 스킬셋

      • 머신러닝과 인공지능에 대한 깊은 지식과 경험

      • 코딩 능력 (파이썬과 SQL)

      • 통계 지식, 수학 지식

      • 끈기와 열정. 박사 학위가 도움이 되는 이유 중의 하나

    • 훌륭한 데이터 과학자

      • 열정과 끈기?

      • 다양한 경험?

      • 코딩 능력?

      • 현실적인 접근 방법?

      • 과학적인 접근 방법?

        • 지표기반 접근

      • 제일 중요한 것은 모델링을 위한 데이터의 존재 여부

  • 작은 회사에서는 한 사람이 몇개의 역할을 동시에 수행

머신러닝 모델링 사이클

  • 가설 => 반복 ( 데이터 수집 => 분석 => 모델 개발 => 모델 론치 => 테스트 시작 ) => 비즈니스 개선

  • 폭포수 개발방법론 vs 애자일 개발방법론

    • 폭포수 : 요구사항 - 디자인 - 구현 - 증명 - 유지

    • 애자일 : 계획 - 디자인 - 개발 - 테스트 - 출시 - 피드백

    • 폭포수는 한 단계 개발할 때 마다 몇개월씩 걸리는데 애자일은 이를 짧게 짧게 하는 것을 의미

  • A/B 테스트

    • 온라인 서비스에서 새 기능의 임팩트를 객관적으로 측정하는 방법

    • 100%의 사용자에게 론치하는 것이 아닌 작게 시작하고 관찰 후 결정

      • 먼저 5%의 사용자에게만 론치하고 나머지 95%의 사용자 그리고 매출액과 같은 중요 지표를 가지고 비교

      • 5% 대상으로 별 문제 없으면 10%, 20%와 같이 점진적으로 키워 최종적으로 100%으로 론치

    • 위험부담을 줄일 수 있는 장점이 있음

    • control vs test

      • control : 한 그룹은 기존 기능에 그대로 노출

      • test : 다른 그룹은 새로운 기능에 노출

      • 보통 사용자들을 2개의 그룹으로 나누고 시간을 두고 관련 지표를 비교

      • 가설과 영향받는 지표를 미리 정하고 시작하는 것이 일반적

데이터 팀의 조직구조

  • 중앙 집중 구조

    • 모든 데이터 팀원들이 하나의 팀으로 존재

    • 일의 우선 순위는 중앙 데이터팀이 최종 결정

    • 데이터 팀원들간의 지식과 경험의 공유가 쉬워지고 커리어 경로가 더 잘보임

    • 하지만 현업부서들의 만족도는 상대적으로 떨어짐

  • 분산 구조

    • 데이터 팀이 현업 부서별로 존재

    • 일의 우선 순위는 각 팀별로 결정

    • 데이터 일을 하는 사람들간의 지식/경험의 공유가 힘들고 데이터 인프라나 데이터의 공유가 힘들어짐

    • 현업 부서들의 만족도는 처음에는 좋지만 많은 수의 데이터 팀원들이 회사를 그만두게 됨

  • 하이브리드 모델

    • 가장 이상적인 조직 구조

    • 데이터 팀원들은 일부는 중아에서 인프라적인 일을 수행하고 일부는 현업팀으로 파견식으로 일하되 주기적으로 일을 변경

    • 데이터팀 안에서 커리어 경로가 만들어짐

모델 개발시 고려할 점

모델 개발시 데이터 과학자들의 일반적인 생각

  • 데이터 과학자 : 아주 좋은 머신러닝 모델을 만들고 말겠어. 시간이 오래걸리더라도 아주 성능이 좋은 모델을 만들테야. 실제 론칭은 엔지니어가 알아서 하겠지

  • 엔지니어 : 머신러닝 모델을 어떻게 론치할까? 데이터 과학자가 알아서 잘 했겠지

마찰이 생기는 지점

  • 많은 수의 데이터 과학자들은 R을 비롯한 다양한 툴로 모델 개발

  • 하지만 실제 프로덕션 환경은 다양한 모델들을 지원하지 못함

  • 개발/검증된 모델을 생산 환경으로 론치할 때 많은 시간이 걸리고 오류가 많음

  • 결국, 버그 수정에 많은 시간을 쓰고 심한 경우 재개발을 함

모델 개발 시 꼭 기억할 포인트

  • 누군가 모델 개발부터 최종 론치까지 책임져야 한다.

  • 해당 프로젝트 참여자들이 모두 크레딧을 받아야 협업이 더 쉬워진다.

    • 최종 론치하는 엔지니어들과의 소통이 중요

  • 모델 개발 초기부터 개발/론치 과정을 구체화 하고 소통

  • 개발된 모델이 바로 프로덕션에 론치가능한 프로세스/프레임웍이 필요

    • R로 개발된 모델은 프로덕션 론치를 바로 할 수 없음

  • 첫 모델 론치는 시작일 뿐 (Agile 방법론)

    • 운영을 통해 점진적인 개선을 이뤄내는 것이 중요

    • 데이터 과학자의 경우 모델의 개발이 끝이 아니다

  • 결국 피드백 루프가 필요

    • 운영에서 생기는 데이터를 로깅하고 개선점 찾기

    • 주기적으로 모델을 재빌딩

      • 온라인 러닝 => 리얼타임 머신러닝

데이터 관련 교훈

  • 데이터를 통해 매출이 생겨야 한다.

    • 데이터를 통해 직/간접적으로 회사 수익에 긍정적인 영향을 끼칠 것

    • 데이터의 인프라 구성은 반드시 필요

    • 데이터와 매출과의 상관관계를 항상 증명하고 설득할 것

  • 데이터 인프라가 첫번째 스텝

  • 데이터의 품질이 아주 중요

    • 모델링에 드는 시간이 100이면 70은 데이터 클린업에 들어감

    • 데이터의 품질 유지에 노력이 필요

  • 항상 지표부터 생각

    • 무슨 일을 하건 가설을 항상 생각

    • 그렇지 않으면 결과를 보고 생각을 맞추게 된다

    • 지표의 계산에 있어서 객관성이 중요하다 => 신뢰성이 없으면 의미없는 지표

  • 가능하면 간단한 솔루션으로 시작

    • 딥러닝으로 무조건 해결하지 말 것

    • 간단한 논리로 해결할 수 있는지 고민

    • 반복 기반의 점진적인 개발방식 VS 한 큐에 모델 만들기

커리어 이야기

가장 많이 들을 질문들

  • 요즘 뜨는 것?

  • 미래를 대비하기 위해 준비해야 할 것?

  • 커리어가 고착된 것 같다. 무엇을 해야될까?

  • 불안감을 느끼고 선행 학습을 통해 전문성을 갖춰야 한다는 부담, 고민을 가진다

  • 불안감을 느낀 선행 학습은 크게 좋지 않다.

  • 또, 큰 회사에 가더라도 전문성을 쌓을 수는 없다.

Last updated

Was this helpful?