3P by neo 4달전 | favorite | 댓글 1개

TinyML이란 무엇인가

  • TinyML마이크로컨트롤러에서의 머신 러닝 사용을 의미함.
  • 전통적인 ML에서 사용되는 시스템과 달리, CPU와 RAM이 매우 적고, 전력 소비가 밀리와트 또는 마이크로와트 수준인 시스템에서 사용됨.
  • 큰 모델을 축소하여 자원이 매우 적은 장비와 마이크로컨트롤러에서 사용할 수 있도록 하는 작업을 수행함.
  • TinyML 재단의 공식 웹사이트는 https://www.tinyml.org/
  • 하버드 대학에서 무료로 제공하는 3개의 강좌 시리즈가 있음:
    1. TinyML의 기초 (무엇을 만들고, 왜 만들며, 어떤 문제가 있는지)
    2. TinyML의 응용 (데이터 기반, 편향 등)
    3. 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 컨퍼런스의 비디오들이 제공됨.