모델 상태 모니터 평가를 구성하여 모델 동작 및 성능을 이해하는 데 도움을 받을 수 있습니다. 모델 상태 메트릭을 사용하여 모델 배치가 트랜잭션을 얼마나 효율적으로 처리하는지 판별할 수 있습니다.
모델 상태 평가는 프로덕션 환경의 머신러닝 모델 평가와 모든 유형의 생성형 AI 자산 배포에 대해 기본적으로 활성화되어 있습니다. 모델 상태 평가가 사용으로 설정되면 사용하는 서비스의 데이터 마트에 모델 상태 데이터 세트가 작성됩니다. 모델 상태 데이터 세트는 모델 상태 메트릭을 계산하는 데 사용되는 스코어링 요청에 대한 세부사항을 저장합니다.
모델 상태 모니터 평가를 구성하기 위해 다음 예제에 표시된 대로 각 메트릭에 대한 임계값을 설정할 수 있습니다.
사전 프로덕션 및 배치 배포에 대한 모델 상태 평가는 머신 러닝 모델 배포에는 지원되지 않습니다.
지원되는 모델 상태 메트릭
모델 상태 평가에 대해 지원되는 메트릭 범주는 다음과 같습니다. 각 카테고리에는 모델 성능에 대한 세부사항을 제공하는 메트릭이 포함되어 있습니다.
모델 Health Monitor 평가는 다음 메트릭을 지원합니다.
스코어링 요청
모델 상태 모니터 평가는 모델 배치가 수신하는 스코어링 요청 수를 계산합니다.
- 지원 모델: 머신 러닝 및 LLM
레코드
모델 Health Monitor 평가는 스코어링 요청에서 처리되는 트랜잭션 레코드의 total, average, minimum, maximum및 median 수를 계산합니다.
- 지원 모델: 머신 러닝 및 LLM
처리량 및 대기 시간
모델 상태 모니터 평가는 밀리초 (ms) 당 스코어링 요청 및 트랜잭션 레코드를 처리하는 데 걸리는 시간을 추적하여 대기 시간을 계산합니다. 처리량은 초당 처리되는 스코어링 요청 및 트랜잭션 레코드의 수를 추적하여 계산됩니다.
처리량 및 대기 시간을 계산하기 위해 스코어링 요청의 response_time
값을 사용하여 모델 배포가 스코어링 요청을 처리하는 데 걸리는 시간을 추적합니다.
watsonx.ai 런타임 배포의 경우, 평가를 구성할 때 ' response_time
값이 자동으로 감지됩니다.
외부 및 사용자 지정 배포의 경우 Python SDK의 다음 예시와 같이 처리량 및 지연 시간을 계산하기 위해 스코어링 요청을 보낼 때 ' response_time
값을 지정해야 합니다:
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
client.data_sets.store_records(
data_set_id=payload_data_set_id,
request_body=[
PayloadRecord(
scoring_id=<uuid>,
request=openscale_input,
response=openscale_output,
response_time=<response_time>,
user_id=<user_id>)
]
)
평가 중에 고려 및 대기 시간을 측정하기 위해 다음 메트릭이 계산됩니다.
- API 대기 시간: 모델 배치에서 스코어링 요청을 처리하는 데 걸리는 시간 (ms) 입니다.
- API 처리량: 모델 배치에서 처리한 스코어링 요청 수 (초당) 입니다.
- 레코드 대기 시간: 모델 배치에서 레코드를 처리하는 데 걸리는 시간 (ms)
- 레코드 처리량: 초당 모델 배치에서 처리한 레코드 수
스코어링 요청 및 트랜잭션 레코드에 대한 평균, 최대, 중간 및 최소 처리량과 대기 시간은 모델 상태 모니터 평가 중에 계산됩니다.
- 지원 모델: 머신 러닝 및 LLM
페이로드 크기
모델 배치가 스코어링 요청에서 처리하는 트랜잭션 레코드의 total, average, minimum, maximum및 median 페이로드 크기 (KB) 는 모델 상태 모니터 평가 중에 계산됩니다. 이미지 모델의 페이로드 크기 메트릭은 지원되지 않습니다. 페이로드 크기 메트릭은 기존 모델에 대해서만 계산됩니다.
- 지원 모델: 머신 러닝
사용자
모델 상태 모니터 평가는 모델 배치에 스코어링 요청을 전송하는 사용자 수를 계산합니다.
사용자 수를 계산하기 위해 스코어링 요청의 user_id
를 사용하여 모델이 수신하는 스코어링 요청을 전송하는 사용자를 식별합니다.
watsonx.ai 런타임 배포의 경우, 평가를 구성할 때 ' user_id
값이 자동으로 감지됩니다.
외부 및 사용자 지정 배포의 경우, Python SDK의 다음 예시와 같이 사용자 수를 계산하기 위해 채점 요청을 보낼 때 ' user_id
값을 지정해야 합니다:
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
client.data_sets.store_records(
data_set_id=payload_data_set_id,
request_body=[
PayloadRecord(
scoring_id=<uuid>,
request=openscale_input,
response=openscale_output,
response_time=<response_time>,
user_id=<user_id>). --> value to be supplied by user
]
)
사용자 메트릭에 대한 평가 요약을 검토할 때 실시간 보기를 사용하여 총 사용자 수를 확인하고 집계된 보기를 사용하여 평균 사용자 수를 확인할 수 있습니다.
- 지원 모델: 머신 러닝 및 LLM
토큰 수
Watsonx.governance를 사용 중인 경우 모델 상태 모니터 평가는 모델 배치에 대한 스코어링 요청에서 처리되는 토큰 수를 계산합니다. 이 메트릭 카테고리는 기초 모델에 대해서만 지원됩니다.
Watsonx.governance 는 평가 중 토큰 개수를 측정하기 위해 다음 메트릭을 계산합니다.
입력 토큰 수: 평가 중에 여러 스코어링 요청에서 total, average, minimum, maximum및 median 입력 토큰 수를 계산합니다.
출력 토큰 개수: 평가 중 스코어링 요청에서 total, average, minimum, maximum및 median 출력 토큰 개수를 계산합니다.
지원되는 모델: LLM
사용자 지정 토큰 수 지표를 계산하려면 다음 예시와 같이 Python SDK로 채점 요청을 보낼 때 generated_token_count
및 input_token_count
필드를 지정하여 입력 및 출력 토큰 수 지표를 계산해야 합니다:
request = {
"fields": [
"comment"
],
"values": [
[
"Customer service was friendly and helpful."
]
]
}
response = {
"fields": [
"generated_text",
"generated_token_count",
"input_token_count",
"stop_reason",
"scoring_id",
"response_time"
],
"values": [
[
"1",
2,
73,
"eos_token",
"MRM_7610fb52-b11d-4e20-b1fe-f2b971cae4af-50",
3558
],
[
"0",
3,
62,
"eos_token",
"MRM_7610fb52-b11d-4e20-b1fe-f2b971cae4af-51",
3778
]
]
}
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
client.data_sets.store_records(
data_set_id=payload_data_set_id,
request_body=[
PayloadRecord(
scoring_id=<uuid>,
request=request,
response=response,
response_time=<response_time>,
user_id=<user_id>). --> value to be supplied by user
]
)