쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

모델 컨테이너 사전 확인

포커스 모드
모델 컨테이너 사전 확인 - Amazon SageMaker AI

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

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

이 섹션은 엔드포인트를 구성하기 전에 모델 컨테이너 입력 및 출력의 호환성을 사전 확인하는 방법을 보여줍니다. SageMaker Clarify의 설명자는 모델에 구애받지 않지만 모델 컨테이너 입력 및 출력에 대한 요구 사항이 있습니다.

참고

단일 요청으로 2개 이상의 레코드를 지원하는 배치 요청을 지원하도록 컨테이너를 구성하여 효율성을 높일 수 있습니다. 예를 들어 단일 레코드는 CSV 데이터 한 줄 또는 JSON 행 데이터 한 줄입니다. SageMaker Clarify는 단일 레코드 요청으로 돌아가기 전에 먼저 미니 배치의 레코드를 모델 컨테이너로 보내려고 시도합니다.

모델 컨테이너 입력

CSV

모델 컨테이너는 MIME 유형: text/csv의 CSV 입력을 지원합니다. 다음 테이블에 SageMaker Clarify가 지원하는 입력의 예제가 나와 있습니다.

모델 컨테이너 입력(문자열 표현) 설명

'1,2,3,4'

네 가지 수치적 특징을 사용하는 단일 레코드.

'1,2,3,4\n5,6,7,8'

줄 바꿈 '\n'으로 구분된 2개의 레코드

'"좋은 제품입니다”,5'

텍스트 특징 1개 및 수치적 특징 1개를 포함한 단일 레코드.

‘"좋은 제품입니다",5\n"나쁜 쇼핑 경험",1'

레코드 2개.

JSON Lines

SageMaker AI는 다음 표와 application/jsonlines같이 MIME 유형이 있는 JSON Lines 고밀도 형식의 입력도 지원합니다.

모델 컨테이너 입력 설명

'{"data":{"features":[1,2,3,4]}}'

단일 레코드. JMESPath 표현식 data.features로 기능 목록을 추출할 수 있습니다.

'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}'

레코드 2개.

'{"features":["좋은 제품입니다",5]}'

단일 레코드. JMESPath 표현식 features로 기능 목록을 추출할 수 있습니다.

'{"features":["좋은 제품입니다",5]}\n{"features":["나쁜 쇼핑 경험",1]}'

레코드 2개.

모델 컨테이너는 MIME 유형: text/csv의 CSV 입력을 지원합니다. 다음 테이블에 SageMaker Clarify가 지원하는 입력의 예제가 나와 있습니다.

모델 컨테이너 입력(문자열 표현) 설명

'1,2,3,4'

네 가지 수치적 특징을 사용하는 단일 레코드.

'1,2,3,4\n5,6,7,8'

줄 바꿈 '\n'으로 구분된 2개의 레코드

'"좋은 제품입니다”,5'

텍스트 특징 1개 및 수치적 특징 1개를 포함한 단일 레코드.

‘"좋은 제품입니다",5\n"나쁜 쇼핑 경험",1'

레코드 2개.

모델 컨테이너 출력

또한 모델 컨테이너 출력은 CSV 또는 JSON 행 밀집 형식이어야 합니다. 또한 모델 컨테이너에는 SageMaker Clarify가 기능 속성을 계산하는 데 사용하는 입력 레코드의 확률이 포함되어야 합니다.

다음 데이터 예제는 CSV 형식의 모델 컨테이너 출력에 대한 것입니다.

Probability only

회귀 및 바이너리 분류 문제의 경우 모델 컨테이너는 예측 레이블의 단일 확률 값(점수)을 출력합니다. 열 인덱스 0을 사용하여 이러한 확률을 추출할 수 있습니다. 다중 클래스 문제의 경우 모델 컨테이너는 확률 목록(점수)을 출력합니다. 다중 클래스 문제의 경우 인덱스가 제공되지 않으면 모든 값이 추출됩니다.

모델 컨테이너 입력 모델 컨테이너 출력(문자열 표현)

단일 레코드

'0.6'

레코드 2개(한 줄에 결과 표시)

'0.6,0.3'

레코드 2개(두 줄로 결과 표시)

'0.6\n0.3'

멀티클래스 모델의 단일 레코드(3개 클래스)

'0.1,0.6,0.3'

멀티클래스 모델의 레코드 2개(클래스 3개)

'0.1,0.6,0.3\n0.2,0.5,0.3'

Predicted label and probabilities

모델 컨테이너는 확률에 따른 예측 레이블을 CSV 형식으로 출력합니다. 인덱스 1을 사용하여 확률을 추출할 수 있습니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'1,0.6'

레코드 2개

'1,0.6\n0,0.3'

Predicted labels header and probabilities

Autopilot으로 훈련된 멀티클래스 모델 컨테이너는 예측된 레이블 및 확률 목록의 문자열 표현CSV 형식으로 출력하도록 구성할 수 있습니다. 다음 예제에서는 인덱스 1로 확률을 추출할 수 있습니다. 인덱스 1 기준으로 레이블 헤더를 추출하고 인덱스 0을 사용하여 레이블 헤더를 추출할 수 있습니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'"[\'고양이\',\'개\',\'물고기\']","[0.1,0.6,0.3]"'

레코드 2개.

'"[\'고양이\',\'개\',\'물고기\']","[0.1,0.6,0.3]"\n"[\'고양이\',\'개\',\'물고기\']","[0.2,0.5,0.3]"'

회귀 및 바이너리 분류 문제의 경우 모델 컨테이너는 예측 레이블의 단일 확률 값(점수)을 출력합니다. 열 인덱스 0을 사용하여 이러한 확률을 추출할 수 있습니다. 다중 클래스 문제의 경우 모델 컨테이너는 확률 목록(점수)을 출력합니다. 다중 클래스 문제의 경우 인덱스가 제공되지 않으면 모든 값이 추출됩니다.

모델 컨테이너 입력 모델 컨테이너 출력(문자열 표현)

단일 레코드

'0.6'

레코드 2개(한 줄에 결과 표시)

'0.6,0.3'

레코드 2개(두 줄로 결과 표시)

'0.6\n0.3'

멀티클래스 모델의 단일 레코드(3개 클래스)

'0.1,0.6,0.3'

멀티클래스 모델의 레코드 2개(클래스 3개)

'0.1,0.6,0.3\n0.2,0.5,0.3'

다음 데이터 예제는 JSON 행 형식의 모델 컨테이너 출력에 대한 것입니다.

Probability only

이 예제에서 모델 컨테이너는 JMESPath 표현식 score로 추출할 수 있는 확률을 JSON 행 형식으로 출력합니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'{"score":0.6}'

레코드 2개

'{"score":0.6}\n{"score":0.3}'

Predicted label and probabilities

이 예제에서 멀티클래스 모델 컨테이너는 확률 목록과 함께 레이블 헤더 목록을 JSON 행 형식으로 출력합니다. 확률은 JMESPath 표현식 probability로 추출할 수 있고, 레이블 헤더는 JMESPath 표현식 predicted labels로 추출할 수 있습니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.1,0.6,0.3]}'

레코드 2개.

'{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.1,0.6,0.3]}\n{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.2,0.5,0.3]}'

Predicted labels header and probabilities

이 예제에서 멀티클래스 모델 컨테이너는 레이블 헤더 목록과 확률을 JSON 행 형식으로 출력합니다. 확률은 JMESPath 표현식 probability로 추출할 수 있고, 레이블 헤더는 JMESPath 표현식 predicted labels로 추출할 수 있습니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.1,0.6,0.3]}'

레코드 2개.

'{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.1,0.6,0.3]}\n{"predicted_labels":["고양이","개","물고기"],"probabilities":[0.2,0.5,0.3]}'

이 예제에서 모델 컨테이너는 JMESPath 표현식 score로 추출할 수 있는 확률을 JSON 행 형식으로 출력합니다.

모델 컨테이너 입력 모델 컨테이너 출력

단일 레코드

'{"score":0.6}'

레코드 2개

'{"score":0.6}\n{"score":0.3}'

모델 컨테이너 검증

모델을 SageMaker AI 실시간 추론 엔드포인트에 배포하고 엔드포인트에 요청을 보내는 것이 좋습니다. 요청(모델 컨테이너 입력)과 응답(모델 컨테이너 출력)을 수동으로 검사하여 둘 다 모델 컨테이너 입력 섹션 및 모델 컨테이너 출력 섹션의 요구 사항을 준수하는지 확인합니다. 모델 컨테이너가 배치 요청을 지원하는 경우, 먼저 단일 레코드 요청으로 시작했다가 이후 2개 이상의 레코드로 시도해볼 수 있습니다.

다음 명령은 AWS CLI를 사용하여 응답을 요청하는 방법을 보여줍니다. AWS CLI 는 SageMaker Studio Classic 및 SageMaker Notebook 인스턴스에 사전 설치되어 있습니다. 를 설치해야 하는 경우이 설치 안내서를 AWS CLI따르세요.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name $ENDPOINT_NAME \ --content-type $CONTENT_TYPE \ --accept $ACCEPT_TYPE \ --body $REQUEST_DATA \ $CLI_BINARY_FORMAT \ /dev/stderr 1>/dev/null

파라미터는 다음과 같이 정의됩니다.

  • $ENDPOINT NAME: 엔드포인트의 이름.

  • $CONTENT_TYPE: 요청의 MIME 유형(모델 컨테이너 입력).

  • $ACCEPT_TYPE: 응답의 MIME 유형(모델 컨테이너 출력).

  • $REQUEST_DATA: 요청된 페이로드 문자열.

  • $CLI_BINARY_FORMAT: 명령줄 인터페이스(CLI) 파라미터 형식. AWS CLI v1의 경우이 파라미터는 비워 두어야 합니다. v2의 경우 이 파라미터를 --cli-binary-format raw-in-base64-out으로 설정해야 합니다.

참고

AWS CLI v2는 바이너리 파라미터를 base64로 인코딩된 문자열 기본값으로 전달합니다.

다음 예제에서는 AWS CLI v1을 사용합니다.

Request and response in CSV format
  • 요청은 단일 레코드로 구성되며, 응답은 레코드의 확률 값에 해당합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    출력:

    0.6

  • 요청은 두 개의 레코드로 구성되며, 응답에는 레코드의 확률이 포함되고, 모델은 확률을 쉼표로 구분합니다. --body에 포함된 $'content' 표현식은 명령이 콘텐츠의 \n을 줄 바꿈으로 해석하도록 지시합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.6,0.3

  • 요청은 두 개의 레코드로 구성되며, 응답에는 레코드의 확률이 포함되고, 모델은 확률을 줄 바꿈으로 구분합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.6

    0.3

  • 요청은 단일 레코드로 구성되며 응답은 확률 값(다중 클래스 모델, 세 가지 클래스)입니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    출력:

    0.1,0.6,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 해당 레코드의 확률 값(다중 클래스 모델, 세 가지 클래스)이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.1,0.6,0.3

    0.2,0.5,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 예측 레이블과 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-2 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    1,0.6

    0,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 레이블 헤더와 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-3 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    "['cat','dog','fish']","[0.1,0.6,0.3]"

    "['cat','dog','fish']","[0.2,0.5,0.3]"

Request and response in JSON Lines format
  • 요청은 단일 레코드로 구성되며, 응답은 레코드의 확률 값에 해당합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines \ --content-type application/jsonlines \ --accept application/jsonlines \ --body '{"features":["This is a good product",5]}' \ /dev/stderr 1>/dev/null

    출력:

    {"score":0.6}

  • 요청에는 레코드 2개가 포함되며, 응답에는 예측 레이블과 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-2 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    출력:

    {"predicted_label":1,"probability":0.6}

    {"predicted_label":0,"probability":0.3}

  • 요청에는 레코드 2개가 포함되며 응답에는 레이블 헤더와 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-3 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}' \ /dev/stderr 1>/dev/null

    출력:

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}

Request and response in different formats
  • 요청은 CSV 형식이고 응답은 JSON 행 형식입니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-in-jsonlines-out \ --content-type text/csv \ --accept application/jsonlines \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    {"probability":0.6}

    {"probability":0.3}

  • 요청은 JSON 행 형식이고 응답은 CSV 형식입니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-in-csv-out \ --content-type application/jsonlines \ --accept text/csv \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    출력:

    0.6

    0.3

  • 요청은 단일 레코드로 구성되며, 응답은 레코드의 확률 값에 해당합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    출력:

    0.6

  • 요청은 두 개의 레코드로 구성되며, 응답에는 레코드의 확률이 포함되고, 모델은 확률을 쉼표로 구분합니다. --body에 포함된 $'content' 표현식은 명령이 콘텐츠의 \n을 줄 바꿈으로 해석하도록 지시합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.6,0.3

  • 요청은 두 개의 레코드로 구성되며, 응답에는 레코드의 확률이 포함되고, 모델은 확률을 줄 바꿈으로 구분합니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.6

    0.3

  • 요청은 단일 레코드로 구성되며 응답은 확률 값(다중 클래스 모델, 세 가지 클래스)입니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    출력:

    0.1,0.6,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 해당 레코드의 확률 값(다중 클래스 모델, 세 가지 클래스)이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    0.1,0.6,0.3

    0.2,0.5,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 예측 레이블과 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-2 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    1,0.6

    0,0.3

  • 요청은 레코드 2개로 구성되며, 응답에는 레이블 헤더와 확률이 포함됩니다.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-3 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    출력:

    "['cat','dog','fish']","[0.1,0.6,0.3]"

    "['cat','dog','fish']","[0.2,0.5,0.3]"

검증이 완료된 후 테스트 엔드포인트를 삭제하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.