피드로 돌아가기
Dev.toAI/ML
원문 읽기
Edge TPU 최적화로 추론 속도 2.5ms 달성 및 INT8 양자화 병목 해결
Building a Stock Advisor on a Coral Dev Board: From Edge TPU Bugs to Working TPU Inference
AI 요약
Context
Google Coral Dev Board의 Edge TPU를 활용한 주식 예측 시스템 구축 과정에서 발생한 하드웨어 제약 사항 분석. 특히 TFLite 양자화 과정에서 발생하는 Subgraph Split 문제로 인해 모델 출력값이 0.00%로 고정되는 치명적 병목 지점 식별.
Technical Solution
- LSTM 및 Transformer 대신 TPU Native 연산인 CONV_2D 매핑이 가능한 Conv1D 구조 채택
- Flatten 레이어를 GlobalAveragePooling1D로 교체하여 TPU-native MEAN 연산 유도 및 실행 그래프 유지
- BatchNormalization 제거를 통한 DEQUANTIZE 노드 생성 방지로 Subgraph Split 및 출력값 제로화 문제 해결
- RobustScaler의 추론 시점 재학습(Refit)을 금지하고 학습 시점의 파라미터를 고정 적용하는 엄격한 에러 처리 로직 도입
- ReLU6 활성화 함수 사용을 통해 INT8 양자화 범위 내에서 활성화 값의 상한선을 유지하는 구조 설계
Impact
- TPU 추론 속도 2.5ms 달성 (ARM CPU 대비 약 120배 성능 향상, 300ms → 2.5ms)
실천 포인트
1. Edge TPU 배포 시 컴파일러 로그(.log)를 통해 실제 TPU 매핑 비율을 반드시 확인하라.
2. Quantized 모델 설계 시 BatchNormalization은 Subgraph Split을 유발하므로 제거하고 use_bias=True 설정과 사전 정규화를 조합하라.
3. 추론 환경의 Scaler는 반드시 학습 데이터의 통계량을 유지하도록 파일 기반으로 고정하여 Data Leakage 및 통계 왜곡을 방지하라.