AI Lifecycle
[라이프사이클]
- Data: Data ingestion > Data analytics > Data engineering > to AI
- AI: Model training > Model testing > Model deployment > to Data
[구분]
- Predictive AI: 예측 AI
- Generative AI: 생성형 AI
[Supervised vs. Unsupervised]
- Supervised: Labeled data Classification: 사진에 나온 것이 고양이인지 개인지 구분. 로지스틱 회귀같은 것으로 해결 Regression: 숫자형 변수를 예측하는 회귀. 과거 판매를 바탕으로 제품 매출을 예측. 선형회귀 같은 것으로 해결.
- Unsupervised: Unlabeled data Clustering. 비슷한 특성을 같는 데이터 포인트를 그룹화. 고객인구통계를 사용해 고객 세분화를 결정. k-평균 클러스터링 같은 것으로 해결. Association: 연결로 기본관계를 식별. 식료품 매장의 경우 두 제품의 상관관계를 파악하여 시너지 효과를 위해 서롭 가깝게 배치. 사용자는 연결 규칙 학습 기술, Apriori와 같은 알고리즘을 사용하여 연결문제 해결. Dimensionality reduction: 차원축소. 데이터 세트의 차원 또는 특성의 개수를 줄여 모델의 효율성을 향상. (예)연령, 교통 규정 위반 이력, 자동차 유형과 같은 고객 특성을 결합하여 보험 견적을 생성하는 것. 주요 구성요소 분석(principal component analysis) 같은 방식으로 해결.
위 분류를 기준으로 BigQuery에서 제공하는 모델을 선택하고, 데이터를 입력해서 바로 학습시킬수 있음. (예)구매예측.
- 먼저 로지스틱 회귀, 선형 회귀와 같은 간단한 옵션으로 시작하고 그 결과를 벤치마크로 사용하여 학습과 배포에 더 많은 시간과 컴퓨팅 리소스가 소요되는 DNN, 즉 심층신경망과 같은 더욱 복잡한 모델과 비교하는 것이 좋음.
[BigQuery to Model]
-
Extract, transform, and load data into BigQuery BigQuery에 데이터를 로드하는데 사용할 커넥터가 있는지 확인필요. SQL 조인을 사용하면 기존 데이터 웨어하우스에 다른 데이터 소스를 결합할 수 있음.
-
Select and preprocess features. 특성을 선택하고 사전처리. SQL을 사용해 학습 데이터세트를 생성가능. BigQueryML은 범주형 변수의 원-핫 인코딩과 같은 전처리를 알아서 해줌.
-
Create the module inside BigQuery CREATE MODEL ecommerce.classification
OPTIONS( model_type=‘logistic_reg’, input_label_cols=[‘will_buy_on_return_visit’] ) AS
-
Evaluate the performance of the trained model SELECT roc_auc, accuracy, precision, recall FROM ML.EVALUATE(MODEL ecommerce.classification)
평가 데이터 세트를 기준으로 학습된 모델의 성능을 평가함. 정확성, 정밀도, 재현율 등 모델이 액세스할 평가 측정 항목을 지정하는 단계.
- Use the model to make predictions SELECT * FROM ML.PREDICT(MODEL ecommerce.classification) 모델 성능에 만족한다면 예측을 위해 방금 학습시킨 모델에 ML.PREDICT명령어를 호출하여 예측과 예측에 대한 모델의 신뢰도를 반환. 결과에서는 라벨 필드의 이름에 predicted가 추가됨.
[BigQuery ML]
- Classification Logistic regression DNN classifier(Tensor Flow) XGBoost AutoML tables Wide and deep NNs
- Regression Linear regression DNN regressor(Tensor Flow) XGBoost AutoML tables Wide and deep NNs
- Other models k-means clustering Time series forecasting(ARIMA+) Recommdendation: matrix factorization Anomaly detection
- ML Ops: ML 실험버전을 프로덕션으로 전환하고, ML모델의 배포, 모니터링, 관리를 도움. Importing TensorFlow models for batch prediction Exporting models from BigQuery ML for online prediction Hyperparameter tuning using Vertex AI Vizertodrkr
[AI development options]
- Pre-trained API: 학습용 데이터가 없는 경우.
- Vertex AI
- AutoML
- Custom training
[Pre-trained API]
- 음성, 텍스트, 언어 API: Natural Language API. 선행 학습된 대규모 언어 모델을 사용해 텍스트에서 인사이트를 도출하고 문장에서 항목과 감정을 인식합니다.(항목, 감정, 문법, 카테고리라는 네 가지 분석 유형)
- 이미지와 동영상 API의 경우 Vision API는 정적 이미지에서 콘텐츠를 인식하고 Video Intelligence API는 동영상에서 모션과 동작을 인식합니다.
- 문서와 데이터의 경우 Document API는 텍스트 추출과 양식 파서와 같은 문서 처리 작업을 수행합니다. 대출, 계약, 조달, 신분 확인 문서 등의 특수한 사용 사례에서도 활용 가능.
- 대화형 AI API의 경우 Dialogflow API는 대화형 인터페이스를 빌드함.
[Vertex AI]
-
프로덕션과 사용 편의성 문제에 대한 Google의 솔루션이 Vertex AI임.
-
Vertex AI는 머신러닝 생태계와 워크플로의 모든 구성요소를 하나로 모든 통합 플랫폼임.
- Vertex AI가 데이터를 준비하고 시간 경과에 따라 대규모로 모델을 생성, 배포, 관리하는 엔드 투 엔드 ML 파이프라인을 제공한다는 것을 의미. 1.1. 데이터 준비단계. Cloud Storage. BugQuery. local machine.. 1.2. 특성 준비단계. 사용자가 특성. 즉, 모델에 입력할 처리된 데이터를 만든 다음 Feature Store를 사용하여 다른 사용자와 공유할 수 있음. 1.3. 학습과 하이퍼파리마터 조정. 사용자가 준비된 데이터를 바탕으로 여러 모델을 실험해 보고 하이퍼파라미터를 조정. 1.4. 배포와 모델 모니터링. 사용자는 자동으로 모니터링하고 지속적인 개선을 실행하여 모델을 프로덕션으로 전환하기 위한 파이프라인을 설정할 수 있음.
- 예측AI와 생성형AI를 모두 아우르는 통합 플랫폼. 2.1. 예측AI는 판매 예측과 분류를 가능하게 함. 2.2. 생성형AI는 멀티모달 콘텐츠를 만들 수 있게 해줌.
-
노코드 솔루션인 AutoML이나 커스텀 학습으로 머신러닝 모델을 빌드할 수 있음. AutoML은 쉽게 탑색할 수 있는 UI를 제공. 이를 통해 데이터과학자는 ML솔루션의 코딩과 배포 방법보다 해결해야 하는 비지니스 문제에 집중. 커스텀학습은 데이터 과학자와 ML 엔지니어가 개발 환경과 프로세슬르 더 효과적으로 제어할 수 있으며, Vertex AI Workbench, Colab과 같은 도구를 사용하여 ML프로젝트를 직접 생성할 수 있음.
-
4S Seamless 원활함 Scalable Sustainable 지속가능성 Speedy
[AutoML - 데이터를 보고 자동으로 모델을 골라준다?]
-
Auto data preprocessing: 데이터를 업로드하면 자동으로 준비작업을 함.(Number, Datetime, Text, Categories, Array of categories, Nested fields) ML모델에 피드할 수 있는 상태로 준비함.
-
Architecture search and tuning. 최상의 모델을 검색하고 파라미터를 조정하는 작업. 2.1. Neureal architecture search. 신경망 아키텍처 검색. 최적의 모델을 검색하고 자동으로 파라미터를 조정.
2.2. Transfer learning. 전이학습(이미 학습된 모델의 지식을 새로운 문제에 적용하는 기계학습 기법. 파인튜닝은 전이학습의 한 방법) 🎨 전이학습은 그림을 그릴 때 이미 배운 “그림 도구 사용법”을 다른 스타일에 적용하는 것. 🖌️ 파인튜닝은 그 도구를 새 스타일에 맞게 직접 조금씩 수정해서 더 잘 맞게 만드는 것.
-
Bagging ensemble 4단계에서 예측에 사용할 수 있도록 모델을 준비시킴(?) **앙상블 기법(ensemble methods)**중 하나라고 함. **Bagging(배깅)**은 여러 개의 서로 다른 훈련 데이터 샘플로 여러 개의 모델을 학습시키고, 그 결과를 평균(또는 투표) 해서 최종 예측을 만드는 기법입니다.
-
Prediction
- 데이터에 최적의 모델을 찾는 방법이 인간보다 우수하다고 판단할 수도.
- 노코드 솔루션을 제공한다. 포인트 앤 클릭 UI에서 자체 데이터로 ML모델을 빌드할 수 있다.
[Custom training]
-
2가지 환경이 제공됨 A pre-built container. Python. TensorFlow등이 설치된 것. A custom container
-
Vertex AI Workbench를 사용. 단일개발환경에 배포된 Jupyter Notebook이라 생각하면 됨.
-
Colab Enterprise를 사용할 수도 있음.
-
ML 라이브러리(미리 작성된 코드 컬렉션)을 사용하여 작업하면 됨. TensorFlow, Scikit-learn, PyTorch
[AI Development workflow]
-
ML workflow
-
Data preparation
- Upload data
(AutoML은) 이미지, 테이블 형식, 텍스트, 동영상 데이터 유형을 지원함. 데이터 유형별로 서로 다른 유형의 문제를 해결하는데 이를 “목표"라고 함.
이미지 데이터는 단일 라벨 또는 멀티 라벨로 이미지를 분류하도록 모델을 학습시킬수 있음. 또 객체를 감지하고 이미지 분할을 감지하도록 모델을 학습시킬수 있음.
테이블 형식은 회귀, 분류 또는 예측 문제를 해결하도록 모델을 학습시킬수 있음. 예측은 소매업과 같은 여러 산업에 중요.
텍스트 데이터의 경우 모델이 텍스트를 분류하고 항목을 추출하고 감정 분석을 실시하도록 모델을 학습시킬수 있음.
동영상의 경우 모델이 동영상 동작을 인식하고 동영상을 분류하고 객체를 추적하도록 모델을 학습시킬수 있음.
- Engineer features. 특성추출? 음식을 한다고 할 떄 당근, 양파, 토마토에 대해서 당근은 껍질을 벗기고 양파는 다지고 토마토는 세척하는 작업을 해야함. 이 과정을 특성 추출이라고 할 수 있음. 특성은 예측에 기여할 수 있는 요소. 특성은 통계의 독립 변수 또는 태아블의 컬럼에 해당. (독립변수: 다른 변수(종속변수)에 영향을 주는 변수입니다. 연구자가 조작하거나 통제하는 변수로, 결과에 어떤 영향을 미치는지를 분석할 때 사용됩니다.)
-
Model development 모델은 엄청나게 많은 (반복)학습이 필요함. 학습과 평가가 한 주기를 형성하여 모델을 학습시키고 모델을 또다시 학습시키는 작업을 반복함. 모델 학습을 요리로 치면 조리법을 실행해 보는 것과 같음. 3.1. Train model 조리법을 따라 요리하는 일에 해당하는 모델 학습 3.2. Evaluate model 음식이 얼마나 괜찮은지 테스트하는 일에 해당하는 모델 평가
[Confusion matrix 혼동 행렬] 머신러닝 분류 문재를 위한 전용 성능 측정. 예측값과 실제 값의 조합으로 이루어진 테이블. (양성이라고 예측했는데 실제양성(TP, True Positive)인것과 실제음성(FP, False Positive)인것..) (음성이라고 예측했는데 실제양성(FN, Fales Negative)인것과 실제음성(TN, True Negative)인것..) 정확도 (Accuracy) 전체 중 맞춘 비율 * 정밀도 (Precision) 예측한 양성 중 진짜 양성 * 재현율 (Recall) 실제 양성 중에 맞춘 비율 F1-score 정밀도와 재현율의 조화 평균 지메일은 스팸과 스팸 아님의 2개 카테고리로 분류하는 분류모델이 있다고 할 때 * 가능한 많이 걸러내는 것이 목표라면 재현율을 우선시해야 함. * 반드시 스팸인 메시지만 걸러내고 다른 이메일은 차단하지 않는 것이 목표라면 정밀도를 우선해야함. [Feature importance 특성 중요도] Vertex AI에서 특성중요도는 각 특성의 예측 기여도를 보여주는 막대 그래프를 통해 표시. 이 정보는 목표를 예측하기 위해 머신러닝 모델에 어느 특성을 포함하면 좋을지를 정하는 데 도움이 됨. (Vertex AI에서 제공하는) Explainable AI는 머신러닝 모델에서 수행한 예측을 이해하고 해석하는 데 도움이 되는 도구이자 프레임워크.
-
Model serving 모델을 결과를 예측하는데 사용할 수 있어야함. 이 시점에 모델이 배포되고 모니터링됨. ML모델을 프로덕션에 배포하지 않으면 쓸모가 없어지고 이론적인 모델로만 남게됨.
4.1. Deploy model Endpoint 온라인 예측이라고 불리는 엔드 포인트에 배포. 즉각적인 결과가 필요한 경우에 적합. (예)사용자가 온라인 상태일 때마다 사용자의 브라우징 습관을 기준으로 즉각적인 추천을 제공하려는 경우 등. 모델을 엔드포인트에 배포해야만 실시간 예측을 제공하는 데 사용할 수 있음.
Batch prediction 모델 리소스에서 바로 예측 작업을 요청하는 것. 즉각적인 응답이 필요하지 않은 경우. (예)사용자의 최근 구매 행동과 격주에 한 번씩 마케팅 캠페인을 보내야 하는 경우. 엔드포인트에 모델을 배포하지 않아도 됨. Vertex AI의 UI나 API를 호출하여 코드를 사용하는 방식으로 모델을 배포할 수 있음. 모델을 클라우드 바깥에 배포하는 것도 가능함. 주로 지연시간을 줄이거나 보안을 보장하는 것이 목적. (예)IoT옵션처럼 제조 공장에서 카메라 피드를 활용해 개체를 감지하는 경우.
4.2. Monitor model 식당이 효율적으로 운영되고 있는지 종업원에게 확인하는 것. Vertex AI pipeline이 담당함. 사전 정의된 임계값에 따라 자동으로 경고를 트리거하고 표시.
-
MLOps and workflow automation MLOps는 머신러닝 개발에 운영을 결합하고 DevOps와 유사한 원칙을 머신러닝 모델에 적용. MLOps의 목표는 머신러닝과 관련된 프로덕션 문제를 해결하는 것. 통합된 머신러닝 시스템을 빌드하고 프로덱션에 운영하는 것.
5.1. KFP Kubeflow Pipeline 5.2. TFX TensorFlow Extended
ML 파이프라인은 일련의 프로세스를 포함하고 있으며 서로 다른 두 환경에서 실행됨. A. Experimentation / development / test environment B. Staging / pre-production / production environment
-
Lab: AutoML
-
How a machine learns
[Generative AI and workflow] **멀티모달(Multimodal)**이라는 말에서 나오는 **“모달(modal)”**은 **정보의 형태나 종류(방식)**를 의미합니다. 하나의 정보 표현 방식 또는 감각 채널을 의미합니다. 즉, **“데이터의 종류”**라고 생각하면 이해가 쉬워요.
-
구글이 만든 기초모델 Gemini 멀티모달 Gemma 언어생성용 경량모델 Codey 코드생성 Imagen 이미지처리
-
Pre-trained vs. fine-tuned Pre-trained 대규모 데이터 세트로 범용 기반 모델을 선행 학습시킨 다음 훨씬 더 작은 데이터 세트로 특정 목표에 맞게 미세 조정하는 것. 개를 훈련할 때 자주 사용하는 명령에는 앉아, 이리와, 엎드려, 멈춰가 있음. 이러한 명령은 일상생활을 하기에 충분하며 훌륭한 반려견으로 길들이는 데 도움이 됨. 다만 경찰견, 안내견, 사냥개 등 특수한 목적을 수행하는 개의 경우에는 특별한 훈련을 추가해야 함. 비슷한 아이디어가 선행 학습된 모델이나 미세 조정된 모델에 적용됨. 예를 들어 생성형 AI기반 모델의 전형적인 대규모 언어 모델의 경우 일반적인 언어 문제를 해결하도록 범용으로 학습됨. 업종 전반의 언어 문제. 즉, 텍스트 분류, 질의 응답, 문서 요약, 텍스트 생성을 예로 들 수 있음.
-
Top-P란? 텍스트 생성 모델이 다음 단어를 고를 때, “확률이 높은 단어들 중에서만 뽑자"는 방식이에요. 언어 모델은 다음 단어를 예측할 때 수천 개의 후보 단어 중 하나를 고릅니다. 그냥 확률 순서대로 1등만 고르면 너무 뻔하고 반복적인 문장이 되고, 무작위로 고르면 이상한 문장이 나올 수도 있어요. 그래서 적당히 확률 높은 애들 중에서 랜덤하게 고르는 방법이 필요합니다.
[tune a gen AI model]
- Prompt design
- Adapter tuning Adapter Tuning은 기존의 **큰 사전학습 모델(pretrained model)**을 그대로 유지하면서, **작은 네트워크(=adapter)**를 중간층에 삽입해서 학습하는 방법이야.
- Reinforcement
- Distilling Model tuning에서 distillation 또는 knowledge distillation은 큰 모델(teacher model)의 지식을 작은 모델(student model)로 “증류(distill)“해서 더 작고 효율적인 모델을 만드는 기술입니다. 이 방법은 특히 성능을 크게 잃지 않으면서 모델 경량화가 필요한 경우에 유용합니다. Teacher model: 크고 성능이 좋은 모델 (예: GPT-3, BERT large 등) Student model: 더 작고 빠르지만, teacher의 성능을 최대한 따라가도록 학습되는 모델 큰 모델의 정보를 작은 모델로 전송해서..