모니터링 작업을 시작하려면 모델 모니터링이 입력 페이로드를 올바르게 파싱하기 위해 테이블 형식 데이터 세트의 스키마를 알아야 합니다.
AutoML 모델의 경우 Vertex AI에 이미 학습 데이터에 대한 액세스 권한이 있으므로 모델 모니터링은 스키마를 자동으로 파싱합니다.
커스텀 학습 모델:
모델 모니터링은 표준 키-값 입력 형식을 사용하는 모델의 스키마를 자동으로 파싱할 수 있습니다.
키-값 입력 형식을 사용하지 않는 커스텀 학습 모델의 경우 모니터링 작업을 만들 때 스키마를 제공해야 할 수 있습니다.
스키마 생성은 온라인 예측 엔드포인트 또는 일괄 예측에 모델 모니터링을 사용 설정하는지에 따라 다릅니다.
온라인 예측 엔드포인트에 대한 스키마 파싱
온라인 예측 엔드포인트의 경우 모델 모니터링에서 스키마를 자동으로 파싱하거나 모니터링 작업을 만들 때 스키마를 업로드할 수 있습니다.
자동 스키마 파싱
온라인 엔드포인트에 편향 또는 드리프트 감지를 사용 설정하면 모델 모니터링이 일반적으로 입력 스키마를 자동으로 파싱할 수 있습니다. 자동 스키마 파싱의 경우 모델 모니터링은 처음 1,000개의 입력 요청을 분석하여 스키마를 결정합니다.
자동 스키마 파싱은 입력 요청이 키-값 쌍의 형식일 때 가장 잘 작동합니다. 여기서 "key"
는 특성 이름이고 "value"
는 특성 값입니다. 예를 들면 다음과 같습니다.
"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30", "prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}
입력이 "key":"value"
형식이 아니면 모델 모니터링은 각 특성의 데이터 유형을 식별하고 각 입력에 기본 특성 이름을 자동으로 할당하려고 합니다.
커스텀 인스턴스 스키마
모델 모니터링에서 모델 입력을 올바르게 파싱하도록 모델 모니터링 작업을 만들 때 고유한 입력 스키마를 제공할 수 있습니다.
이 스키마를 분석 인스턴스 스키마라고 합니다. 스키마 파일은 입력 페이로드의 형식, 각 특성의 이름, 각 특성의 유형을 지정합니다.
스키마는 Open API 형식의 YAML 파일로 작성되어야 합니다. 다음은 object
형식의 예측 요청에 대한 예시입니다.
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
type
은 예측 요청이 다음 형식 중 하나인지 여부를 나타냅니다.object
: 키-값 쌍array
: 배열과 유사string
: csv 문자열
properties
는 각 개별 특성 유형을 나타냅니다.요청이 배열이나 csv 문자열 형식인 경우
required
필드에서 각 요청에 특징이 나열되는 순서를 지정합니다.
예측 요청이 배열이나 csv 문자열 형식이면 누락된 특성이 null 값으로 나타냅니다. 예를 들어 다음과 같은 특성 5개가 포함된 예측 요청을 살펴보겠습니다.
[feature_a, feature_b, feature_c, feature_d, feature_e]
feature_c
에서 누락된 값을 허용하는 경우 feature_c
가 누락된 샘플 요청은 {[1, 2, , 4, 6]}
과 같습니다. 목록 길이는 여전히 5이며 중간에 null 값이 한 개 있습니다.
일괄 예측을 위한 스키마 파싱
일괄 예측의 경우 모델 모니터링에서 스키마를 자동으로 파싱하거나 모니터링 작업을 만들 때 스키마를 업로드할 수 있습니다.
자동 스키마 파싱
모니터링 작업을 만들 때 스키마를 제공하지 않으면 모델 모니터링에서 특성의 데이터 유형을 추론하고 학습 데이터를 기반으로 스키마를 생성합니다.
또한 모델 모니터링은 예측되는 특성인 어떤 특성이 타겟 열인지 알아야 합니다. 대상 열은 스키마 및 특성 편향 측정항목에서 제외됩니다. 모니터링 작업을 만들 때 타겟 열을 지정할 수 있습니다.
타겟 열 사양
모니터링 작업을 만들 때 타겟 열을 지정하지 않으면 모델 모니터링에서 학습 데이터의 마지막 특성 이름을 타겟 열로 라벨을 지정합니다.
예를 들어 모델 모니터링은 첫 번째 행의 끝에 column_c
가 있으므로 이 CSV 학습 데이터의 column_c
를 타겟 열로 라벨을 지정합니다.
column_a, column_b, column_d, column_c 1,"a", 2, "c" 2,"b", 342, "d"
마찬가지로 column_c
가 첫 번째 행의 끝에 있으므로 모델 모니터링은 이 JSONL 파일의 column_c
를 타겟 열로 라벨을 지정합니다.
{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" } {"column_a": 2, "column_b": "b", "column_c": "d", "column_d": 342}
두 예시 모두 최종 스키마는 column_a
, column_b
, column_d
만 포함합니다.
맞춤 스키마
커스텀 스키마는 입력 페이로드의 형식, 각 특성의 이름, 각 특성의 유형을 지정합니다.
스키마는 Open API 구문을 사용하여 YAML 파일로 작성되어야 합니다. 다음은 object
형식의 예측 요청에 대한 예시입니다.
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
모델 모니터링은 JSON Lines 일괄 예측 출력을 기반으로 특성 편향을 계산합니다. 데이터 유형에 배열이 포함된 경우 입력 데이터의 배열 길이는 yaml 파일에 지정된 특성 수와 같아야 합니다. 그렇지 않으면 모델 모니터링이 배열 길이가 잘못된 예측 인스턴스를 특성 편향 계산에서 제외합니다.
예를 들어 다음 데이터 유형의 배열에는 두 가지 특성이 포함됩니다.
배열:
{[[1, 2]]}
'키'/'값':
{"key": 0, "values": [[1, 2]]}
해당 스키마는 다음 두 가지 특성도 지정해야 합니다.
type: object properties: name: type: string age: type: number required: - name - age
다음 단계
- 모델에 편향 및 드리프트 감지를 사용 설정합니다.
- Colab에서 노트북 예시를 사용해 보거나 GitHub에서 봅니다.