교육 클래스

Vertex AI SDK에는 모델을 학습시킬 때 사용하는 여러 클래스가 포함되어 있습니다. 대부분의 학습 클래스는 모델을 생성, 학습, 반환하는 데 사용됩니다. HyperparameterTuningJob을 사용하여 학습 작업의 초매개변수를 조정합니다. PipelineJob을 사용하여 머신러닝(ML) 워크플로를 관리하면 ML 시스템을 자동화하고 모니터링할 수 있습니다.

다음 주제에서는 Vertex AI SDK의 각 학습 관련 클래스에 대해 개략적으로 설명합니다.

구조화된 데이터를 위한 AutoML 학습 클래스

Vertex AI SDK에는 구조화된 AutoML 모델을 학습시키는 데 사용되는 다음 클래스가 포함되어 있습니다.

AutoMLForecastingTrainingJob

AutoMLForecastingTrainingJob 클래스는 AutoML 학습 방법을 사용하여 예측 모델을 학습시키고 실행합니다. AutoML 학습 방법은 대부분의 예측 사용 사례에 적합합니다. 사용 사례가 SequenceToSequencePlusForecastingTrainingJobTemporalFusionTransformerForecastingTrainingJob 클래스에서 각각 제공되는 Seq2seq 또는 Temporal fusion transformer 학습 방법에서 이점을 얻지 못하는 경우 AutoML이 예측을 위한 가장 적합한 학습 방법일 수 있습니다.

AutoMLForecastingTrainingJob을 사용하는 방법을 보여주는 샘플 코드는 GitHub에서 학습 파이프라인 예측 샘플 만들기를 참조하세요.

AutoMLTabularTrainingJob

AutoMLTabularTrainingJob 클래스는 AutoML 테이블 형식 모델을 만들고 학습시키고 반환하는 작업을 나타냅니다. 테이블 형식 모델과 Vertex AI를 학습시키는 방법에 대한 자세한 내용은 테이블 형식 데이터테이블 형식 데이터 개요를 참조하세요.

다음 샘플 코드 스니펫에서는 Vertex AI SDK를 사용하여 AutoML 테이블 형식 모델을 만들고 실행하는 방법을 보여줍니다.

dataset = aiplatform.TabularDataset('projects/my-project/location/us-central1/datasets/{DATASET_ID}')

job = aiplatform.AutoMLTabularTrainingJob(
  display_name="train-automl",
  optimization_prediction_type="regression",
  optimization_objective="minimize-rmse",
)

model = job.run(
    dataset=dataset,
    target_column="target_column_name",
    training_fraction_split=0.6,
    validation_fraction_split=0.2,
    test_fraction_split=0.2,
    budget_milli_node_hours=1000,
    model_display_name="my-automl-model",
    disable_early_stopping=False,
)

SequenceToSequencePlusForecastingTrainingJob

SequenceToSequencePlusForecastingTrainingJob 클래스는 Seq2seq+ 학습 방법을 사용하여 예측 모델을 학습시키고 실행합니다. Seq2seq+ 학습 방법은 실험에 적합합니다. 알고리즘은 더 간단하고 AutoML 옵션보다 작은 검색 공간을 사용합니다. Seq2seq+는 빠른 결과를 원하고 데이터 세트가 1GB 미만인 경우 좋은 옵션입니다.

SequenceToSequencePlusForecastingTrainingJob을 사용하는 방법을 보여주는 샘플 코드는 GitHub에서 학습 파이프라인 예측 Seq2seq 샘플 만들기를 참조하세요.

TemporalFusionTransformerForecastingTrainingJob

TemporalFusionTransformerForecastingTrainingJob 클래스는 Temporal Fusion Transformer(TFT) 학습 메서드를 사용하여 예측 모델을 학습시키고 실행합니다. TFT 학습 방법은 다중 범위 예측 작업을 사용하여 예측을 생성하는 주의 기반 심층신경망(DNN) 모델을 구현합니다.

TemporalFusionTransformerForecastingTrainingJob을 사용하는 방법을 보여주는 샘플 코드는 GitHub의 학습 파이프라인 예측Temporal Fusion Transformer 샘플 만들기를 참조하세요

TimeSeriesDenseEncoderForecastingTrainingJob

TimeSeriesDenseEncoderForecastingTrainingJob 클래스는 Time-series Dense Encoder(TiDE) 학습 메서드를 사용하여 예측 모델을 학습시키고 실행합니다. TiDE는 멀티 레이어 퍼셉트론(MLP)을 사용하여 변이 및 비선형 종속 항목이 있는 선형 모델 예측 속도를 제공합니다. TiDE에 대한 자세한 내용은 심층 범위 예측의 최근 발전TiDE 블로그 게시물을 참조하세요.

비정형 데이터를 위한 AutoML 학습 클래스

Vertex AI SDK에는 구조화되지 않은 이미지, 텍스트, 동영상 모델을 학습시키는 데 사용되는 다음 클래스가 포함되어 있습니다.

AutoMLImageTrainingJob

AutoMLImageTrainingJob 클래스를 사용하여 이미지 모델을 생성, 학습, 반환합니다. Vertex AI에서 이미지 데이터 모델을 사용하는 방법에 대한 자세한 내용은 이미지 데이터를 참조하세요.

AutoMLImageTrainingJob 클래스를 사용하는 방법의 예시는 AutoML 이미지 분류 노트북의 튜토리얼을 참조하세요.

AutoMLTextTrainingJob

AutoMLTextTrainingJob 클래스를 사용하여 텍스트 모델을 생성, 학습, 반환합니다. Vertex AI에서 텍스트 데이터 모델을 사용하는 방법에 대한 자세한 내용은 텍스트 데이터를 참조하세요.

AutoMLTextTrainingJob 클래스를 사용하는 방법의 예시는 온라인 예측을 위한 AutoML 학습 텍스트 항목 추출 모델 노트북의 튜토리얼을 참조하세요.

AutoMLVideoTrainingJob

AutoMLVideoTrainingJob 클래스를 사용하여 동영상 모델을 만들고 학습시키고 반환합니다. Vertex AI에서 동영상 데이터 모델을 사용하는 방법에 대한 자세한 내용은 동영상 데이터를 참조하세요.

AutoMLVideoTrainingJob 클래스를 사용하는 방법의 예시는 일괄 예측을 위한 AutoML 학습 동영상 동작 인식 모델 노트북의 튜토리얼을 참조하세요.

커스텀 데이터 학습 클래스

Vertex AI SDK를 사용하여 커스텀 학습 워크플로를 자동화할 수 있습니다. Vertex AI를 사용하여 커스텀 학습 애플리케이션을 실행하는 방법은 커스텀 학습 개요를 참조하세요.

Vertex AI SDK에는 커스텀 학습 파이프라인을 만드는 클래스 3개가 포함되어 있습니다. 학습 파이프라인은 모델 학습에 사용하는 입력 Vertex AI 관리형 데이터 세트를 허용합니다. 다음으로 학습 작업이 완료된 후 모델을 반환합니다. 3개의 커스텀 학습 파이프라인 클래스 각각은 학습 파이프라인을 다르게 만듭니다. CustomTrainingJob은 Python 스크립트를 사용하고, CustomContainerTrainingJob은 커스텀 컨테이너를 사용하고 CustomPythonPackageTrainingJob은 Python 패키지와 사전 빌드된 컨테이너를 사용합니다.

CustomJob 클래스는 커스텀 학습 작업을 만들지만 파이프라인이 아닙니다. 커스텀 학습 파이프라인과 달리 CustomJob 클래스는 Vertex AI 관리형 데이터 세트가 아닌 데이터 세트를 사용하여 모델을 학습시킬 수 있으며 학습된 모델을 반환하지 않습니다. 이 클래스는 다양한 유형의 데이터 세트를 허용하고 학습된 모델을 반환하지 않으므로 커스텀 학습 파이프라인보다 자동화가 덜 되지만 더 유연합니다.

CustomContainerTrainingJob

CustomContainerTrainingJob 클래스를 사용하여 컨테이너를 사용하여 Vertex AI에서 커스텀 학습 파이프라인을 실행합니다.

CustomContainerTrainingJob 클래스를 사용하는 방법의 예시는 GPU에서 커스텀 컨테이너로 Vertex AI Training을 사용하여 PyTorch 이미지 분류 멀티 노드 분산 데이터 병렬 학습 노트북의 튜토리얼을 참조하세요.

CustomJob

스크립트를 사용하여 Vertex AI에서 커스텀 학습 작업을 시작하도록 CustomJob 클래스를 사용합니다.

Vertex AI 관리형 데이터 세트에 데이터를 로드하는 데 제한되지 않으며 학습 작업이 완료된 후 모델 참조가 등록되지 않았기 때문에 학습 작업은 학습 파이프라인보다 유연합니다. 예를 들어 CustomJob 클래스, from_local_script 메서드 및 스크립트를 사용하여 scikit-learn 또는 TensorFlow에서 데이터 세트를 로드할 수 있습니다. 또는 Vertex AI에 등록하기 전에 학습된 모델을 분석하거나 테스트할 수 있습니다.

커스텀 학습 작업 제출 전 요구사항, 커스텀 작업에 포함된 항목, Python 코드 샘플 등 커스텀 학습 작업에 대한 자세한 내용은 커스텀 학습 작업 만들기를 참조하세요.

CustomJob.run은 학습된 모델을 반환하지 않으므로 스크립트를 사용하여 모델 아티팩트를 Cloud Storage 버킷과 같은 위치에 써야 합니다. 자세한 내용은 학습된 ML 모델 내보내기를 참조하세요.

다음 샘플 코드는 샘플 작업자 풀 사양을 사용하여 커스텀 작업을 만들고 실행하는 방법을 보여줍니다. 이 코드는 학습된 모델을 artifact-bucket이라는 Cloud Storage 버킷에 작성합니다.

# Create a worker pool spec that specifies a TensorFlow cassava dataset and
# includes the machine type and Docker image. The Google Cloud project ID
# is 'project-id'.
worker_pool_specs=[
     {
        "replica_count": 1,
        "machine_spec": { "machine_type": "n1-standard-8",
                          "accelerator_type": "NVIDIA_TESLA_V100",
                          "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
      },
      {
        "replica_count": 1,
        "machine_spec": { "machine_type": "n1-standard-8",
                          "accelerator_type": "NVIDIA_TESLA_V100",
                          "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
      }
]

# Use the worker pool spec to create a custom training job. The custom training
# job artifacts are stored in the Cloud Storage bucket
# named 'artifact-bucket'.
your_custom_training_job = aiplatform.CustomJob(
                                      display_name='multiworker-cassava-sdk',
                                      worker_pool_specs=worker_pool_specs,
                                      staging_bucket='gs://{artifact-bucket}')

# Run the training job. This method doesn't return the trained model.
my_multiworker_job.run()

CustomPythonPackageTrainingJob

Python 패키지를 사용하여 Vertex AI에서 커스텀 학습 파이프라인을 실행하도록 CustomPythonPackageTrainingJob 클래스를 사용합니다.

CustomPythonPackageTrainingJob 클래스를 사용하는 방법의 예시는 Python 패키지, 관리형 텍스트 데이터 세트, TensorFlow Serving 컨테이너를 사용하는 커스텀 학습 노트북의 튜토리얼을 참조하세요.

CustomTrainingJob

CustomTrainingJob 클래스를 사용하여 스크립트로 Vertex AI에서 커스텀 학습 파이프라인을 실행합니다.

CustomTrainingJob 클래스를 사용하는 방법의 예시는 설명 기능이 있는 온라인 예측용 커스텀 학습 이미지 분류 모델 노트북의 튜토리얼을 참조하세요.

초매개변수 학습 클래스

Vertex AI SDK에는 초매개변수 미세 조정을 위한 클래스가 포함되어 있습니다. 초매개변수 조정은 학습 프로세스를 제어하는 변수(초매개변수)를 최적화하여 모델의 예측 정확성을 극대화합니다. 자세한 내용은 초매개변수 미세 조정 개요를 참조하세요.

HyperparameterTuningJob

HyperparameterTuningJob 클래스를 사용하여 학습 애플리케이션에서 초매개변수 조정을 자동화합니다.

HyperparameterTuningJob 클래스를 사용하여 커스텀 학습 모델을 만들고 조정하는 방법은 GitHub의 초매개변수 조정 튜토리얼을 참조하세요.

HyperparameterTuningJob 클래스를 사용하여 TensorFlow 모델에 대해 Vertex AI 초매개변수 미세 조정 작업을 실행하는 방법은 GitHub의 TensorFlow 모델에 대한 초매개변수 미세 조정 실행 튜토리얼을 참조하세요.

파이프라인 학습 클래스

파이프라인은 Vertex AI에서 ML 워크플로를 조정합니다. 파이프라인을 사용하여 머신러닝 시스템을 자동화, 모니터링, 제어할 수 있습니다. Vertex AI의 파이프라인에 대해 자세히 알아보려면 Vertex AI 파이프라인 소개를 참조하세요.

PipelineJob

PipelineJob 클래스의 인스턴스는 Vertex AI 파이프라인을 나타냅니다.

PipelineJob 클래스를 사용하는 방법을 보여주는 몇 가지 튜토리얼이 있습니다.

다른 튜토리얼 노트북은 Vertex AI 노트북 튜토리얼을 참조하세요.

다음 단계