머신 러닝 모델 또는 생성형 AI 자산을 평가하는 경우, 배포에서 모델 트랜잭션을 전송하여 모델 평가를 활성화해야 합니다.
모델 평가에 대한 정확한 결과를 지속적으로 생성하려면 배포에서 새 데이터를 계속 전송해야 합니다.
모델 트랜잭션 전송
데이터 가져오기
인사이트 대시보드에서 평가 결과를 검토할 때 작업 메뉴를 사용하여 모델 평가를 위한 페이로드 및 피드백 데이터를 가져올 수 있습니다.
사전 프로덕션 모델의 경우 CSV 파일을 업로드하거나 Cloud Object Storage 또는 Db2 데이터베이스에 저장된 데이터에 연결하여 데이터를 가져올 수 있습니다.
이미 스코어링된 데이터를 업로드하려는 경우 Test data includes model output
선택란을 선택할 수 있습니다. Cloud Object Storage 는 이 옵션을 선택할 때 테스트 데이터를 다시 코어하지 않습니다. 가져오는 데이터에는 이 옵션을 선택할 때 페이로드 로깅 및 피드백 테이블에 추가되는 record_id
/transaction_id
및 record_timestamp
열도 포함될 수 있습니다.
프로덕션 모델의 경우 CSV 파일을 업로드하거나 엔드포인트를 사용하여 모델 트랜잭션을 전송하여 데이터를 가져올 수 있습니다.
엔드포인트 사용
프로덕션 모델의 경우, 평가를 가능하게 하는 형식으로 데이터를 제공하는 데 사용할 수 있는 엔드포인트가 지원됩니다. 페이로드 로깅 엔드포인트를 사용하여 공정성 및 드리프트 평가에 대한 스코어링 요청을 전송하고 피드백 로깅 엔드포인트를 사용하여 품질 평가에 대한 피드백 데이터를 제공할 수 있습니다. CSV 파일을 업로드하여 모델 평가에 대한 데이터를 제공할 수도 있습니다. 데이터 형식에 대한 자세한 정보는 모델 평가를 위한 데이터 관리를 참조하십시오.
공정성 평가 결과를 검토하는 데 사용할 수 있는 디베이싱된 거래 엔드포인트도 지원됩니다. 편향성 제거된 트랜잭션 엔드포인트는 페이로드 데이터에 활성 편향성 제거를 적용하여 모델에서 편향성을 발견합니다. 활성 편향성 제거에 대한 자세한 정보는 편향성 제거된 트랜잭션 검토를 참조하십시오.
다음 단계를 사용하여 엔드포인트를 통해 모델 평가를 위한 모델 트랜잭션을 보낼 수 있습니다:
- 모니터 구성 페이지에서 엔드포인트 탭을 선택하십시오.
- CSV 파일로 페이로드 데이터를 업로드하려면 페이로드 데이터 업로드를 클릭하십시오.
- CSV 파일로 피드백 데이터를 업로드하려면 피드백 데이터 업로드를 클릭하십시오.
- 모델 정보 패널에서 엔드포인트를 클릭하십시오.
- 엔드포인트 메뉴에서 사용할 엔드포인트의 유형을 선택하십시오.
- 코드 언어 메뉴에서 사용할 코드 스니펫의 유형을 선택하십시오.
- ' '을 클립보드에 복사하기를 클릭하여 코드 스니펫을 복사하고 노트북이나 애플리케이션에서 코드를 실행합니다.
Python 페이로드 데이터 로깅
Watson OpenScale 엔드포인트 메뉴에서 페이로드 데이터 엔드포인트를 선택하면 다음 코드 스니펫을 사용하여 페이로드 데이터를 기록하는 방법을 보여줄 수 있습니다:
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
service_credentials = {
"apikey": "$API_KEY",
"url": "{$WOS_URL}"
}
authenticator = IAMAuthenticator(
apikey=service_credentials["apikey"],
url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
from ibm_watson_openscale.data_sets import DataSetTypes, TargetTypes
# Put your subscription ID here
SUBSCRIPTION_ID = "{$SUBSCRIPTION_ID}"
payload_logging_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING, target_target_id=SUBSCRIPTION_ID, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
# Put your data here
REQUEST_DATA = {
"parameters": {
"template_variables": {
"{$TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
"{$TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
}
},
"project_id": "$PROJECT_ID"
}
RESPONSE_DATA = {
"results": [
{
"generated_text": "$GENERATED_TEXT"
}
]
}
RESPONSE_TIME = $RESPONSE_TIME
wos_client.data_sets.store_records(data_set_id=payload_logging_data_set_id, request_body=[PayloadRecord(request=REQUEST_DATA, response=RESPONSE_DATA, response_time=RESPONSE_TIME)])
' "project_id": "$PROJECT_ID"
' 값은 프로젝트의 평가에 대한 페이로드 데이터를 기록하도록 지정합니다. 스페이스에 평가에 대한 페이로드 데이터를 기록하려면 ' "space_id": "$SPACE_ID"
' 값을 대신 지정할 수 있습니다. 프로젝트 및 스페이스의 관리 탭을 사용하여 모델의 프로젝트 또는 스페이스 ID를 식별할 수 있습니다.
Python 피드백 데이터 로깅하기
Watson OpenScale 엔드포인트 메뉴에서 피드백 데이터 엔드포인트를 선택하면 다음 코드 스니펫을 사용하여 피드백 데이터를 기록하는 방법을 보여줄 수 있습니다:
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
from ibm_watson_openscale.supporting_classes.enums import DataSetTypes, TargetTypes
service_credentials = {
"apikey": "$API_KEY",
"url": "{$WOS_URL}"
}
authenticator = IAMAuthenticator(
apikey=service_credentials["apikey"],
url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
subscription_id = "{$SUBSCRIPTION_ID}"
feedback_dataset_id = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK, target_target_id=subscription_id, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
fields = [
"{$TEMPLATE_VARIABLE_1}",
"{$TEMPLATE_VARIABLE_2}",
"{$LABEL_COLUMN}",
"_original_prediction"
]
values = [
[
"$TEMPLATE_VARIABLE_1_VALUE",
"$TEMPLATE_VARIABLE_2_VALUE",
"$LABEL_COLUMN_VALUE",
"$GENERATED_TEXT_VALUE"
]
]
wos_client.data_sets.store_records(
data_set_id=feedback_dataset_id,
request_body=[{"fields": fields, "values": values}],
background_mode=False
)
상위 주제: 모델 평가를 위한 데이터 관리