Kubeflow 파이프라인 구성요소는 파이프라인 단계를 만드는 팩토리 함수입니다. 각 구성요소는 구성요소의 입력, 출력, 구현을 설명합니다. 예를 들어 train_op
는 다음 코드 샘플의 구성요소입니다.
예를 들어 학습 구성요소는 CSV 파일을 입력으로 사용하고 이를 사용해서 모델을 학습시킬 수 있습니다. 파이프라인 단계에서 머신 유형 매개변수를 설정하여 파이프라인에서 각 단계의 요구사항을 관리할 수 있습니다. 2개의 학습 단계가 있는데 한 단계는 큰 데이터 파일로 학습되고 다른 단계는 작은 데이터 파일로 학습되는 경우, 두 번째 태스크보다 첫 번째 태스크에 더 많은 메모리 및 CPU와 더 적은 리소스를 할당할 수 있습니다.
기본적으로 구성요소는 4개 코어 CPU 및 16GB 메모리가 포함된 e2-standard-4 머신을 사용하여 Vertex AI CustomJob
로 실행됩니다. 머신 유형에 나열된 Google Cloud 관련 머신 리소스 중 하나를 선택하는 방법에 대한 자세한 내용은 Vertex AI Pipelines로 Google Cloud 머신 리소스 요청을 참조하세요.
다음 샘플은 한 단계에 대해 CPU, 메모리, GPU 구성 설정을 설정하는 방법을 보여줍니다.
from kfp import dsl
@dsl.pipeline(name='custom-container-pipeline')
def pipeline():
generate = generate_op()
train = (
train_op(
training_data=generate.outputs['training_data'],
test_data=generate.outputs['test_data'],
config_file=generate.outputs['config_file'])
.set_cpu_limit('CPU_LIMIT')
.set_memory_limit('MEMORY_LIMIT')
.add_node_selector_constraint(SELECTOR_CONSTRAINT)
.set_accelerator_limit(ACCELERATOR_LIMIT))
다음을 바꿉니다.
CPU_LIMIT: 이 연산자의 최대 CPU 한도입니다. 이 문자열 값은 숫자(CPU 수를 나타내는 정수 값) 또는 1/1000을 나타내는 'm'으로 표시된 숫자일 수 있습니다. 최대 96개까지 CPU를 지정할 수 있습니다.
MEMORY_LIMIT: 이 연산자의 최대 메모리 한도입니다. 이 문자열 값은 숫자이거나 "K"(킬로바이트), "M"(메가바이트), "G"(기가바이트)와 함께 표시된 숫자일 수 있습니다. 최대 624GB까지 지원됩니다.
SELECTOR_CONSTRAINT: 각 제약조건은 키-값 쌍 라벨입니다. 한 노드에서 실행될 수 있는 컨테이너에 대해 이 노드에는 각 제약조건이 라벨로 포함되어야 합니다. 예를 들면
'cloud.google.com/gke-accelerator', 'NVIDIA_TESLA_T4'
입니다.사용할 수 있는 제약조건은 다음과 같습니다.
NVIDIA_H100_80GB
NVIDIA_A100_80GB
NVIDIA_TESLA_A100
(NVIDIA A100 40GB)NVIDIA_TESLA_P4
NVIDIA_TESLA_P100
NVIDIA_TESLA_T4
NVIDIA_TESLA_V100
NVIDIA_L4
TPU_V2
TPU_V3
ACCELERATOR_LIMIT: 연산자의 가속기(GPU 또는 TPU) 한도입니다. 양의 정수를 지정할 수 있습니다. 사용 가능한 GPU 및 구성 방법에 대한 자세한 내용은 GPU를 참조하세요. 사용 가능한 TPU 및 구성 방법에 대한 자세한 내용은 TPU를 참조하세요.
CustomJob
은 최대 96개 CPU와 624GB 메모리로 제한하는 특정 머신 유형을 지원합니다. 지정한 CPU, 메모리, 가속기 구성에 따라 Vertex AI Pipelines는 지원되는 머신 유형과 가장 일치하는 항목을 자동으로 선택합니다.