본문으로 건너뛰기

M27.06 · 성능 측정과 정확도/성공률의 공동 평가

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 측정 구간/시계·준비/지속 부하·스레드/입력/버전과 분할 조건을 정해 비교 가능한 실험표를 만든다.
  • 합성 지연 표의 평균/명시한 분위수·기한 누락과 peak 메모리·정확도/성공률을 계산한다.
  • 조건별 실패·독립성/표본 한계와 사전 공동 기준으로 후보를 판정하고 추가 근거를 제안한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M11/M12의 평가 지표와 M27.01~05의 자원/지연·교체를 사용한다. 분위수의 nearest-rank 규칙과 분모/조건별 판정을 본문에서 보충한다. 기본은 합성 기록/표준 Python 계산이며 실제 모델·장치 벤치마크 성과가 아니다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

속도를 재기 전에 같은 일을 비교하는지 확인한다

후보가 빨라졌다는 결론에는 무엇을 입력해 어떤 결과가 준비될 때까지 재었는지가 필요하다. 모델 forward만의 시간과 취득→제어 적용 전체 지연은 다른 경계다. 입력 해상도/시간창·batch, 카메라 수·전처리/복원, 출력 shape/행동 의미가 바뀌면 계산하는 일도 달라진다. 따라서 같은 이름의 모델이라도 계약과 버전을 확인한 뒤 비교한다.

모델 로드/최초 컴파일·초기 메모리 할당이 포함된 첫 실행과 준비 실행 뒤의 반복 구간을 나눈다. 준비 실행을 warmup이라고 하며 몇 번/무엇을 제외했는지 적는다. 운영에서 첫 응답도 중요하면 cold start를 별도 보고한다. 반복을 오래 돌려 열/메모리·다른 프로세스가 달라지는 지속 구간도 확인한다. 좋게 나온 구간만 골라 전체 결과라고 표시하지 않는다.

PyTorch 공식 benchmark 예제는 스레드 수와 CUDA 완료 동기화 같은 측정 조건을 다룬다. 벤치마크 도구의 기본 스레드 설정이 실제 운영과 다를 수 있으므로 설정을 기록한다. 비동기 호출을 썼다면 제출/필요 결과 완료·복사 경계를 명시하고 계측이 원래의 병렬 겹침을 바꾸지 않는지 확인한다. 이 단위는 실제 모델을 측정하지 않고 합성 결과를 해석한다.

평균과 분위수에 표본 수/계산 규칙을 붙인다

다음은 동일 경계로 측정했다고 가정한 가상 지연 표다. A는 20개 중 19개가 10 ms/1개가 100 ms, B는 18개가 8 ms/2개가 70 ms다. 실행 조건이 같은 후보 비교 입력이며 실제 장치에서 얻은 기록이 아니다. 평균은 합을 표본 수로 나눈다. A는 (19×10+100)/20=14.5 ms, B는 (18×8+2×70)/20=14.2 ms다.

이번 분위수는 nearest-rank로 정한다. 오름차순 정렬한 N개에서 비율 p에 대해 올림(ceil)한 pN번째 값을 사용하며 순위는 1부터 센다. 따라서 N=20에서 p95는 19번째, p99는 20번째다. A의 p95=10/p99=100 ms, B의 p95=70/p99=70 ms다. 다른 보간 규칙/라이브러리 기본값과 다를 수 있어 방법을 함께 남긴다. 작은 표에서 p99가 최대와 같다고 실제 장기 꼬리 분포를 알게 된 것은 아니다.

기한은 50 ms 이하 완료로 정한다. 초과를 세면 A는 1/20=5%, B는 2/20=10%다. B의 평균이 약간 작아도 기한 누락은 많다. 평균·분위수/최대/누락을 같은 근거 표에서 보고해야 이 차이가 보인다. 실패/timeout을 표에서 삭제하고 성공한 응답만의 평균을 전체 지연으로 쓰지 않는다. 미완료 요청은 성공 표본과 별도로 분모/경과·처리 규칙을 기록한다.

작은 계산 코드도 관측 결과와 구별한다

아래는 표준 라이브러리만 사용하는 완전한 Python 예제다. 입력 배열은 위 합성 표를 옮긴 것이며 이 코드를 실행해도 추론 벤치마크를 한 것이 아니다. 저장/설치 없이 종이로 같은 값을 계산해도 활동을 완료할 수 있다.

from math import ceil

samples = {"A": [10] * 19 + [100], "B": [8] * 18 + [70] * 2}
for name, values in samples.items():
    ordered = sorted(values)
    n = len(ordered)
    p95 = ordered[ceil(0.95 * n) - 1]
    p99 = ordered[ceil(0.99 * n) - 1]
    late = sum(x > 50 for x in values)
    print(name, f"mean={sum(values)/n:.1f}", f"p95={p95}",
          f"p99={p99}", f"late={late}/{n}")

기대 출력은 A mean=14.5 p95=10 p99=100 late=1/20과 B mean=14.2 p95=70 p99=70 late=2/20이다. 이 계산은 작성 환경 Darwin/macOS의 Python 3.13.4에서 CPU로 실행해 확인했다. Ubuntu/ROS·GPU나 실제 모델의 지연을 측정한 결과는 아니다.

메모리도 평균 사용량과 peak를 구별한다. 가상 peak가 A 180 MiB/B 230 MiB이고 가용 한계가 200 MiB라면 A는 20 MiB 여유, B는 30 MiB 초과다. 여기의 peak는 같은 포함 범위로 관측했다고 가정하며 실제 계측에서는 프로세스/장치·캐시/할당과 측정 간격을 기록한다. 평균이 작다고 짧은 peak에서 실패하지 않는 것은 아니다.

분류 정답과 로봇 작업 성공은 분모가 다르다

가상 분류 시험 100건에서 A/B 정답이 95/96건이면 정확도는 95/96%다. 별도 작업 시험은 정상 조명/어두운 조명 각 10회이고 A는 10/8회, B는 10/6회 성공했다고 주자. 총 성공률은 A 18/20=90%, B 16/20=80%다. 어두운 조건은 A 80%/B 60%다. 오프라인 분류가 1건 늘었다고 폐루프 성공도 늘었다고 해석할 수 없다.

작업 성공은 예를 들어 '제한 시간 안에 대상 물체를 지정 구역에 놓고 유지 결과를 관측함'처럼 사전에 정의한다. 개입/재시도·중단/미상·제한 시간 초과를 어떻게 셀지도 정한다. 같은 영상의 인접 프레임이나 같은 물체/세션을 여러 번 나눈 것은 완전히 독립인 새 시험과 다르다. scikit-learn 공식 분할 설명을 연결해 그룹별 분리와 선택/시험의 책임을 확인한다.

같은 조건의 A/B 시험을 연결한 paired 비교는 조건 차이를 줄이는 데 도움이 되지만 순서/피로·물체 상태도 통제해야 한다. 이 작은 합계 표에는 어떤 회차에서 A/B가 서로 달랐는지 없어 paired 우열 검정을 할 근거가 부족하다. 신뢰구간/독립 반복과 조건별 표본을 보강하기 전 통계적으로 우수하다고 선언하지 않는다. M30에서 평가 근거를 더 다룬다.

공동 기준은 숫자를 본 뒤 바꾸지 않는다

합성 과제의 사전 관문을 '기한 누락 최대 1/20, peak 최대 200 MiB, 총 작업 성공 최소 18/20, 어두운 조건 최소 8/10'으로 정했다고 하자. A는 이 표에서 모두 통과하고 B는 누락/메모리·총 성공/어두운 조건이 모두 실패다. B의 평균/분류 정확도가 조금 좋다는 이유로 관문을 조용히 없애지 않는다. 다른 비용/요구가 있으면 새 기준을 명시해 별도 선택 시험을 하고 독립 최종 검증을 준비한다.

이 판정은 합성 표의 요구 충족 여부이며 실제 장비/안전·운영 승인이 아니다. 입력/모델 묶음·장치/스레드/전원·지속 부하, trial/관측 ID·clock과 원본 로그, 실패 이유/선택 근거를 함께 남긴다. 기존 5.10 평가와 6.6 평가 설계를 연결하면 속도/품질의 근거를 재검토할 수 있다.

관련 기존 자료 · 보충해서 읽기

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    5.10 평가 설계

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    6.2 정량 진단

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

  • 기존 상세 본문 · 관련 기존 자료 · 보충 참고

    6.6 평가 설계

    목표 일부 관련

    기존 자료의 관련 범위이며 신규 목표 전체의 품질 검수는 아직 진행하지 않았습니다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

입력은 본문 A/B 지연 20개·50 ms 기한, peak/200 MiB 한계, 분류 95/96건·100건과 조명별 작업 성공 10/8·10/6회다. 공동 기준은 본문의 네 관문을 그대로 사용한다.

  1. 같은 경계/입력·버전/스레드·준비/지속 조건과 그룹 분할/시험 잠금을 포함한 비교 표의 머리글을 설계한다.
  2. 두 후보의 평균/p95/p99·기한 누락/메모리 여유와 분류/총 작업/어두운 조건 성공률을 계산한다.
  3. 네 관문으로 후보를 판정하고 작은 합계 표로 확인할 수 없는 사항·필요한 원본/추가 시험을 적는다.

관찰은 조건, 계산, 공동 판정으로 나눈다. 막히면 분위수 순위와 분모를 먼저 표시한다. 코드는 선택이며 실제 추론/장치는 필요하지 않다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

A는 첫 모델 로드까지 포함하고 B는 준비 후 모델 forward만 쟀다. 같은 '지연' 표로 우열을 비교해도 되는가? 필요한 조건/분할을 적어라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

지연 10개가 5 ms 9개/55 ms 1개다. 본문의 nearest-rank로 평균/p90/p95와 기한 30 ms 누락률을 구하라. peak 210 MiB/한계 200 MiB의 판정도 적어라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

분류 정확도가 늘었지만 어두운 조건 작업 성공과 기한 관문은 실패했다. 전체 채택을 승인할 수 있는가? 결과 선택/독립성·추가 근거를 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.