본문 바로가기
임베디드 AI/TinyML

TinyML (온 디바이스 AI)

by MachineJW 2025. 11. 14.

1. 온 디바이스 AI 란?

클라우드 AI와 온 디바이스 AI 구조

네트워크를 통해 별도 서버나 클라우드를 거치지 않고 Device (모바일, 임베디드 장치 등) 자체 에서 AI 모델을 탑재하는 기술을 말한다.

    • 과거에는 AI 모델을 실행시키려면 네트워크를 통해 분석 서버나 클라우드 환경으로 전송하고 연산 결과를 서버가 다시 디바이스에 추론 결과를 전송 해야 했다. (즉 반드시 네트워크가 연결이 필수적이 였다)
    • Edge AI, Device AI, Embedded AI 라고도 불리지만 어원은 "On Device AI" 에서 비롯되었다.
    • 이제는 디바이스가 입력 데이터를 클라우드에 전송하는 것이 아니라, 디바이스에서 추론한 AI 출력 결과값을 클라우드 서버로 보내는 구조도 흔히 볼 수 있다.

2. 온 디바이스 AI 는 왜 효율적인가?

이제는 디바이스들이 모두 IoT라고 해도 과언이 아니다.

" IoT 디바이스라면 어차피 네트워크에 접속되어야 하는데 차라리 클라우드나 서버에서 AI를 처리하는 것이 더 효율적이지 않을까? " 
" 왜 인터넷 환경으로 접속되는 IoT 디바이스에 AI를 탑재 해야 하는가 ? "
- 실제 온 디바이스 AI 필요성에 대한 질문들 -

 

그럼에도 불구하고.... 다음과 같은 이유에서 On Device AI 기술은 확실히 유리한 장점이 있다.

(1) 네트워크 의존성 감소

온 디바이스 AI는 네트워크가 끊겨도 디바이스가 스스로 판단·예측·분류·감지를 수행할 수 있다.
네트워크 상태가 불안정한 곳에서도 안정적인 AI 동작을 보장할 수 있다.

(2) 실시간성 보장

실시간 처리가 반드시 되어야하는 대표 임베디드 (디바이스) 개발 분야

데이터가 클라우드까지 왕복하는 시간이 사라져 결과값을 추론하는 지연(latency) 현상이 거의 없다.

이는 임베디드 분야에서 당연한 이야기지만, 실시간 처리가 보장되어야 하는 상황에서는 매우 유리하다.

안전 장치나 우주항공, 방산 등의 시스템에는 이러한 실시간 처리가 보장되어야 한다.

디바이스 AI라면 빠른 처리에 유리하므로 이러한 하드 실시간 처리 장치들에도 적용해 볼 수 있을 것이다.

 

* 하드 실시간 처리(Hard Real-Time Processing)는 시간 제약을 절대 어겨서는 안 되는 임베디드 시스템으로, 데이터 처리 실패 시 치명적인 결과를 초래하는 경우에 사용됩니다. 예를 들면 자동차 에어백 장치, 브레이크 장치, 생명과 직결 된 의료기기, 방산 등

반대로 조금 여유를 두어도 되는 (시간 지연이 허용되는) 시스템은 소프트 실시간 처리 ( Soft Real-Time Processing ) 이라 하며 예를 들자면, 게임, 금융거래, 일반적인 웹 서비스, 데이터 수집 장치와 같은 시스템 입니다.

(3) 정보 보안성 강화

AI 연산을 위한 데이터들을 외부 서버로 전송하지 않아도 되므로 보안 관점에서 매우 큰 장점이다.

(4) 클라우드/서버 에너지(전력소모) 절감

데이터센터 공급 전력의 변화 (https://www.kharn.kr/news/article.html?no=10591)

클라우드 GPU/CPU 연산 비용, 데이터 업로드 비용, 유지비 등을 사용하지 않기 때문에 운영 비용(OPEX)이 크게 줄어든다.

별거 아닌 문제 같아도 글로벌 IT 에너지 사용량 중에 약 40% 이상이 데이터 센터에서 발생되고 있다고 한다.

극단적으로 GPT같은 대형 LLM 1회 질문 응답 소비전력이 1,000만 유저가 하루에 5번 사용한다 가정해도 5000kWh (예상치) 소모 된다고 한다.

Tiny ML의 경우 1mW (밀리와트) 미만의 전력 사용량으로 신경망 모델을 실행할 수 있다. 물론 하드웨어 마다 차이가 있긴 하다. 배터리를 사용하는 저전력 디바이스일 경우 이는 매우 큰 효율을 나타낼 것 이다.

최대한 적은 에너지를 소모하면서 최적의 AI 성능을 뽑아내는 것이 온 디바이스 AI 기술에서 주요 시사점이라 볼 수 있겠다.

3. TinyML (* 초소형 머신러닝의 등장)

https://www.unite.ai/ko/tinyml-applications-limitations-and-its-use-in-iot-edge-devices/

  • 임베디드 시스템(Tiny) + 기계학습(ML)
  • 컴퓨팅 환경이 자극히 제한적인 MCU (마이크로컨트롤러) 수준에서도 동작할 수 있는 머신러닝 AI 모델
  • TinyML을 대표하는 라이브러리는 공식적으로 Tensorflow Lite와 파생된 라이브러리 for MicroController가 있다. 아래에는 공식 참조 문서이니 관심이 있다면 살펴보는 것을 추천한다.

Tensorflow Lite 공식 가이드 문서

https://www.tensorflow.org/lite/guide?hl=ko

 

TensorFlow Lite

TensorFlow Lite 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. TensorFlow Lite는 개발자가 모바일, 내장형 기기, IoT 기기에서 모델을 실행할 수 있도록 지원하여 기

www.tensorflow.org

Tensorflow Lite for MicroConroller 공식 가이드 문서

https://www.tensorflow.org/lite/microcontrollers?hl=ko

 

TensorFlow Lite for Microcontrollers

TensorFlow Lite for Microcontrollers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. TensorFlow Lite for Microcontrollers는 메모리가 몇 KB만 있는 마이크로 컨트롤러 및 기타

www.tensorflow.org

4. TinyML 개발 워크플로우 (MCU)

양자화를 설명하는 그림 (아날로그 신호를 디지털로 처리하는 관점으로 봐도 된다.)

목표 설정 → 데이터셋 수집 → 모델 구조 설계 → 모델 학습 → 모델 변환 (*양자화) → 추론 실행 → 평가 및 문제해결

* Tiny ML 개발 및 배포 과정에는 반드시 양자화 (모델에 사용되는 연산용 메모리를 경량화)라는 과정을 거친다.
    • 모델을 학습하고 생성하는 것 까지는 일반적인 Tensorflow 개발과 다를바 없다.
    • 하지만 AI 모델을 마이크로컨트롤러와 같은 소형 장치에 모델을 탑재하기 위해서는 반드시 양자화(Quantization)라는 과정을 거친다.
    • 양자화란? 딥러닝 모델은 FP32 (32비트 부동소수점)을 사용하는데 이를 INT8 (8비트 정수) 또는 FP16 (16비트 부동소수점) 등으로 변환하는 작업이다.
    • 일반적으로 Tensorflow 환경에서 생성된 AI 모델은 정밀하게 연산하기 위해 0.123456789 같은 숫자를 쓰지만 사실 대부분의 예측에서는 0.12 정도의 정밀도로도 충분할 때가 많다.
    • 양자화라는 개념은 아날로그 신호 (연속적인 값)을 디지털 신호로 변환하는 과정인데 어찌 됬든 복잡한 숫자들을 더 단순히 (0,1 과 같은) 만들어준다는 관점에서 충분히 동일한 의미로 해석 할 수 있다.
    • 여기에서는 AI 연산에 사용되는 자세한 숫자들을 더 낮은 정밀도의 숫자로 바꿔버리는 과정이라고 볼 수 있다.
    • "Tensorflow Lite Converter"는 양자화하는 변환 도구이다.
    • 양자화까지 잘 수행하였다면 Tensorflow Lite (for microcontroller) C++ 라이브러리를 사용하여 모델을 로드하고 예측을 수행할 수 있다. (입력 데이터를 모델의 훈련 데이터와 동일한 형식으로 변환하는 코드는 반드시 작성해야 한다.)