제한 사항 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

제한 사항

다음 섹션에서는 파이프라인 단계에 @step 데코레이터를 사용할 때 알아야 할 제한 사항을 간략하게 설명합니다.

함수 인수 제한

입력 인수를 @step장식 함수에 전달하면 다음 제한이 적용됩니다.

  • DelayedReturn, Properties (다른 유형의 단계 중), ParameterExecutionVariable 객체를 @step장식 함수에 인수로 전달할 수 있습니다. 하지만 @step장식 함수는 JsonGetJoin 객체를 인수로 지원하지 않습니다.

  • @step 함수에서 파이프라인 변수에 직접 액세스할 수 없습니다. 다음 예제에서는 오류를 생성합니다.

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • 파이프라인 변수를 다른 객체에 중첩하여 @step 함수에 전달할 수 없습니다. 다음 예제에서는 오류를 생성합니다.

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(arg): print(arg) func(arg=(param,)) # this raises a SerializationError because param is nested in a tuple
  • 함수의 입력 및 출력은 직렬화되므로 함수의 입력 또는 출력으로 전달할 수 있는 데이터 유형에 제한이 있습니다. 자세한 내용은 의 데이터 직렬화 및 역직렬화 섹션을 참조원격 함수 호출하세요. @step데코레이션된 함수에도 동일한 제한이 적용됩니다.

  • Boto 클라이언트가 있는 객체는 직렬화할 수 없으므로 @step로장식된 함수에 입력 또는 출력과 같은 객체를 전달할 수 없습니다. 예를 들어Estimator, , Predictor및 와 같은 SageMaker Python SDK 클라이언트 클래스는 직렬화Processor할 수 없습니다.

함수 가져오기

함수 외부가 아닌 내부 단계에서 필요한 라이브러리를 가져와야 합니다. 전역 범위에서 가져오는 경우 함수를 직렬화하는 동안 가져오기 충돌이 발생할 위험이 있습니다. 예를 들어 는 에 의해 재정의될 sklearn.pipeline.Pipeline 수 있습니다sagemaker.workflow.pipeline.Pipeline.

함수 반환 값의 하위 멤버 참조

@step장식 함수의 반환 값의 하위 멤버를 참조하는 경우 다음 제한이 적용됩니다.

  • 다음 예제와 같이 DelayedReturn 객체가 튜플, 목록 또는 dict를 나타내는 [] 경우 를 사용하여 하위 멤버를 참조할 수 있습니다.

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • 함수를 호출할 때 기본 튜플 또는 목록의 정확한 길이를 알 수 없으므로 튜플 또는 목록 출력의 압축을 풀 수 없습니다. 다음 예제에서는 오류를 생성합니다.

    a, b, c = func() # this raises ValueError
  • DelayedReturn 객체를 반복할 수 없습니다. 다음 예제에서는 오류가 발생합니다.

    for item in func(): # this raises a NotImplementedError
  • '.'을 사용하여 임의의 하위 멤버를 참조할 수 없습니다. 다음 예제에서는 오류를 생성합니다.

    delayed_return.a_child # raises AttributeError

지원되지 않는 기존 파이프라인 기능

다음 파이프라인 기능과 함께 @step 데코레이터를 사용할 수 없습니다.