• 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, 솔루션 템플릿 등등 제공)
      • ...
  • ...

-끝-

'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

+ Recent posts