Amazon SageMaker 프레임워크

마지막 업데이트 날짜: 2025년 1월 16일
Amazon SageMaker 프레임워크

Amazon SageMaker을 사용하여 페이로드 및 피드백 데이터를 기록하고, 모델 평가를 위한 성능 정확도, 편향성 감지, 설명 가능성 및 자동 편향성 제거 기능을 측정할 수 있습니다.

모델 평가에는 다음 Amazon SageMaker 프레임워크가 지원됩니다:

테이블 1. 프레임워크 지원 세부사항

프레임워크 지원 세부사항
프레임워크 문제점 유형 데이터 유형
네이티브 분류 구조화됨
네이티브 회귀1 구조화됨

1회귀 모델에 대한 지원에는 드리프트 규모가 포함되지 않습니다.

Amazon SageMaker 추가

다음 방법 중 하나를 사용하여 Amazon SageMaker 에서 작동하도록 모델 평가를 구성할 수 있습니다.

  • 처음으로 머신 러닝 공급자를 추가하면 구성 인터페이스를 사용할 수 있습니다. 자세한 정보는 Amazon SageMaker 인스턴스 지정을 참조하십시오.
  • Python SDK를 사용하여 기계 학습 제공자를 추가할 수도 있습니다. 둘 이상의 제공자를 원하는 경우 이 방법을 사용해야 합니다. 자세한 정보는 Amazon SageMaker 머신 러닝 엔진 추가를 참조하십시오.

샘플 노트북

다음 Notebooks은 Amazon SageMaker에 대해 작업하는 방법을 보여줍니다.

Amazon SageMaker ML 서비스 인스턴스 지정

모델 평가를 구성하기 위한 첫 번째 단계는 Amazon SageMaker 서비스 인스턴스를 지정하는 것입니다. Amazon SageMaker 서비스 인스턴스는 사용자의 AI 모델 및 배치를 저장하는 곳입니다.

Amazon SageMaker 서비스 인스턴스 연결

Amazon SageMaker 서비스 인스턴스의 AI 모델과 배포. 서비스를 연결하려면 구성 탭 아이콘 구성 탭으로 이동하여 머신 러닝 공급자를 추가하고 구성 탭 아이콘이 표시됩니다. 편집 아이콘을 클릭합니다. 이름 및 설명과 환경 사전 프로덕션 또는 프로덕션외에 이 유형의 서비스 인스턴스에 특정한 다음 정보를 제공해야 합니다.

  • 액세스 키 ID: AWS 액세스 키 ID인 aws_access_key_id입니다. 사용자를 확인하고 인증하며 AWS 호출 권한을 부여합니다.
  • 시크릿 액세스 키: AWS 시크릿 액세스 키인 aws_secret_access_key입니다. 사용자를 확인하고 인증하며 AWS 호출 권한을 부여하는 데 필요합니다.
  • 지역: 액세스 키 ID가 작성된 지역을 입력합니다. 키는 작성된 지역에 저장되고 사용되며 다른 지역으로 전송될 수 없습니다.

이제 배치된 모델을 선택하고 모니터를 구성할 준비가 되었습니다. 배포된 모델은 Insights 대시보드에 나열되며, 여기서 대시보드에 추가를 클릭합니다. 모니터할 배치를 선택하고 구성을 클릭하십시오.

자세한 정보는 모니터 구성을 참조하십시오.

Amazon SageMaker 기계 학습 엔진으로 페이로드 로깅

Amazon SageMaker 기계 학습 엔진 추가

watsonx.ai IBM 런타임 엔진은 메타데이터를 사용하여 사용자 지정으로 바인딩됩니다. IBM이 IBM watsonx.ai 런타임 서비스와의 직접 통합은 불가능합니다.

SAGEMAKER_ENGINE_CREDENTIALS = {
                   'access_key_id':””,
                   'secret_access_key':””,
                   'region': '}

wos_client.service_providers.add(
        name="AWS",
        description="AWS Service Provider",
        service_type=ServiceTypes.AMAZON_SAGEMAKER,
        credentials=SageMakerCredentials(
            access_key_id=SAGEMAKER_ENGINE_CREDENTIALS['access_key_id'],
            secret_access_key=SAGEMAKER_ENGINE_CREDENTIALS['secret_access_key'],
            region=SAGEMAKER_ENGINE_CREDENTIALS['region']
        ),
        background_mode=False
    ).result

서비스 구독을 보려면 다음 코드를 실행하십시오.

client.service_providers.list()

SageMaker ML 바인딩

Amazon SageMaker ML 구독 추가

구독을 추가하려면 다음 코드를 실행하십시오.

asset_deployment_details = wos_client.service_providers.list_assets(data_mart_id=data_mart_id, service_provider_id=service_provider_id).result
asset_deployment_details
 
deployment_id='684e35eee8a479470cee05983e1f9d64'
for model_asset_details in asset_deployment_details['resources']:
    if model_asset_details['metadata']['guid']==deployment_id:
        break
 
  
aws_asset = Asset(
        asset_id=model_asset_details['entity']['asset']['asset_id'],
        name=model_asset_details['entity']['asset']['name'],
        url=model_asset_details['entity']['asset']['url'],
        asset_type=model_asset_details['entity']['asset']['asset_type'] if 'asset_type' in model_asset_details['entity']['asset'] else 'model',
        problem_type=ProblemType.BINARY_CLASSIFICATION,
        input_data_type=InputDataType.STRUCTURED,
    )
 
from ibm_watson_openscale.base_classes.watson_open_scale_v2 import ScoringEndpointRequest
deployment_scoring_endpoint = model_asset_details['entity']['scoring_endpoint']
scoring_endpoint = ScoringEndpointRequest(url = model_asset_details['entity']['scoring_endpoint']['url'] )
 
deployment = AssetDeploymentRequest(
        deployment_id=model_asset_details['metadata']['guid'],
        url=model_asset_details['metadata']['url'],
        name=model_asset_details['entity']['name'],
        #description="asset['entity']['description']",
        deployment_type=model_asset_details['entity']['type'],
        scoring_endpoint =  scoring_endpoint
    )
 
asset_properties = AssetPropertiesRequest(
        label_column="Risk",
        prediction_field='predicted_label',
        probability_fields=['score'],
        training_data_reference=training_data_reference,
        training_data_schema=None,
        input_data_schema=None,
        output_data_schema=None,
        feature_fields=feature_columns,
        categorical_fields=categorical_columns
    )
 
subscription_details = wos_client.subscriptions.add(
        data_mart_id=data_mart_id,
        service_provider_id=service_provider_id,
        asset=aws_asset,
        deployment=deployment,
        asset_properties=asset_properties,
        background_mode=False
).result

구독 목록을 가져오려면 다음 명령을 실행하십시오.

subscription_id = subscription_details.metadata.id
subscription_id
 
details: wos_client.subscriptions.get(subscription_id).result.to_dict()

페이로드 로깅 사용 설정

페이로드 로깅을 사용으로 설정하려면 다음 명령을 실행하십시오.

request_data = {'fields': feature_columns, 
                'values': [[payload_values]]}

로깅 세부사항을 가져오려면 다음 명령을 실행하십시오.

response_data = {'fields': list(result['predictions'][0]),
                 'values': [list(x.values()) for x in result['predictions']]}

스코어링 및 페이로드 로깅

  • 모델을 스코어링하십시오.

페이로드 로깅 테이블에서 요청 및 응답을 저장하려면 다음 코드를 실행하십시오.

wos_client.data_sets.store_records(data_set_id=payload_data_set_id, request_body=[PayloadRecord(
           scoring_id=str(uuid.uuid4()),
           request=request_data,
           response=response_data,
           response_time=460
)])
 

Python 외의 언어의 경우 REST API를 사용하여 페이로드를 로깅할 수도 있습니다.

상위 주제: 지원되는 머신 러닝 엔진, 프레임워크 및 모델