본문으로 건너뛰기

M27.02 · 모델 크기·정밀도·양자화·추론 배치의 비교

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

전체 커리큘럼

학습 안내

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

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

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

학습 목표

  • 파라미터 수/저장 정밀도·실행 메모리와 연산 지원을 구분해 크기를 계산한다.
  • 합성 affine 양자화의 정수/복원값·오차/포화를 계산하고 보정/검증 자료의 역할을 설명한다.
  • batch별 처리량·개별 관측의 대기/응답 지연을 계산하고 정확도/성공률과 함께 비교한다.

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

권장 선수

M11의 텐서/평가와 M27.01의 자원 예산을 사용한다. scale/zero point·round/clip과 처리량/지연을 본문에서 보충한다. 기본은 합성 숫자/시간표 계산이며 실제 모델 변환·학습·추론 성능을 측정한 자료가 아니다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

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

파라미터 수와 한 성분의 저장 크기를 곱한다

모델의 파라미터는 학습된 가중치/편향 같은 수치 성분이다. 파라미터 수 N과 성분당 bit 수 b가 주어지면 메타데이터/압축을 제외한 단순 저장량은 N×b/8 byte다. bit는 이진 자리 하나이고 8 bit가 1 byte다. 여기의 MB는 100만 byte이며 MiB와 구분한다. N=천만이면 float32는 40 MB, float16은 20 MB, int8은 10 MB다. 이는 같은 성분 수의 원시 배열 비교이며 실제 파일 크기/실행 RAM과 다를 수 있다.

모델 크기를 줄이는 방법도 구분한다. 작은 구조로 N을 줄이면 모델 자체가 바뀌고, 정밀도를 바꾸면 같은 성분을 표현하는 자료형/범위가 바뀐다. float16과 int8은 단지 bit 수 차이만 있는 것이 아니라 수의 표현 방식도 다르다. 가중치만 저정밀도이고 활성값은 다른 형식일 수 있으며, 일부 연산을 고정밀도로 유지하는 혼합 구성도 있다. 모든 텐서가 같은 bit라고 가정하지 않는다.

실행에는 활성값/임시 작업 공간·입력/출력 복사와 런타임이 추가된다. int8 배열이 4분의 1 크기라고 전체 메모리나 지연이 정확히 4분의 1이 되는 것은 아니다. 연산 커널은 특정 자료형/shape에 맞춘 실제 실행 코드다. 장치/런타임이 필요한 커널을 지원하지 않으면 변환/다른 장치 실행 비용이 늘거나 실행이 실패할 수 있다. 저장 가능, 실행 가능, 목표 성능 달성을 다른 판정으로 둔다.

양자화는 연속 값을 유한한 격자로 옮기는 근사다

교육용 affine 양자화에서 실수 x를 정수 q로 옮기고 복원값 x_hat을 다음처럼 정의한다. scale s는 양의 실수이고 한 정수 간격에 해당하는 크기, zero point z는 실수 0을 나타내는 정수다. round는 가까운 정수로 반올림하며 이번 예는 정확히 중간인 입력을 사용하지 않는다. clip은 최솟값/최댓값 밖의 정수를 경계에 고정하는 연산이다.

q=clip⁡(round⁡(x/s)+z,qmin⁡,qmax⁡),x^=s(q−z).q=\operatorname{clip}(\operatorname{round}(x/s)+z,q_{\min},q_{\max}),\qquad \hat x=s(q-z).

int8 범위를 −128~127, s=0.02, z=0으로 정한 무차원 예에서 x=0.734이면 x/s=36.7→q=37→복원 0.74다. 부호 있는 오차를 복원−원본으로 정하면 +0.006이다. 정수 37 자체를 물리 행동 37 rad로 쓰는 것이 아니다. 원래 성분의 단위/정규화와 양자화 복원을 연결해야 한다.

범위 안에서 포화가 없으면 최근접 반올림의 절대 오차는 간격의 절반인 0.01 이하이다. 그러나 x=3이면 q 후보 150을 127로 clip하고 복원값은 2.54, 오차는 −0.46이다. 범위 밖에서는 0.01 상한을 적용할 수 없다. 포화로 서로 다른 큰 값이 같은 경계에 모일 수 있다는 것이 실패의 핵심이다. 이 단순 오차 상한이 여러 층을 지난 모델 출력/작업 성공 오차 상한을 보장하지도 않는다.

보정 자료로 정한 범위와 시험 자료를 분리한다

ONNX Runtime 공식 설명은 정적 양자화의 활성값 범위를 보정 자료로 미리 정하는 방법과 동적으로 범위를 계산하는 방법을 구분한다. 보정(calibration)은 이 문맥에서 양자화 범위/scale 등을 정하는 과정이며 카메라 기하 보정과 목적이 다르다. 양자화 인식 학습은 학습 중 근사 영향을 고려하는 별도 접근이다. 이 단위는 실제 변환 API를 실행하지 않는다.

보정 입력이 밝은 장면뿐이면 어두운 장면의 활성값/오류가 달라질 수 있다. 입력 전처리·관측 범위가 실제 운용과 관련 있는지 확인하고, 최종 시험을 보고 반복해서 범위를 골랐다면 그 시험은 독립 평가가 아니다. 설정 선택용 자료와 잠근 시험을 나누고 원 모델/변환 모델을 같은 입력·지표로 비교한다. 원래 모델의 오차도 있으므로 두 출력의 차이만 작다고 과업을 잘 수행한다고 결론내리지 않는다.

연산자/하드웨어 지원과 변환 오버헤드 때문에 양자화가 느려질 수도 있다는 것이 공식 문서의 중요한 경계다. 따라서 비트 수만으로 가속 배수를 쓰지 않고, 모델/런타임·장치와 실제 실행 경로를 함께 기록한다. 특정 변환 파일 하나의 결과를 모든 CPU/GPU나 다른 해상도에 전이하지 않는다.

batch 처리량의 향상은 각 관측의 지연과 다르다

batch B는 한 번의 모델 실행에 함께 넣는 입력 수다. 독립 카메라 여러 대의 입력을 묶는 것과 같은 로봇의 과거 프레임을 묶는 것은 입력 의미가 다르다. batch 축과 정책의 시간창 축을 혼동하지 않는다. 관측을 모으는 대기 시간도 실행 시간과 별개다.

합성 표에서 B=1의 실행 시간이 12 ms이면 실행 구간 처리량은 1/0.012≈83.3개/s다. B=4의 실행 시간이 28 ms이면 4/0.028≈142.9개/s다. 그러나 10 ms 간격으로 0/10/20/30 ms에 도착한 네 입력을 모두 기다렸다가 30 ms에 실행을 시작하고 58 ms에 끝내면 개별 지연은 58/48/38/28 ms다. 28/4=7 ms는 입력당 평균 계산 비용에 가까운 비율이며 각 관측의 응답 지연이 아니다.

기한 40 ms라면 첫 두 입력은 기한을 놓친다. 이 한 묶음의 계산은 정상상태 큐의 안정성을 입증하지 않는다. 도착률/처리율과 연속 batch의 서비스·대기 정책을 별도로 검토해야 한다. 제어에서 오래된 관측이 생기면 처리량 향상이 과업 성공에 도움이 되지 않을 수 있다. 적은 batch가 무조건 최선이라는 뜻도 아니며 요청/기한과 자원에 맞춰 판정한다.

가상 비교에서 변환 전후 같은 독립 시험 100건의 분류 정답이 94/92건, 별도 작업 시험 20건의 성공이 16/14건이었다고 주면 정확도는 94/92%, 작업 성공률은 80/70%다. 시간과 메모리가 좋아도 어떤 손실을 허용할지 사전 기준이 필요하다. 이 작은 표로 통계적 우열이나 실제 로봇 성과를 주장하지 않는다. 기존 5.10 평가와 6.2 정량 진단을 함께 사용하자.

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

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

    5.7 LoRA 기반 파인튜닝

    목표 일부 관련

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

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

    5.15 트러블슈팅

    목표 일부 관련

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

학습 범위와 한계

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

실습 필수

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

입력은 N=천만/32·16·8 bit, 본문의 s=0.02/z=0/int8과 x=0.734/3, batch 시간표 및 정답/작업 성공 건수다.

  1. 세 원시 저장량을 계산하고 실제 실행 메모리/지원에 추가로 확인할 항목을 적는다.
  2. 두 입력의 정수/복원/오차를 계산하고 포화 전후 오차 상한의 적용 범위를 설명한다. 보정/선택/시험 자료의 역할도 적는다.
  3. 두 batch의 실행 구간 처리량과 네 관측의 지연·기한 누락, 정확도/작업 성공률을 계산해 교체 판단에 필요한 근거를 제안한다.

관찰은 크기/실행, 근사/자료, 지연/품질의 세 열이다. 막히면 bit를 byte로 바꾸고 q 후보와 clip 결과를 따로 쓴다. 실제 ONNX 변환/모델/장치는 필요하지 않다.

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

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

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

  • 코드·원본 파일 · 관련 기존 자료 · 보충 참고

    05_lerobot_smolvla/code/lora_budget.py

    목표 충족 범위 없음

    파일 열람은 코드 실행·실습 완료를 뜻하지 않습니다.

학습 범위와 한계

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

평가·해설 필수

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

확인 문제 Q1

파라미터 2백만 개의 32 bit/8 bit 원시 저장량을 MB로 구하라. 이 비율로 실제 지연/전체 RAM도 같게 줄어든다고 할 수 있는가?

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

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

확인 문제 Q2

본문 양자화에서 x=−0.734의 q/복원/오차를 구하라. 범위 밖 값에도 절대 오차 0.01 이하라고 할 수 있는가? 보정 자료와 최종 시험을 구분하라.

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

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

확인 문제 Q3

입력 세 개가 0/10/20 ms에 도착하고 20 ms에 함께 실행해 44 ms에 끝났다. 실행 구간 처리량과 개별 지연, 기한 35 ms의 누락을 구하라. 이 수치만으로 품질까지 승인할 수 있는가?

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

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

학습 범위와 한계

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

참고 자료

학습 확인

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

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

학습 이동

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

전체 목차로 돌아가기 →

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