차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

차세대 Amazon SageMaker 실험 – 기계 학습 교육을 대규모로 구성, 추적 및 비교

오늘 저희는 Amazon SageMaker 실험 능력 아마존 세이지 메이커 로컬 Jupyter 노트북을 포함하여 SageMaker Python SDK 또는 boto3를 사용하여 모든 통합 개발 환경(IDE)에서 기계 학습(ML) 실험 및 모델 버전을 구성, 추적, 비교 및 ​​평가할 수 있습니다.

기계 학습(ML)은 반복적인 프로세스입니다. 새로운 사용 사례를 해결할 때 데이터 과학자와 ML 엔지니어는 식별된 비즈니스 과제를 해결하기 위해 프로덕션에서 사용할 수 있는 최상의 모델 구성(일명 하이퍼 매개변수)을 찾기 위해 다양한 매개변수를 반복합니다. 시간이 지남에 따라 여러 모델과 하이퍼파라미터로 실험한 후 ML 팀이 다양한 실험을 추적할 수 있는 도구 없이 모델 실행을 효율적으로 관리하여 최적의 모델을 찾기가 어려워집니다. 실험 추적 시스템은 프로세스를 간소화하여 다양한 반복을 비교하고 팀의 협업 및 커뮤니케이션을 단순화하여 생산성을 높이고 시간을 절약합니다. 이는 예를 들어 가장 정확하게 훈련 실행을 찾는 것과 같이 결론을 도출하기 위해 ML 실험을 쉽게 구성하고 관리함으로써 달성됩니다.

이 문제를 해결하기 위해 SageMaker는 완전히 통합된 SageMaker 기능인 SageMaker Experiments를 제공합니다. 모델 메트릭, 매개 변수, 파일, 아티팩트, 다양한 메트릭의 플롯 차트를 기록하고, 다양한 메타데이터를 캡처하고, 이를 통해 검색하고, 모델 재현성을 지원하는 유연성을 제공합니다. 데이터 과학자는 시각적 차트와 표를 통해 모델 평가를 위한 성능과 하이퍼파라미터를 빠르게 비교할 수 있습니다. 또한 SageMaker Experiments를 사용하여 생성된 차트를 다운로드하고 이해 관계자와 모델 평가를 공유할 수 있습니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

SageMaker Experiments에 대한 새로운 업데이트로 이제 SageMaker SDK의 일부가 되어 데이터 과학자 작업을 단순화하고 여러 모델 실행을 관리하기 위해 추가 라이브러리를 설치할 필요가 없습니다. 다음과 같은 새로운 핵심 개념을 소개합니다.

  • 실험: 함께 그룹화된 실행 모음입니다. 실험에는 SageMaker Python SDK를 사용하여 어디서나 시작할 수 있는 여러 유형에 대한 실행이 포함됩니다.
  • 달리기: 모델 학습 프로세스의 각 실행 단계. 실행은 모델 학습의 한 반복에 대한 모든 입력, 매개변수, 구성 및 결과로 구성됩니다. 맞춤 매개변수 및 측정항목은 다음을 사용하여 기록할 수 있습니다. log_parameter, log_parameterslog_metric 기능. 사용자 지정 입력 및 출력은 다음을 사용하여 기록할 수 있습니다. log_file 기능.

의 일부로 구현되는 개념 Run 클래스는 SageMaker Python SDK가 설치된 모든 IDE에서 사용할 수 있습니다. SageMaker 교육, 처리 및

Transform Jobs, SageMaker 실험 실행은 작업이 실행 컨텍스트 내에서 호출되는 경우 작업에 자동으로 전달됩니다. 다음을 사용하여 실행 개체를 복구할 수 있습니다. load_run() 당신의 직업에서. 마지막으로, 새로운 기능의 통합으로 데이터 과학자는 다음을 사용하여 분류 사용 사례에 대한 혼동 행렬, 정밀도 및 재현율 그래프, ROC 곡선을 자동으로 기록할 수 있습니다. run.log_confusion_matrix, run.log_precision_recallrun.log_roc_curve 기능, 각각.

이 블로그 게시물에서는 SageMaker SDK를 통해 Jupyter 노트북에서 새로운 SageMaker Experiments 기능을 사용하는 방법의 예를 제공합니다. 다음을 사용하여 이러한 기능을 시연합니다. 파이 토치 MNIST 필기 숫자 분류 예제를 학습하는 예제입니다. 실험은 다음과 같이 구성됩니다.

  1. 실험 실행 및 로깅 매개변수 생성: 먼저 새 실험을 만들고 이 실험에 대한 새 실행을 시작한 다음 매개변수를 기록합니다.
  2. 로깅 모델 성능 지표:모델 성능 메트릭을 기록하고 메트릭 그래프를 그립니다.
  3. 모델 실행 비교: 모델 하이퍼파라미터에 따라 다른 모델 실행을 비교할 것입니다. 이러한 실행을 비교하는 방법과 SageMaker Experiments를 사용하여 최상의 모델을 선택하는 방법에 대해 설명합니다.
  4. SageMaker 작업에서 실험 실행: 실험 컨텍스트를 SageMaker 처리, 교육 또는 배치 변환 작업과 자동으로 공유하는 방법에 대한 예도 제공합니다. 이를 통해 실행 컨텍스트를 자동으로 복구할 수 있습니다. load_run 당신의 직업 내에서 기능합니다.
  5. SageMaker Clarify 보고서 통합: 이제 통합할 수 있는 방법을 보여드리겠습니다. SageMaker 명확화 편향 및 설명 가능성 보고서를 훈련된 모델 보고서와 함께 단일 보기로 보고합니다.

사전 조건

이 블로그 게시물에서는 아마존 세이지 메이커 스튜디오 업데이트된 SageMaker Experiments 기능을 사용하여 Studio 노트북에서 지표를 기록하는 방법을 보여줍니다. 예제에 제시된 명령을 실행하려면 다음 전제 조건이 필요합니다.

  • SageMaker Studio 도메인
  • SageMaker 전체 액세스 권한이 있는 SageMaker Studio 사용자 프로필
  • 적어도 하나의 SageMaker Studio 노트북 ml.t3.medium 인스턴스 유형

사용 가능한 SageMaker 도메인 및 사용자 프로필이 없는 경우 다음을 사용하여 만들 수 있습니다. 빠른 설정 가이드.

로깅 매개변수

이 연습에서는 다음을 사용합니다. 횃불, 널리 사용되는 데이터 세트, 모델 아키텍처 및 컴퓨터 비전을 위한 일반적인 이미지 변환을 제공하는 PyTorch 패키지입니다. SageMaker Studio는 다음을 제공합니다. 고정 이미지 Amazon ECR에서 사용할 수 있는 일반적인 데이터 과학 사용 사례. PyTorch의 경우 CPU 또는 GPU 교육에 최적화된 이미지를 선택할 수 있습니다. 이 예에서는 이미지를 선택합니다. PyTorch 1.12 Python 3.8 CPU Optimized 그리고 Python 3 핵심. 아래에 설명된 예는 SageMaker 실험 기능에 초점을 맞추며 완전한 코드가 아닙니다.

데이터를 다운로드하자 torchvision SageMaker Experiments를 사용하여 훈련 및 테스트 데이터 세트의 데이터 샘플 수를 매개변수로 패키징하고 추적합니다. 이 예에서는 다음과 같이 가정합니다. train_settest_set 이미 다운로드한 대로 torchvision 데이터 세트.

from sagemaker.session import Session
from sagemaker.experiments.run import Run
import os

# create an experiment and start a new run
experiment_name = "local-experiment-example"
run_name = "experiment-run"

with Run(experiment_name=experiment_name, sagemaker_session=Session(), run_name=run_name) as run:
    run.log_parameters({
        "num_train_samples": len(train_set.data),
        "num_test_samples": len(test_set.data)
    })
    for f in os.listdir(train_set.raw_folder):
        print("Logging", train_set.raw_folder+"/"+f)
        run.log_file(train_set.raw_folder+"/"+f, name=f, is_output=False)

이 예에서 우리는 run.log_parameters 기차 및 테스트 데이터 샘플의 수를 기록하고 run.log_file 원시 데이터 세트를 Amazon S3에 업로드하고 실험에 대한 입력으로 기록합니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함. 차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

모델 학습 및 모델 지표 로깅

이제 MNIST 데이터 세트를 다운로드했으므로 CNN 모델 숫자를 인식합니다. 모델을 교육하는 동안 기존 실험 실행을 로드하고 새 매개 변수를 기록하고 모델 메트릭을 기록하여 모델 성능을 추적하려고 합니다.

우리는 사용할 수 있습니다 load_run 이전 실행을 로드하고 이를 사용하여 모델 교육을 기록하는 기능

with load_run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
    train_model(
        run=run,
        train_set=train_set,
        test_set=test_set,
        epochs=10,
        hidden_channels=5,
        optimizer="adam"
    )

그런 다음 사용할 수 있습니다. run.log_parameterrun.log_parameters 실행에 하나 이상의 모델 매개변수를 기록합니다.

# log the parameters of your model
run.log_parameter("device", "cpu")
run.log_parameters({
    "data_dir": data_dir,
    "optimizer": optimizer,
    "epochs": epochs,
    "hidden_channels": hidden_channels
})

그리고 우리는 사용할 수 있습니다 run.log_metric 실험에 성능 지표를 기록합니다.

run.log_metric(name=metric_type+":loss", value=loss, step=epoch)
run.log_metric(name=metric_type+":accuracy", value=accuracy, step=epoch)

분류 모델의 경우 다음을 사용할 수도 있습니다. run.log_confusion_matrix, run.log_precision_recallrun.log_roc_curve, 혼동 행렬, 정밀 재현 그래프 및 모델의 ROC 곡선을 자동으로 플로팅합니다. 우리 모델은 다중 클래스 분류 문제를 해결하므로 혼동 행렬만 기록하겠습니다.

# log confusion matrix
with torch.no_grad():
    for data, target in test_loader:
        data, target = data.to(device), target.to(device)
        output = model(data)
        pred = output.max(1, keepdim=True)[1] 
        run.log_confusion_matrix(target, pred, "Confusion-Matrix-Test-Data")

실행 세부 정보를 보면 이제 아래 스크린샷과 같이 생성된 메트릭을 볼 수 있습니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

실행 세부 정보 페이지는 메트릭에 대한 추가 정보를 제공합니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

그리고 새 모델 매개변수는 매개변수 개요 페이지에서 추적됩니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

또한 자동으로 구성된 혼동 매트릭스를 사용하여 클래스별로 모델 성능을 분석할 수 있으며, 이를 다운로드하여 다양한 보고서에 사용할 수도 있습니다. 그리고 기록된 메트릭을 기반으로 모델의 성능을 분석하기 위해 추가 그래프를 그릴 수 있습니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

여러 모델 매개변수 비교

데이터 과학자는 가능한 최상의 모델을 찾고자 합니다. 여기에는 서로 다른 하이퍼파라미터로 모델을 여러 번 훈련하고 해당 하이퍼파라미터와 모델의 성능을 비교하는 것이 포함됩니다. 이를 위해 SageMaker 실험을 통해 동일한 실험에서 여러 실행을 생성할 수 있습니다. 다양한 모델을 학습하여 이 개념을 살펴보겠습니다. num_hidden_channelsoptimizers.

# define the list of parameters to train the model with
num_hidden_channel_param = [5, 10, 20]
optimizer_param = ["adam", "sgd"]
run_id = 0
# train the model using SageMaker Experiments to track the model parameters, 
# metrics and performance
sm_session = Session()
for i, num_hidden_channel in enumerate(num_hidden_channel_param):
    for k, optimizer in enumerate(optimizer_param):
        run_id += 1
        run_name = "experiment-run-"+str(run_id)
        print(run_name)
        print(f"Training model with: {num_hidden_channel} hidden channels and {optimizer} as optimizer")
        # Defining an experiment run for each model training run
        with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=sm_session) as run:
            train_model(
                run=run, 
                train_set=train_set,
                test_set=test_set,
                epochs=10, 
                hidden_channels=num_hidden_channel,
                optimizer=optimizer
            )

이제 실험을 위해 XNUMX개의 새 실행을 만들고 있습니다. 각각은 모델 매개변수, 메트릭 및 혼동 매트릭스를 기록합니다. 그런 다음 실행을 비교하여 문제에 대해 가장 성능이 좋은 모델을 선택할 수 있습니다. 실행을 분석할 때 서로 다른 실행에 대한 메트릭 그래프를 단일 플롯으로 플롯하여 서로 다른 훈련 단계(또는 에포크)에 걸쳐 실행의 성능을 비교할 수 있습니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

SageMaker 교육, 처리 및 일괄 변환 작업과 함께 SageMaker Experiments 사용

위의 예에서는 모델이 노트북에서 로컬로 훈련된 SageMaker Studio 노트북에서 모델 성능을 기록하기 위해 SageMaker Experiments를 사용했습니다. SageMaker 처리, 교육 및 일괄 변환 작업에서 모델 성능을 기록하기 위해 동일한 작업을 수행할 수 있습니다. 새로운 자동 컨텍스트 전달 기능을 사용하면 실험 구성을 SageMaker 작업과 구체적으로 공유할 필요가 없습니다. 자동으로 캡처되기 때문입니다.

아래 예는 SageMaker 실험 기능에 초점을 맞추며 완전한 코드가 아닙니다.

from sagemaker.pytorch import PyTorch
from sagemaker.experiments.run import Run
from sagemaker.session import Session
from sagemaker import get_execution_role
role = get_execution_role()

# set new experiment configuration
exp_name = "training-job-experiment-example"
run_name = "experiment-run-example"

# Start training job with experiment setting
with Run(experiment_name=exp_name, run_name=run_name, sagemaker_session=Session()) as run:
    est = PyTorch(
        entry_point="",
        dependencies=[""],
        role=role,
        model_dir=False,
        framework_version="1.12",
        py_version="py38",
        instance_type='ml.c5.xlarge',
        instance_count=1,
            hyperparameters={
            "epochs": 10,
            "hidden_channels":5,
            "optimizer": "adam",
        },
        keep_alive_period_in_seconds=3600
    )
    
    est.fit()

모델 스크립트 파일에서 다음을 사용하여 실행 컨텍스트를 얻을 수 있습니다. load_run(). SageMaker 처리 및 교육 작업에서는 구성을 로드하기 위한 실험 구성을 제공할 필요가 없습니다. 일괄 변환 작업의 경우 다음을 제공해야 합니다. experiment_namerun_name 실험 구성을 로드합니다.

with load_run() as run:
    run.log_parameters({...})
    train_model(run, ...)

노트북 스크립트에서 SageMaker Experiments를 실행할 때 얻는 정보 외에도 SageMaker 작업에서 실행하면 작업 매개변수와 출력이 자동으로 채워집니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함. 차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

새로운 SageMaker Experiments SDK는 평가판 및 평가판 구성 요소의 개념을 사용하여 이전 버전과의 하위 호환성도 보장합니다. 이전 SageMaker Experiments 버전을 사용하여 트리거된 모든 실험은 실험 분석을 위해 자동으로 새 UI에서 사용할 수 있게 됩니다.

SageMaker Clarify 통합 및 모델 교육 보고서

SageMaker Clarify는 감지하여 ML 모델을 개선하는 데 도움이 됩니다. 잠재 편향 도움 설명 이러한 모델이 예측을 수행하는 방법. Clarify는 데이터(데이터 구성), 모델(모델 구성) 및 가능한 편향(편향)에 대해 분석하려는 민감한 데이터 열에 대한 정보를 사용하여 모델이 훈련된 후 작업을 처리하는 SageMaker로 실행되는 사전 구축된 컨테이너를 제공합니다. 구성). 지금까지 SageMaker Experiments는 모델 교육 및 Clarify 보고서를 시험을 통해 연결된 개별 시험 구성 요소로 표시했습니다.

새로운 SageMaker Experiments를 사용하면 SageMaker Clarify 보고서를 모델 교육과 통합하여 모델을 더 깊이 이해할 수 있는 하나의 진실 소스를 가질 수 있습니다. 통합 보고서의 경우 훈련 및 Clarify 작업에 동일한 실행 이름을 지정하기만 하면 됩니다. 다음 예는 다음을 사용하여 보고서를 통합할 수 있는 방법을 보여줍니다. XGBoost 모델 미국 전역의 성인 소득을 예측합니다. 모델은 UCI 성인 데이터 세트. 이 연습에서는 모델이 이미 훈련되었고 데이터, 모델 및 편향 구성을 이미 계산했다고 가정합니다.

with Run(
    experiment_name='clarify-experiment',
    run_name="joint-run",
    sagemaker_session=sagemaker_session,
) as run:
    xgb.fit({"train": train_input}, logs=False)
    clarify_processor.run_bias(
        data_config=bias_data_config,
        bias_config=bias_config,
        model_config=model_config,
        model_predicted_label_config=predictions_config,
        pre_training_methods="all",
        post_training_methods="all",
    )
    clarify_processor.run_explainability(
        data_config=explainability_data_config,
        model_config=model_config,
        explainability_config=shap_config,
    )

이 설정을 통해 모델 메트릭, 공동 입력 및 출력, 모델 통계 편향 및 설명 가능성에 대한 Clarify 보고서를 포함하는 결합된 보기를 얻습니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함. 차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함. 차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함. 차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.

결론

이 게시물에서는 SageMaker SDK의 통합 부분인 차세대 SageMaker Experiments를 살펴보았습니다. 새로운 Run 클래스를 사용하여 어디에서나 ML 워크플로를 기록하는 방법을 시연했습니다. 실험을 추적하고 단일 실행 메트릭에 대한 그래프를 그릴 수 있을 뿐만 아니라 여러 실행을 새로운 분석 기능과 비교할 수 있는 새로운 실험 UI를 선보였습니다. SageMaker Studio 노트북 및 SageMaker Studio 교육 작업에서 로깅 실험의 예를 제공했습니다. 마지막으로 모델 교육과 SageMaker Clarify 보고서를 통합 보기로 통합하여 모델을 더 깊이 이해할 수 있도록 하는 방법을 보여 주었습니다.

새로운 실험 기능을 사용해 보고 다음과 연결하는 것이 좋습니다. 기계 학습 및 AI 커뮤니티 질문이나 의견이 있으시면!


저자에 관하여

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.마이라 라데이라 탱케 AWS의 기계 학습 전문가입니다. 데이터 과학에 대한 배경 지식이 있는 그녀는 산업 전반의 고객과 함께 ML 애플리케이션을 설계하고 구축한 9년의 경험을 가지고 있습니다. 기술 책임자로서 그녀는 고객이 최신 기술과 혁신적인 솔루션을 통해 비즈니스 가치를 빠르게 달성할 수 있도록 지원합니다. 여가 시간에 Maira는 따뜻한 곳에서 가족과 함께 여행하고 시간을 보내는 것을 즐깁니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.마니 카누 자 Amazon Web Services(AWS)의 인공 지능 및 기계 학습 전문가 SA입니다. 그녀는 기계 학습을 사용하는 고객이 AWS를 사용하여 비즈니스 문제를 해결하도록 돕습니다. 그녀는 대부분의 시간을 컴퓨터 비전, 자연어 처리, 예측, ML at the edge 등과 관련된 AI/ML 프로젝트에 대해 심층적으로 파고들고 고객을 가르치는 데 보냅니다. 그녀는 ML at edge에 열정적이어서 자율주행 키트와 프로토타입 제조 생산 라인을 갖춘 자신만의 랩을 만들어 여가 시간을 많이 보냅니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.드웬 치 AWS의 소프트웨어 개발 엔지니어입니다. 그녀는 현재 고객이 ML 프로젝트를 성공적으로 수행할 수 있도록 AWS SageMaker에서 플랫폼 서비스 및 도구 모음을 구축하는 데 참여하고 있습니다. 그녀는 또한 MLOps의 개념을 더 많은 청중에게 알리는 데 열정적입니다. 업무 외 시간에 Dewen은 첼로 연습을 즐깁니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.아비섹 아가르왈 Amazon SageMaker의 선임 제품 관리자입니다. 그는 고객과 협력하고 기계 학습에 대한 접근성을 높이는 데 열정적입니다. 여가 시간에 Abhishek은 그림 그리기, 자전거 타기, 혁신적인 기술 학습을 즐깁니다.

차세대 Amazon SageMaker 실험 – 대규모 PlatoBlockchain 데이터 인텔리전스에 맞게 기계 학습 교육을 구성, 추적 및 비교합니다. 수직 검색. 일체 포함.다나 벤슨 Amazon SageMaker 실험, 계보 및 검색 팀에서 일하는 소프트웨어 엔지니어입니다. AWS에 합류하기 전에 Dana는 Alexa에서 스마트 홈 기능을 활성화하고 Starbucks에서 모바일 주문을 활성화하는 데 시간을 보냈습니다.

타임 스탬프 :

더보기 AWS 기계 학습