- 1) Studio : 웹기반의 ML Workflow IDE
- 제공되는 애플리케이션들
- Classic Studio : 구버젼.
- R Studio : R용 IDE 버젼.
- Visual Studio Code Editor : 웹 브라우져 코드 편집기 제공.
- JupyterLab : 빠른 커널, 데이터, ML 프레임워크, 고성능 스토리지 등, 노트북 관련된 다양한 기능을 제공.
- Canvas : (코딩없이) ML 모델을 사용해, 예측을 생성 할수있는 기능.
- 사용되는 개념과 기능
- Domain : (StudioLab, Notebook Instance 제외) 도메인 단위를 생성하고, 그 하에서 IDE 서비스가 이루어짐.
- Local Mode : PC 에서 파이프라인을 생성 및 배포 -> 사전 테스트 가능.
- Spaces : SageMaker 애플리케이션 인스턴스에 1:1 로 필요한 스토리지를 EFS,EBS 으로 제공.
- 제공되는 애플리케이션들
- 2) Studio Classic : ...
- 3) Notebook Instance :
- Jupyter 애플리케이션(데이터 및 모델 처리)을 실행하는 컴퓨팅 인스턴스.
- EC2 에서 Jupyter Server 시작 및 AWS CLI, BOTO3, Conda, Pandas 등 각종 라이브러리 환경의 커널 제공.
-
1) SageMaker -> 노트북 인스턴스 -> (Role:AmazonSageMakerFullAccess) -> 생성 2) Jupyter 노트북 생성 3) 데이터 준비 및 S3 업로드 ... train = ... validation = ... test = ... import sagemaker, boto3, os bucket = sagemaker.Session().default_bucket() train.to_csv('train.csv', index=False, header=False) validation.to_csv('validation.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object('train.csv').upload_file() boto3.Session().resource('s3').Bucket(bucket).Object('validation.csv').upload_file() 4) 모델 Train import sagemaker from sagemaker.debugger import Rule, ProfilerRule, rule_configs from sagemaker.session import TrainingInput from sagemaker.session import TrainingInput region = sagemaker.Session().boto_region_name role = sagemaker.get_execution_role() # iam:rolepass 권한 있어야 하는듯! output_path = f's3://{bucket}/xgboost_model' container = sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") xgb_model = sagemaker.estimator.Estimator( image_uri=container, role=role, instance_count=1, instance_type='ml.m4.xlarge', volume_size=5, output_path=output_path, sagemaker_session=sagemaker.Session(), rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()), ProfilerRule.sagemaker(rule_configs.ProfilerReport()) ] ) xgb_model.set_hyperparameters(max_depth = 5,eta = 0.2,gamma = 4,min_child_weight = 6,subsample = 0.7,objective = "binary:logistic",num_round = 1000) train_input = TrainingInput(f"s3://{bucket}/train.csv", content_type="csv") validation_input = TrainingInput(f"s3://{bucket}/validation.csv", content_type="csv") xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True) 5) 모델 Deploy to EC2 import sagemaker from sagemaker.serializers import CSVSerializer xgb_predictor = xgb_model.deploy( initial_instance_count=1, instance_type='ml.t2.medium', serializer=CSVSerializer() ) xgb_predictor_reuse = sagemaker.predictor.Predictor( endpoint_name="sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS", sagemaker_session=sagemaker.Session(), serializer=CSVSerializer() ) ...
- git repo 연결 : ...
- 4) JupyterLab :
- Studio -> JupyterLab 스페이스 생성 -> JupyterLab 애플리케이션 실행.
- "JupyterLab 스페이스" = 스토리지 및 컴퓨팅 리소스를 관리하는 Studio 내의 프라이빗 공간.
- "JupyterLab 애플리케이션" = 노트북, 코드, 데이터 등, 웹 기반 대화형 IDE. (ML Workflow 구성 및 정렬)
- 5) StudioLab :
- JupyterLab 기반 환경에서 -> (AWS 계정없이) 리소스 에 접근할수있도록 해주는 서비스.
- Jupyter 노트북 생성 및 실행.
- 6) Canvas :
- 7) CodeEditor :
- 8) HyperPod : ML Workload 클러스터 프로비저닝 -> (LLM, Diffusion model, Foundation model 과 같은) state-of-the-art 모델.
- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
- SageMaker JumpStart : "사전 학습된 오픈 소스 모델" 의 deploy, fine-tune, evaluate 과 "인프라 템플릿" 및 "노트북 코드" 등 제공.
- JumpStart in Studio :
- JumpStart in Studio Classic :
- https://www.youtube.com/watch?v=DIxWMsbJa50
- Foundation Model
- 특정 문제에 맞는 알고리즘으로 학습하는 패더다임에서 벗어나, 초거대 단일 모델로 범용적인 접근.
- 2021년 스텐포드에서 FM 개념 등장, 복잡도 크기인 파라미터의 수는 기하급수 적으로 늘어나고 있음.
- 1. 대규모의 un-labeled 데이터의 사전학습을 통해~ 모델의 행동이 유추됨.
- 2. 하나 초거대 단일 모델이 다양한 문제(문맥 파악, 질의응답,이미지 생성) 를 풀수있는 기반이 됨.
- 3. 비용절감 차원에서도, 기 모델기반으로 task에 맞게 fine-tuning 또는 zero-shot 및 prompt engineering 식.
- 예) Bloom
- HuggingFace 중심으로 오픈소스로 만들어진 LLM.
- GPT3처럼, "Let's Think Step By Step" 과 같은 프롬프트 추가 -> Chain of Thought 같은 리즈닝 수행도 가능.
- 예) Stable Diffusion
- 기존 딥러닝 이미지 생성모델 :
- GAN(Generative Adversarial Network) = ...
- VAE(Variational Auto Encoder) = ...
- 디퓨전 = 이미지 -{정변}-> 노이즈(픽셀들로 변환) , 이 역변환을 파라미터로 네트워크 학습을 하는 모델.
- 디퓨전 모델의 픽셀단위를~ Encoder를 통해 압축된 Latent Space 상의 정보를 정변환하는 식으로 발전시킴.
- 컨디셔닝이 반영된 역변환 과정으로 Latent Image 를 Decoder 를 통해 결과물을 생성하게 됨.
- 프로세스상 작은량의 데이터를 다룸으로써, 모델 파라미터를 효과적으로 줄였고, 저사양 GPU 대중화 성공.
- V1 : 고품질 이미지 생성, ImgToImg 변환, 해상도 업스케일링, 인페인팅 모델로 이미지 일부만 수정도 가능.
- V2 : OpenClip Text Encoder 활용 -> 품질 개선, Image Depth 를 응용해 생성하는 등의 범용성 확장.
- 기존 딥러닝 이미지 생성모델 :
- JumpStart 활용법
- Foundation Model 선택 -> 원클릭 fine-tuning / 예제코드 확인 및 실행 -> 인스턴스에 배포
- (빌트인 알고리즘, H.F.사전학습 모델, Foundation Model, 솔루션 템플릿 등등 제공)
- ...
- Foundation Model
- ...
-끝-
'AWS' 카테고리의 다른 글
AWS CodeBuild (0) | 2020.08.29 |
---|---|
Amazon EKS (0) | 2020.07.16 |
AWS Serverless Application Repository (0) | 2020.06.29 |
AWS Serverless Application Model (0) | 2020.06.28 |
Amazon Simple Queue Service (0) | 2020.05.16 |