5-2. 점수 분포와 예측 분포 연결하기¶
입력 분포가 달라졌다면 다음 질문은 모델의 점수와 최종 예측이 어떻게 움직였는가입니다. 점수(score)는 모델이 입력을 high_risk 쪽으로 보는 정도를 연속된 값으로 나타내고, 예측(prediction)은 그 점수를 임계값과 비교해 정한 최종 클래스입니다. 별도의 점수 보정 근거가 없다면 점수를 실제 발생 확률로 해석하지 않습니다.
두 분포를 따로 보면 변화가 모델에서 시작됐는지, 임계값에서 증폭됐는지 구분하기 쉽습니다. 점수는 조금 움직였지만 임계값 근처에 사례가 몰려 있으면 high_risk 예측 비율은 크게 바뀔 수 있습니다.
비교 전에 고정할 세 가지
- 같은 모델
profile·version·임계값 - 5교시 팀 수집 기록에 적힌 절대 UTC 범위와 환경·모델 정보
baseline과current-shift처럼 명시한 입력 시나리오
앞에서 본 세 자료는 같은 사건을 설명하지만 표본과 역할이 다릅니다. 숫자를 한 시계열처럼 이어 붙이지 않습니다. 이 페이지는 6교시 요청 단위 조사에서 입력·점수·예측의 연결을 확인하는 보조 읽기이며, 새 트래픽 수집을 대신하지 않습니다.
| 자료 | 표본과 범위 | 이 절에서 맡는 역할 |
|---|---|---|
| 앞선 출발 신호 | 같은 기준 모델의 준비된 100건, high_risk 3→6·점수 P95 0.3859→0.5133 |
처음 조사할 질문을 엶 |
| 5-1 통제 입력 비교 | 별도로 통제한 로컬 100건 | 입력 조건 변화 가설을 확인함 |
| 5교시 팀 수집 기록 | 이번 live 수집 범위 또는 baseline·current-shift 각 60건과 invalid 3건인 offline 묶음 |
6교시 대시보드와 대표 요청을 분석할 실제 범위를 고정함 |
앞선 출발 신호의 100건과 5-1의 로컬 100건은 각각 출발 질문과 통제 입력 비교를 위한 자료입니다. 5교시 팀 수집 기록의 baseline 60건, current-shift 60건, invalid 3건은 별도 운영 관측 자료입니다. 세 자료의 표본·시간·분모를 하나의 추세로 합치지 않습니다.
/v1/model은 프로필·버전·임계값을 반환하지만 전체 모델 SHA-256을 반환하지 않습니다. version 끝의 짧은 문자열은 모델을 빠르게 대조하기 위한 접두사이며 전체 해시값이 아닙니다. 전체 SHA-256은 배포 선언, 모델 패키지 메타데이터 또는 게시 기록에서 따로 확인합니다.
두 분포가 답하는 질문¶
점수 분포는 모델이 요청을 어느 정도의 위험도로 보았는지 보여 줍니다. 평균과 95백분위(P95), 구간별 빈도를 비교하면 높은 점수 쪽 꼬리가 길어졌는지, 전체가 함께 이동했는지 살펴볼 수 있습니다.
예측 분포는 임계값을 적용한 뒤 low_risk와 high_risk가 각각 몇 건인지 보여 줍니다. 운영에서 처음 관측한 high_risk 예측 비율은 이 분포의 요약값이며, 정답과 비교한 재현율이나 정밀도와는 다른 값입니다.
두 분포를 비교할 때는 모델 정보와 임계값을 먼저 고정합니다. 비교 기준 모델과 Candidate B는 모델도 다르고 임계값도 다를 수 있으므로, 입력 변화의 효과를 보려는 비교에 후보 교체 결과를 섞으면 원인을 분리하기 어렵습니다.
| 관측값 | 계산 시점 | 답할 수 있는 질문 | 답할 수 없는 질문 |
|---|---|---|---|
| 점수 평균, P95, 구간별 빈도 | 임계값 적용 전 | 점수의 중심과 높은 값의 꼬리가 달라졌는가 | 실제 정답을 얼마나 잘 맞혔는가 |
high_risk 예측 비율 |
임계값 적용 후 | 최종 분류 구성이 달라졌는가 | 재현율과 정밀도가 달라졌는가 |
| 422, 5xx 비율 | API 응답 뒤 | 입력 거부와 서비스 실패가 늘었는가 | 모델 분류 품질이 나빠졌는가 |
| 재현율, 정밀도 | 정답과 예측 비교 뒤 | 오류 유형이 기준을 통과했는가 | 현재 운영 요청의 정답이 없는 경우 새로 계산할 수 없음 |
이 구분을 유지하면 대시보드의 예측 비율 증가를 모델 성능 저하로 바꾸어 쓰지 않게 됩니다. 정답이 없는 운영 구간에서는 분포 변화와 추가 조사 필요성까지만 기록합니다.
대시보드에서 같은 범위 비교하기¶
6교시에는 5교시 팀 수집 기록을 열고 요청 단위 원인 조사 절에서 범위를 복원합니다. 수강생은 요청 건수와 상태, 5xx, 지연 P95, high_risk 비율, 점수 P95, 결측 P95를 baseline, current-shift, invalid 순서로 확인합니다. 이 페이지는 그 조사에서 입력 변화가 점수와 최종 예측으로 어떻게 이어지는지 정리하는 보조 읽기입니다. 별도의 미니 강의처럼 대시보드 계약 노트북을 다시 실행하거나 트래픽을 다시 보내지 않고, 같은 6교시 안에서 5-3 요청 한 건에서 원인 후보 추적하기로 대표 요청의 로그와 처리 경로를 확인합니다.
5교시 팀 수집 기록에서는 다음 값을 한 묶음으로 가져옵니다.
- live 또는 offline 구분과
environment - 대시보드 URL 또는 준비된 자료 ID
- 5교시 실행의 예측 응답에서 확인한
model_identity의 프로필·버전·임계값 baseline·current-shift·invalid의 실행 ID와 상태별 건수- 요청을 보낸 시작·종료 시각을 포함하는 절대 UTC 조회 범위
- 수집 확인 결과와 아직 비어 있는 신호
model_identity는 5교시 실행의 /v1/predict 응답에서 가져와 세 시나리오 동안
같은지 확인한 값입니다. 별도로 실행한 /v1/model 응답은 개인 관찰 기록의
출처와 확인 시각을 따로 남기며, 수집 매니페스트에 없는 checked_at을 만들지
않습니다.
실시간 경로에서는 목록의 절대 UTC 범위를 그대로 대시보드에 설정합니다. 시간이 지나면 함께 움직이는 기본 상대 범위로 돌아가면 앞서 수집한 자료가 사라질 수 있으므로 상대 범위로 바꾸지 않습니다. 오프라인 경로에서는 준비된 자료의 고정 시나리오 시간을 사용하고, 실제 발생 시각이나 실시간 수집 성공으로 바꾸어 쓰지 않습니다.
| 비교 조건 | 반드시 같아야 하는 값 | 달라지는 값 | 기록할 결과 |
|---|---|---|---|
| 입력 변화 확인 | API의 프로필·버전·임계값, API 경로, 수집 범위 | baseline과 current-shift 입력 |
점수 P95, high_risk 비율, 결측 P95, 요청 상태별 건수 |
| 후보 모델 확인 | 입력 표본, 평가 조건, 정답, 계산 규칙 | 비교 기준 모델과 Candidate B | 재현율, 정밀도, PR-AUC, 미탐 수 |
| 배포 뒤 운영 확인 | 선택한 Candidate B의 전체 SHA-256을 담은 배포 근거, 시나리오 정의 | 배포 전후 시간대 | API 모델 정보, 지연 시간, 5xx, 점수, 예측 분포 |
서로 다른 비교를 한 그래프에 겹칠 수는 있지만 결론은 따로 써야 합니다. 입력 변화, 후보 모델 차이, 배포 환경 차이를 한 원인으로 묶지 않아야 후속 담당자가 필요한 자료를 정확히 찾을 수 있습니다.
관측 결과 해석하기¶
관측 조합은 다음처럼 해석합니다.
- 점수 P95와
high_risk비율이 함께 오르면 높은 점수 쪽 요청이 늘었거나 입력 조건이 달라졌을 가능성이 커집니다. - 점수는 비슷한데 예측 비율만 달라지면 임계값과 실제 API 모델 정보를 먼저 대조합니다.
- 5xx·지연 증가가 분포 변화와 함께 나타나면 실행 환경 또는 수집 누락을 별도 후보로 둡니다.
- 실패 요청이 분포 계산에서 빠졌는지 확인하고, 성공 요청의 분포와 전체 요청 상태를 나누어 기록합니다.
| 관측 조합 | 우선 확인할 원인 후보 | 현재 쓸 수 있는 판단 | 필요한 다음 근거 |
|---|---|---|---|
| 입력 분포, 점수 P95, 예측 비율이 같은 방향으로 변화 | 요청 구성이나 입력 조건 변화 | 입력 변화 후보 강화 | 대표 요청과 시간대별 입력 요약 |
| 점수는 비슷하고 예측 비율만 변화 | 임계값 또는 모델 정보 불일치 | 실행 설정 확인 필요 | /v1/model, 배포 선언, 임계값 |
| 5xx, 지연 증가와 분포 변화가 동시 발생 | 실행 환경 또는 수집 누락 | 운영 신뢰성 후보 강화 | 요청 ID, 로그, 추적 기록 |
| 준비된 오프라인 자료만 분석 | 실시간 환경 자료 미준비 | scope=static; 실제 수집 상태는 미확인 |
대상 URL, 모델 정보, 절대 UTC 조회 범위 |
관측 결과는 다음에 확인할 원인 후보로 마무리합니다. 새 재현율, 정밀도, 미탐 수는 실제 정답을 확보한 별도 평가에서 계산합니다.
세 시나리오 비교를 마치면 같은 6교시의 5-3 요청 한 건에서 원인 후보 추적하기로 이어 볼 실행 ID와 요청 ID를 하나 고릅니다. 선택 기준은 “결론에 잘 맞는 요청”이 아니라 변화한 패널과 같은 시나리오·시간 범위에 있고, 로그와 trace로 연결할 수 있는 요청입니다. 개인 관찰 기록에는 5교시 팀 수집 기록의 유형과 식별값, 자신이 비교한 패널, 선택한 요청, 관측 한계를 기록합니다.
실패했을 때 확인할 점¶
다음 상황에서는 그래프보다 확인 범위를 먼저 고칩니다.
- Grafana 설정이 없으면: 누락한 URL·데이터 소스 ID·접속 자격 자료와 정적 노트북 검사 결과를 분리해 기록합니다.
- 그래프가 비어 있으면: 5교시 팀 수집 기록의 환경·절대 UTC 범위·시나리오·데이터 소스를 확인하고, 조회 범위를 무작정 넓히거나 트래픽을 다시 보내지 않습니다.
- 모델 정보나 임계값이 없으면: 분포 비교 결론을 보류하고, 필요한 식별값·담당자·재비교 조건을 기록합니다.
- 5교시 인계 점검에서 오프라인 경로로 전환했다면: 6교시에 다시 연결을 시도하지 않고 준비된 자료의 범위 안에서 분석합니다.