** 수정중**
데이터 기반 제품 개선(Product Science; 제품 과학)
머신러닝 > 확장 >> 인공지능
머신러닝이란?
: 데이터 기반으로 제품/서비스를 개선하는 것
데이터 기반 제품 개선?
: 머신러닝을 통해 데이터로부터 코딩 없이 패턴을 찾아, 패턴을 바탕으로 미래를 예측하는 것. 이를 기반으로 제품을 사용하는 사용자들의 과거 행동을 살펴보고 개인화, 추천, 검색 등으로 제품/서비스의 기능을 개선하는 것. 혹은 공정 최적화를 통해 비용을 최소화하거나 챗봇으로 반복적인 프로세스에 대한 비용을 최소화하기도 한다.
데이터 과학자의 역할
- 머신러닝 형태의 블랙박스 모델을 만들어서 사용자들의 경험을 개선시킴
- 모든 중요한 문제를 정의하는 것이 우선적인 과정이다. 어떤 문제를 해결할것인지 가설을 세우고, 머신러닝으로 해결하려는 문제가 중요한 문제이며 머신러닝으로 해결할만큼 효과를 낼수있는지에 대해 납득을 하고 납득을 시켜야한다.
이 과정이 통과되면 필요한 데이터를 수집해야 하낟.
훈련에 필요한 데이터를 수집했다면, 비슷한 인풋이 들어왔을때 겨과를 예측할수있는 모델을 만든다 -> 머신러닝 모델
우리가 기대햇던만큼 동작을 하는지 테스트해야한다. 훈련데이터를 수집했을때 훈련데이터 일부를 테스트용으로 남겨두고, 남겨두엇던 데이터로
애자일 방법 사용
이러한 과정을 아주 단순하게 문제를 정의해서 짧은 주기로 사이클링해야한다. 문제를 ㅐㅂ포하는데 ㅇㅅ어서 생각하지 못햇던 이슈를 해결해나가면서 모델을 조금씩 발전시켜야한다 .
제일 중요한 것은 "모델링에 필요한 데이터가 있는지 여부" 이다.
** 머신러닝 편향성
예를 들어, 온라인 강의 결제에 대해 본인의 신용카드가 아닌 도용된 카드, 타인의 신용카드를 사용하는 것을 방지하기 위해 만들어진 Fraud Payment Detection 모델의 경우를 생각해보자.
중국에있는 ip들로부터 다수의 사기 결제건이 있음을 발견했는데,
이 때문에 실제로 중국에서 본인 신용카드로 강의를 결제한 건에 대해서도 [중국 결제 = 사기] 라는 Machine Learning Bias가 발생할 수 있다.
=> 여기서 윤리적인 문제가 발생할 수 있다.
머신러닝 (Machine Learning)
: 구체적으로 프로그래밍을 하지 않고 배울 수 있는 능력을 컴퓨터에게 주는 분야의 연구
범용적인 블랙박스
- 데이터의 예를 줌으로써 모델이 알아서 분류해줄 수있게 하는 것.
- 예제로 주어진 데이터로부터 '배움'이 가능한 기계의 개발
<머신러닝 종류>
1) 지도 (기계) 학습 (Supervised Machine Learning)
: 정답이 주어진 학습
- Classification (Binary/Multi-class)
- Regression (Continuous 종속 변수)
** Label(Target) Field
: 모델이 최종적으로 예측해야 하는 필드
- 레이블 필드가 있다면 지도학습으로 분류된다.
** Feature Engineering
: 훈련 데이터셋에 문자가 있는 경우 전부 숫자 형태로 바꿔줘야 한다. 이러한 수치를 조합해서 새로운 필드를 만들어낼수도 있다.
즉, 주어진 훈련 데이터셋을 그대로 사용하는 것이 아니라 좀 더 사용하기 쉬운 형태로 한 번 더 convergion 하는 것이다.
** 지도 기계학습의 프로세스
-> 내가 선택한 학습 알고리즘으로 분류하는 방법을 데이터에서 학습한다.
->
-> 추론/예측한다 : 만들어진 모델을 배포하고 API 형태로 내보낸다.
-> 머신러닝 모델의 출력이 예측된 값으로
2) 비지도 (기계) 학습 (Unsupervised Machine Learning)
: 명확한 정답은 없지만 알아서 적당히 분류해줘야 하는 학습
- Clustering
3) Semi-supervised Machine Learning
: 지도 학습과 비지도 학습의 중간 단계
- Language Model (ex. GPT)
Q. 언어모델을 어떻게 훈련시키고 빌드하는 것일까?
A. 문장이 주어지면, 해당 문장을 context window라는 형태로 좌측에서 우측으로 이동시키면서 다음에 나올 단어를 정답으로 주고 예측하도록 훈련시키다.
4) 강화 학습 (Reinforcement Learning)
: 게임과 같은 환경에서 자동으로 알아서 플레이할 수 있게하는 학습
- 알파고
- 자율주행
딥러닝
: 사람이 직관적으로 해결하기 힘든 문제들(예. 자연어처리, 이미지, 영상 처리 등)을 해결하는 것에 적합한 기술
Transformer
AI > Machine Learning
<머신러닝 vs. 머신러닝 모델>
머신러닝
: 데이터로부터 학습하는 알고리즘
머신러닝 모델
: 그러한 학습의 결과로 만들어진 블랙박스(동작을 하긴 하지만, 동작하는 이유는 알기 힘들다).
머신러닝 모델을 활용해서 실제 예측을 수행한다.
모델 트레이닝(빌딩)
: 머신러닝 모델을 만드는 것
MLOps의 역할
: 데이터 과학자가 만든 머신러닝 모델을 실제 제품/서비스에 사용하기 위해서, 해당 모델을 어딘가에 배포하고 API 형태로 사용할 수 있게 만들어야하는데 이러한 과정의 중요성이 높아져서 이를 전담하는 데이터 직군이 생겼다. 이러한 과정을 수행하는 사람들을 MLOps라 한다.
머신러닝 모델 개발시 고려할 점
데이터 과학자는 머신러닝 모델을 만든다.
해당 모델을 받아 본인들이 운영하는 프로덕션 환경(=운영 환경)에 배포하고 모델을 호출해서 예측된 값을 제품/서비스의 개선에 적용시켜야 하는 엔지니어들은 받은 모델이 어떤 형태로 핸드오버되는지가 매우 중요한 포인트가 된다.
얼마 전까지만 해도 데이터 과학자와 엔지니어(DevOps, BackEnd, 등)사이의 간극이 컷다.
좋은 모델을 만들기만 하면 된다고 생각하는 데이터 과학자들이 대부분이었고, 그들은 모델 배포와 운영의 과정까지 신경쓰지 않았다.
최근까지 머신러닝 모델에 가장 많이 사용되는 프레임워크는 R이었는데, R로 만든 모델은 백엔드 환경에서 쉽지 않았다.
1. 모델의 개발부터 최종적으로 모델을 론치하기까지 책임질 인력이 필요함
2. 모델 개발 초기부터 론치까지 각 프로세스를 구체화하고 서로 적극적으로 소통해야함
3. 개발된 델이 바로 프로덕션에 론치할 수 있는 프로세스와 프레임워크가 필요함
- 모델 개발 언어를 제한 : 표준화를 통해 생산성과 효율성이 올라간다.
- 머신러닝 모델 개발/배포 전용 프레임워크 AWS SageMaker
4. 주기적인 피드백 루프로 개선
MLOps
: 머신러닝 모델의 빌드, 배포, 모니터링 전체의 프로세스를 담당하고 이를 자동화하는 직군
모델을 개발할때 시점의 데이터와 사람들이 사용하면서 변화하는 데이터의 패턴은 다르다.
즉, 머신러닝 모델은 시간이 지나면 훈련데이터와 실제 환경에서의 데이터 차이로인해 다르게 변화한다. 때문에 머신러닝 모델 또한 주기적으로 재빌딩 하는 과정이 필요하다! 이를 자주할수록 해당 과정을 자동화 하는 것도 필요하다
<MLOps vs. DevOps>
DevOps
: 코딩을 하지는 않지만, 개발자가 만든 코드를 테스트하고 배포할 수 있는 형태의 패키지로 만들어서 프로덕션 서버에 배포하고 제대로 작동하는지 모니터링 하는 역할.
- 작업하는 대상 : 개발자가 만든 코드
- 온콜 On-call 수행
- 서비스의 안정성 측면에서 매우 중요함
- CI(Continuous Integration) : 개발자가 코드를 변경할때마다 테스트를 돌려서 새로 체크인된 코드가 문제 없음을 확인하는 과정
- CD(Continuous Delivery/Deployment) : CI가 문제없이 끝난 코드를 프로덕션 서버에 배포
MLOps
: 머신러닝 모델을 오프라인 테스트하고 결과가 좋으면 프로덕션 환경에 배포하고 API 서버 내부에 넣는다. 이 후, 간단한 테스트를 진행하고 지속적으로 Latency를 모니터링한다. 문제가 있다면 롤백하고 escalation 프로세스 진행한다. Feature 별로 어떤 형태로 분포가 이루어지는지 그래프를 그려서 원래 모델을 빌딩할때 분포와 비교하면서 모니터링하거나 alert 한다.
- 작업하는 대상 : 데이터 과학자가 만든 머신러닝 모델
- Latency(실행시간; 모델이 얼마나 빨리 결과를 리턴하는지) 중요
- Data drift : ML 모델을 만들 때 사용했던 피처의 분포가 바뀌는 현상
- CT (Continuous Training) : 계속해서 주기적으로 훈련데이터 수집해서 모델 빌딩/테스트/배포
머신러닝 사용시 고려할 점
- ML Explainability : 머신러닝 모델이 왜 이렇게 예측했는지 설명할 수 있어야 한다. -> 요즘 의사들의 역할
- 모델에 사용된 데이터에 대한 권리는 누구에게 있는가?
- 모델에 사용되는 훈련 데이터셋의 품질은 데이터 기반 AI의 성능을 결정한다. Garbage IN GArbage Out
- Trustworthy AI
실습 - 코딩 없이 머신러닝 모델 만들어보기 (with. Simple ML for Sheets)