특정 조건에서는 모델 배포에 대한 직접 편향뿐만 아니라 간접 편향도 고려하도록 공정성 평가를 구성할 수 있습니다.
간접 편향성은 데이터 세트의 한 기능을 사용하여 다른 기능을 대신할 수 있을 때 발생합니다. 예를 들어, 레이스가 알려진 기능이 아닌 데이터 세트에서 우편 번호와 같은 기능은 종종 레이스에 가깝게 추적할 수 있습니다. 편향성에 대해 우편번호 기능을 평가하는 것은 간접 편향성을 발견하는 방법입니다. 다른 예에서, 고객 구매 이력은 성별과 밀접하게 대응할 수 있다. 따라서 인종, 나이 또는 성별과 같은 일반적인 보호 속성을 포함하지 않는 예측 모델도 편향된 결과를 표시할 수 있습니다.
간접 편향은 다음 조건이 충족될 때 분석됩니다:
- 상관을 찾으려면 데이터 세트가 충분히(4000 레코드 이상) 커야 합니다.
- 훈련 데이터가 메타 필드를 포함해야 합니다. 데이터 필드의 서브세트에서 모델을 훈련해야 합니다. 이들 추가 필드인 메타 필드는 간접 편향성을 판별하기 위한 것입니다. (메타 필드를 포함하지만 모델 훈련에는 사용하지 마십시오.)
- 페이로드 로깅이 메타 필드를 포함하고 공정성 모니터가 구성되기 전에 실행되어야 합니다. 메타 필드를 업로드하려면 이 방법을 사용해야 합니다. 간접 편향성에 대한 페이로드 로깅은 1) 값을 갖는 교육 기능 및 2) 값을 갖는 메타 필드의 두 가지 유형의 입력이 필요합니다.
- 공정성 모니터를 구성할 때 모니터할 추가 필드를 선택하십시오.
간접 편향성을 위한 일반적 작업흐름
그러나 모델에 다른 열이 필요한 사전 프로덕션 및 프로덕션 모델에 대한 간접 편향성을 판별할 수 있습니다. 사전 프로덕션 모델을 평가하는 데 사용되는 테스트 데이터와 사전 프로덕션 또는 프로덕션 모델을 평가하는 데 사용되는 피드백 데이터는 메타 열의 사용에서 다릅니다. 메타 열은 사전 프로덕션을 위한 테스트 데이터에 필요하며 사전 프로덕션 또는 프로덕션 모델에 사용되는 피드백 데이터에 포함될 수 없습니다. 전형적인 작업흐름은 다음 단계를 포함할 수 있습니다.
- 기능 열과 메타 열을 모두 포함하는 훈련 데이터를 작성하십시오. 메타 열은 모델을 훈련시키는 데 사용되지 않는 데이터를 포함합니다.
- 메타 열을 사용하여 공정성 모니터를 구성합니다.
- 사전 프로덕션 중에 기능 열과 메타 열을 둘 다 포함하는 테스트 데이터를 업로드하십시오. 이 테스트 데이터는 테스트 데이터 가져오기 CSV 옵션을 사용하여 업로드해야 합니다.
- 사전 프로덕션 중에 간접 편향성 측도를 사용하여 최종 모델에 편향성이 없는지 확인하는 동안 모델의 다른 버전에서 상호 작용할 수 있습니다.
- 모델을 프로덕션으로 전송한 후, 피드백 데이터는 어떤 메타 열도 가져서는 안되며 모델을 훈련시키는 데 사용되는 기능 열만 포함해야 합니다.
메타 필드를 갖는 샘플 JSON 페이로드 파일
다음 샘플 파일은 모델을 훈련시키는 데 사용되는 필드와 값을 갖는 JSON 페이로드를 보여줍니다. 간접 편향성 분석에 사용되는 메타 필드와 값도 포함됩니다. 메타 필드는 모델을 훈련시키는 데 사용되지 않으며, 대신 모델의 편향성에 상관시키려는 다양한 종류의 분석을 위해 예약됩니다. 메타 필드는 임의 유형의 데이터일 수 있지만, 대개 성별, 인종 또는 나이 같이 보호되는 속성입니다.
[request_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026]]
}
response_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K", "probability", "prediction", "DRUG"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026, [0.82, 0.07, 0.0, 0.05, 0.03], 0.0, "drugY"]]
}
request_data = <put your data here>
response_data = <put your data here>
records = [PayloadRecord(request=request_data, response=response_data, response_time=18),
PayloadRecord(request=request_data, response=response_data, response_time=12)]
subscription.payload_logging.store(records=records)
메타 값은 배열의 배열 형식이어야 합니다.
"meta": {
"fields": ["age", "race", "sex"],
"values": [
[32, "Black", "Male"]
]
}
자세한 정보
상위 주제: 모델 평가 구성