GN⁺: TinyML: 초저전력 머신러닝 기술
(ikkaro.net)TinyML이란 무엇인가
- TinyML은 마이크로컨트롤러에서의 머신 러닝 사용을 의미함.
- 전통적인 ML에서 사용되는 시스템과 달리, CPU와 RAM이 매우 적고, 전력 소비가 밀리와트 또는 마이크로와트 수준인 시스템에서 사용됨.
- 큰 모델을 축소하여 자원이 매우 적은 장비와 마이크로컨트롤러에서 사용할 수 있도록 하는 작업을 수행함.
- TinyML 재단의 공식 웹사이트는 https://www.tinyml.org/
- 하버드 대학에서 무료로 제공하는 3개의 강좌 시리즈가 있음:
- TinyML의 기초 (무엇을 만들고, 왜 만들며, 어떤 문제가 있는지)
- TinyML의 응용 (데이터 기반, 편향 등)
- TinyML 배포 (모델을 어디에 배치할지, 보안 및 개인 정보 보호)
TinyML의 기본 원리
- 마이크로컨트롤러를 사용하는 임베디드 시스템은 최대 256kB의 메모리를 가지고 있어 큰 모델을 작동시킬 수 없음.
- 마이크로컨트롤러와 함께 사용할 수 있는 몇 가지 운영 시스템 예시:
- FreeRTOS
- Mbed OS
- 머신 러닝은 데이터에서 패턴을 찾는 알고리즘으로 구성됨.
- TinyML에서는 이러한 알고리즘을 압축하여 데이터에서 패턴을 효과적으로 찾을 수 있도록 함.
- IoT에서 하루에 생성되는 데이터는 5퀸틸리언 바이트이며, 이 중 1% 미만만 분석됨.
알고리즘 압축 기법
-
가지치기(Pruning)
- Synapsis 가지치기: 모델에서 네트워크 연결을 제거함. 때때로 정확도가 감소할 수 있음.
- Neurons 가지치기: 모델에서 전체 뉴런을 제거하여 네트워크의 계산 요구를 줄임.
-
양자화(Quantization)
- 값들을 작은 범위 내에서 이산화함. 예를 들어, 부동 소수점을 -128에서 127 범위 내로 이산화하면 256개의 값만 탐색하면 됨.
- 4바이트에 저장되는 부동 소수점 값을 1바이트에 저장되는 정수 값으로 바꾸면 크기가 4배 줄어듦.
- 제한된 자원 때문에 TinyML에서 양자화는 매우 중요함.
-
지식 증류(Knowledge distillation)
- 지식과 노하우를 적용하여 모델을 작게 만듦.
도구
- TensorFlow Lite 사용.
- TensorFlow는 ML 연구자에 초점을 맞춘 반면, TensorFlow Lite는 애플리케이션 개발자를 위함.
TinyML의 사용
- DIY, 메이커, 해커 세계에 특화된 TinyML의 사용 사례를 이 웹사이트에서 찾을 수 있음.
산업에서의 TinyML 사용
- 산업 분야에서는 유지보수에 사용되어 진동이 발생할 때 고장이 날 것을 경고함으로써 효율성을 높이고 비용을 절감함.
- 정확도 문제로 인해 거짓 경보가 발생할 수 있으며, 거짓 경보의 책임은 운영자 또는 시스템에 있음.
환경에서의 TinyML
- 데이터를 수집한 후 처리하는 대신, TinyML을 사용하면 환경 변화에 대한 실시간 답변을 얻을 수 있음. 예를 들어 야생 동물의 생활에서 변화를 실시간으로 알 수 있음.
인간을 위한 TinyML
- 장애가 있는 사람들이 손을 사용하지 않고도 더 많은 작업을 수행할 수 있도록 도움.
- 애플리케이션의 UI와 UX를 개선하여 사용하기 쉽게 만듦.
- 기술은 인간의 경험을 향상시키기 위해 만들어짐. 기술은 사람들을 도와야 함.
위험성과 단점
- 모든 인구 집단에서 잘 작동할 것인가?
- 데이터의 개인 정보 보호가 보장되는가?
- 이 데이터를 보호할 수 있는가?
- 인간 중심의 AI를 기반으로 기술을 만들어야 함. 설계, 개발, 배포 과정에서 이를 고려해야 함.
GN⁺의 의견
- TinyML은 자원이 제한된 환경에서도 머신 러닝을 가능하게 하는 혁신적인 기술로, IoT 기기의 효율성과 지능을 크게 향상시킬 수 있음.
- 가지치기, 양자화, 지식 증류와 같은 알고리즘 압축 기법은 머신 러닝 모델을 소형화하여 저전력 장치에서도 실행 가능하게 만드는 핵심 요소임.
- TinyML의 적용은 산업 유지보수, 환경 모니터링, 장애인 지원 등 다양한 분야에서 인간의 삶을 개선하는 데 기여할 수 있으며, 이는 기술이 사회에 미치는 긍정적인 영향의 좋은 예임.
Hacker News 의견
-
Rust TinyML 컴파일러 개발
- 마스터 논문 프로젝트로 Rust 기반 TinyML 컴파일러를 개발함.
- Rust 프로시저 매크로를 사용하여 컴파일 시간에 모델을 평가하고, 주어진 모델에 대한 추론을 수행하는
predict()
함수를 생성함. - TensorFlow Lite for Microcontrollers 및 기타 엔진보다 훨씬 더 작은 바이너리 크기를 달성함.
- 8비트 ATmega328 (Arduino Uno)에서 음성 명령 인식기(TinyConv)를 실행하는 데 성공함.
-
TinyML 분야의 매력
- TinyML은 매우 작은 하드웨어에서도 많은 것을 할 수 있는 멋진 분야임.
- 예를 들어, esp32-s3를 사용하여 실시간 컴퓨터 비전 시스템을 구축할 수 있음(가격은 약 2달러).
- AutoML과 같은 솔루션을 통해 TinyML 분야에 쉽게 접근할 수 있음.
- 하드웨어 회사들이 소비 전력을 최소화하기 위해 NPU를 탑재한 MCU를 제공하기 시작함.
- TinyML은 앞으로 더 많은 주목을 받을 가능성이 높음.
-
LLM을 이용한 인프라 타겟 바이러스
- LLM(Large Language Models)을 사용하여 인프라를 대상으로 하는 바이러스를 상상함.
- 소형 장치를 전력망에 숨겨 네트워크 트래픽을 수집하고 시스템을 파괴하려고 시도할 수 있음.
- 이러한 장치는 네트워크 장비에 숨겨져 외부 트래픽을 필요로 하지 않으므로 탐지하기 어려움.
-
Edge Impulse의 TinyML / Edge ML 설명
- Edge Impulse는 ML 모델을 구축하고 에지 디바이스에 배포할 수 있는 플랫폼을 구축함.
- 사용자는 계정을 만들고 키워드 스팟팅 모델을 구축한 후 WASM에서 직접 실행할 수 있음.
- 임베디드 가속기 ASICs/NPUs의 등장이 Edge ML의 채택을 주도하고 있음.
-
Hacker Box의 ESP32 및 Tensor Flow Lite와 Edge Impulse 사용 예
- 최근 Hacker Box에서 ESP32와 Tensor Flow Lite, Edge Impulse를 사용한 자세한 예제를 제공함.
-
TinyML의 현재와 미래
- TinyML은 저전력 임베디드 디바이스에서 머신 러닝을 실행하는 것을 의미함.
- 모든 휴대폰에는 "Hey Google" 또는 "Hey Siri"와 같은 키워드를 감지하는 저전력 DSP 칩이 탑재되어 있음.
- TinyML은 에지 AI의 하위 집합으로, 네트워크 가장자리에 위치한 모든 유형의 장치를 포함함.
- 이 분야는 매우 흥미롭고, 다양한 문제를 해결하고, 거의 모든 공간에 적용될 수 있는 기술임.
-
TinyML에 대한 다양한 의견
- TinyML 분야는 제약이 있는 솔루션을 만드는 것이 중요한 영향을 미칠 것이라는 의견이 있음.
- TinyML은 IoT와 유사하게, 미래의 중요한 기술로 간주되지만, 실제로는 느리게 발전하고 있음.
- TinyML 분야의 추가 콘텐츠를 찾는 이들을 위해 아시아 2023 컨퍼런스의 비디오들이 제공됨.