Skip to content

Optimizing AI for Microcontrollers

인공지능(AI)은 방대한 데이터를 분석하고 복잡한 모델을 추출하며 자율적으로 결정을 내릴 수 있는 능력 덕분에 많은 분야를 근본적으로 변화시켰다. 많은 장점에도 불구하고, 현재까지의 대부분의 AI 응용 프로그램은 강력한 GPU를 갖춘 컴퓨터나 클라우드 서버와 같은 고성능 컴퓨팅 플랫폼에서 구현되도록 설계되었다. 그러나 분산화되고 비용 효율적인 솔루션에 대한 요구가 증가함에 따라, 적은 전력으로 작동할 수 있는 마이크로컨트롤러(MCU) 및 저비용 하드웨어 플랫폼과 같은 소형 장치에 이러한 모델을 적용하려는 노력이 시작되었다. MCU에서 AI 모델을 직접 실행할 수 있는 능력은 사물 인터넷, 자동차, 산업, 소비자 제품, 로봇 공학, 웨어러블 기기 등 에너지 소비와 비용을 최소화해야 하는 모든 응용 분야에 무궁무진한 가능성을 열어준다. 오늘날 점점 더 발전하는 기술 덕분에, 큰 컴퓨팅 능력이 없는 하드웨어에서도 AI 알고리즘을 구현하는 것이 가능해졌다.

MCU power consumption and performance#

MCU(마이크로컨트롤러)는 기본적인 컴퓨팅이 필요한 하드웨어에 통합된 소형 저전력 컴퓨팅 장치이다. 이는 가정용 전자기기나 모바일 연결 장치와 같은 우리가 일상적으로 사용하는 수십억 대의 장치에 지능을 부여하며, 비싼 하드웨어나 안정적인 인터넷 연결, 그리고 대역폭 및 전력의 제한 없이 작동할 수 있다. 또한, MCU는 데이터를 장치 밖으로 전송하지 않아 개인정보를 보호하는 데에도 도움을 준다. 우리의 일상 활동에 맞춰 적응하는 스마트 가전제품이나 고장과 정상 작동을 구분할 수 있는 지능형 산업용 센서를 상상해보라.

컴퓨팅 파워를 강력한 중앙 서버에서 MCU로 이동시키는 것은 혁신적인 접근 방식이다. MCU는 저비용 장치에 통합되도록 설계되었으며, 낮은 전력 소비와 제한된 자원을 가지고 있다. PC나 서버에 비해 훨씬 적은 컴퓨팅 성능을 제공한다. 하드웨어 수준에서 보자면, MCU는 일반적으로 수십에서 수백 킬로바이트의 RAM, 몇 MHz에서 수십 MHz에 이르는 클럭 속도, 32비트(때로는 8비트) 아키텍처를 갖추고 있어 AI 모델이 주로 실행되는 전통적인 플랫폼에 비해 성능이 낮다.

또 다른 중요한 요소는 전력 소비이다. MCU는 종종 배터리로 구동되는 시스템에서 사용되는데, 예를 들어 원격 제어를 위한 무선 센서 네트워크나 휴대용 웨어러블 기기와 같은 응용 프로그램에서는 소모되는 매 전류가 배터리 수명과 성능에 직접적인 영향을 미칠 수 있다. 따라서 AI 기술은 계산 능력뿐만 아니라 에너지 효율성 면에서도 최적화되어야 한다. MCU의 전력 소비는 모델과 특정 응용 프로그램에 따라 다르다. 일반적으로 Arm Cortex-M0+ 시리즈와 같은 저전력 MCU는 대기 모드에서 몇 마이크로암페어만 소비하며, 작동 중에는 몇 밀리암페어만 소비한다. 반면, Arm Cortex-M4나 M7 시리즈와 같은 더 강력하고 복잡한 MCU는 완전히 작동 중일 때 수십 밀리암페어를 소비할 수 있다. 특히 배터리에 의존하는 응용 프로그램의 경우 소비를 최적화하기 위해 설계 시 전력 관리를 항상 고려하는 것이 중요하다.

일반적으로 엣지 장치에서 AI 응용 프로그램을 구현할 때는 데이터셋으로 모델을 학습시키는 초기 단계와, 학습된 모델을 직접 장치에 배포하는 단계가 포함된다. 공개된 데이터셋을 다운로드하거나 사용자 정의 데이터셋을 직접 생성할 수도 있다.

Implementing AI on MCUs#

온칩 AI 통합은 데이터를 중앙 서버로 전송하여 처리할 필요 없이, 데이터를 수집하는 지점 가까이, 즉 엣지에서 지능형 로컬 처리를 가능하게 한다. MCU에서 AI를 구현하는 한 가지 장점은 지연(latency) 감소이다. 데이터 처리가 로컬에서 이루어지기 때문에, 동작에 대한 응답 시간이 매우 빠르다. 데이터 통신은 실제로 병목현상이 될 수 있는데, 데이터를 클라우드 서버로 업로드하여 실시간 처리하는 과정에서 지연 및 개인정보 보호 문제가 발생할 수 있기 때문이다. AI 기능을 갖춘 MCU는 센서로부터 얻은 복잡한 데이터를 실시간으로 처리할 수 있다.

엣지 AI는 에너지 효율성을 더욱 높여준다. MCU는 최소 전력 소비로 작동하도록 설계되어 있으며, 이는 휴대용 또는 배터리로 구동되는 응용 프로그램에 필수적이다. 네트워크 사용을 최소화하면 원격 서버로 대량의 데이터를 전송하는 데 필요한 에너지 소비를 줄일 수 있다. 또한, 데이터 처리가 로컬에서 이루어지기 때문에 민감한 데이터를 안전하지 않은 네트워크를 통해 전송할 필요가 없어 데이터의 개인정보 보호와 보안이 향상된다.

AI 기능을 갖춘 MCU는 상대적으로 저렴한 비용으로 대량 배포가 가능하여 다양한 장치와 응용 프로그램에 지능형 시스템을 구현할 수 있다. MCU에서 AI를 통합하면 데이터와 사용자 상호작용으로부터 학습하여 매우 개인화된 경험을 제공하는 고급 수준의 개인화를 구현할 수도 있다.

기술 업계는 MCU에서 AI 모델을 실행할 수 있도록 최적화하는 새로운 솔루션을 개발해왔다. 최근 몇 년간 Edge Impulse와 Google TensorFlow Lite for Microcontrollers는 MCU의 한계를 해결하고 개발자에게 지속적인 지원을 제공하는 역량으로 주목받고 있다. 이 플랫폼들은 몇 킬로바이트의 메모리만으로도 머신러닝(ML) 모델을 MCU와 기타 장치에서 실행할 수 있도록 설계되었다.

TensorFlow Lite(현재는 LiteRT로 명명)는 사전 학습된 TensorFlow 모델을 속도와 메모리에 최적화된 형식으로 변환할 수 있는 크로스 플랫폼 완전 오픈 소스 딥러닝 프레임워크이다. 이 모델은 Android, iOS, Linux, Raspberry Pi 및 MCU와 같은 다양한 운영 체제를 기반으로 한 임베디드 장치에서 로컬 추론을 수행할 수 있다. MCU에서 TensorFlow 모델을 실행하는 일반적인 워크플로는 모델 학습 및 대상 장치에서의 추론 실행과 특수 라이브러리를 사용하는 과정을 포함한다.

Edge Impulse와 TensorFlow Lite for Microcontrollers 플랫폼은 임베디드 장치에서 AI 모델을 구현하는 데 있어 중요한 역할을 해왔다. 고급 모델 압축 기술, 하드웨어 맞춤 최적화, 직관적이고 사용하기 쉬운 도구 체인을 결합함으로써, 이제 매우 제한된 자원을 가진 장치에서도 신경망을 실행할 수 있게 되었다. 이러한 기술 발전은 하드웨어의 지속적인 소형화와 계산 능력 및 메모리 요구를 줄이는 효율적인 알고리즘 개발 덕분에 가능해졌다. 이러한 신기술의 영향은 스마트 홈 분야에서 명확히 드러나는데, MCU가 내장된 장치들은 AI를 사용해 제스처나 음성 명령을 인식하거나, 원격 서버 없이 비디오 스트림을 분석하거나, 카메라 데이터를 사진 센서를 통해 획득하는 시스템으로 사람을 감지할 수 있다. 응용 분야는 실로 다양하고 광범위하다. 자동차 산업에서도 AI를 탑재한 MCU는 차량 센서 데이터를 실시간으로 분석해 주행 안전성을 높이고 자율주행 시스템의 성능을 최적화하는 데 사용될 수 있다.

Democratizing AI on MCUs with Edge Impulse#

Edge Impulse는 AI를 민주화하려는 목표를 가진 혁신적인 플랫폼으로, 데이터 수집, 모델 생성, 학습 및 엣지 컴퓨팅 장치(특히 MCU)에서의 배포를 다룬다. 2019년에 설립된 이 회사는 저전력 하드웨어에 최적화된 AI 모델의 설계, 학습 및 배포를 용이하게 하는 포괄적인 도구 세트를 통해 MCU를 위한 머신러닝 분야에서 빠르게 선두 자리를 차지했다. Edge Impulse의 주요 특징 중 하나는 "엔드 투 엔드" 접근 방식으로, 개발자가 데이터 수집부터 최종 배포까지 ML(머신러닝) 파이프라인을 직접 구축할 수 있도록 한다.

이 과정은 직관적인 웹 인터페이스 덕분에 간소화되었으며, MCU에 연결된 센서로부터 데이터를 수집하고, 이를 처리하며, AI 모델을 학습시키고, 학습된 모델을 실제 장치에 배포할 수 있다. 이 모든 과정은 고급 프로그래밍이나 임베디드 소프트웨어 개발 지식 없이도 가능하다. Edge Impulse는 데이터 수집, 특징 추출, ML 모델 설계, 모델 학습 및 테스트에서 최종 장치에 모델을 배포하기까지 엣지 AI 생애 주기의 모든 단계를 지원한다.

image

엣지 장치의 처리 성능, 운영 체제, 지원 언어 등이 다양하기 때문에 구현 과정이 복잡할 수 있다. 이를 해결하기 위해 Edge Impulse는 애플리케이션을 구축할 수 있는 다양한 배포 옵션을 제공한다. 일반적으로 이러한 배포는 모델과 쉽게 상호작용할 수 있도록 하는 오픈 소스 라이브러리 형태로 제공된다. Edge Impulse는 다른 ML(머신러닝) 프레임워크와 쉽게 연결되어 모델을 필요에 따라 확장하고 사용자 정의할 수 있다.

예를 들어, 실제 응용 사례에서 Edge Impulse는 원격 서버로 데이터를 전송하지 않고도 로컬에서 음성 명령을 인식할 수 있는 배터리 구동 웨어러블 장치용 음성 인식 모델을 개발하는 데 사용될 수 있다. 하드웨어에 맞게 모델을 최적화함으로써 전력 소비를 매우 낮게 유지할 수 있었으며, 이를 통해 장치의 배터리 수명이 연장되었다.

또 다른 주목할 만한 응용 사례는 Edge Impulse를 산업 플랜트의 예측 진단에 사용하는 것이다. 저비용 센서와 통합된 MCU는 기계의 동작을 모니터링하고, 낮은 계산 자원으로 실행되도록 최적화된 모델을 사용하여 실시간으로 이상 현상을 감지하도록 프로그래밍되었다. 이를 통해 기업은 다운타임을 줄이고 예방 정비를 개선할 수 있었다. 이 플랫폼은 가장 간단한 Arm Cortex-M 장치부터 가장 고급 솔루션에 이르기까지 다양한 MCU를 지원하며, 기존 AI 모델 라이브러리와의 호환성에서도 두각을 나타낸다. 이러한 유연성 덕분에 개발자는 다양한 하드웨어에 AI를 통합할 수 있으며, IoT를 위한 지능형 솔루션의 제작을 더 쉽게 만들었다.

Edge Impulse Studio는 그래픽 인터페이스를 갖춘 웹 기반 도구로, 데이터를 수집하고 모델을 최종 장치에 배포할 수 있도록 한다. 데이터는 수집 도구를 사용해 저장, 정렬 및 라벨링할 수 있다.

image

Edge Impulse는 표준 특징 추출 방법 세트를 사용하거나 수정하여 특정 프로젝트에 맞출 수 있도록 지원하며, 사용자가 직접 프로세싱 블록을 이용해 맞춤형 특징 추출 방법을 생성할 수도 있다. 다음 단계에서는 학습 블록을 사용하여 ML(머신러닝) 모델을 학습시킬 수 있다. 이 플랫폼은 미리 정의된 학습 블록 세트를 제공하지만, 사용자 정의 학습 블록을 생성하거나 전문가 모드를 사용해 ML 코드를 수정할 수도 있다.

모델이 학습된 후에는 홀드아웃 세트를 사용해 테스트하거나, 장치를 연결해 실시간 데이터를 수집하여 테스트할 수 있다.

image

과정이 완료되면, 완성된 모델은 C++ 라이브러리, 지원되는 하드웨어용으로 사전 빌드된 펌웨어 등 다양한 형식으로 배포할 수 있다. 또한, 이 플랫폼은 엔터프라이즈 기능 세트를 제공하여 완전한 엣지 ML 파이프라인을 구축하고 배포를 확장할 수 있도록 지원한다. 이를 통해 더 빠른 성능과 더 긴 학습 시간을 활용하여 더 크고 복잡한 모델을 구축할 수 있다.

Google TensorFlow Lite for Microcontrollers#

MCU를 위한 AI 분야의 또 다른 참조 플랫폼은 Google TensorFlow Lite for Microcontrollers이다. TensorFlow Lite는 잘 알려진 TensorFlow 딥러닝 라이브러리의 축소 버전으로, 모바일 및 임베디드 장치를 위해 AI 모델을 최적화하기 위해 만들어졌다. Google TensorFlow Lite for Microcontrollers는 계산 자원과 메모리 용량이 극도로 제한된 MCU에서 신경망을 실행하기 위한 구체적인 목표를 가지고 더 발전된 형태로 개발되었다.

이 플랫폼의 성공 요인은 정확도를 손상시키지 않으면서 AI 모델의 크기를 줄이는 양자화(quantization) 기법의 채택에 있다. 양자화는 신경망 모델을 32비트 표현에서 8비트 버전으로 압축하여 모델을 가볍게 하고 계산 비용을 줄인다. 이 기술 덕분에 플랫폼은 몇 킬로바이트의 RAM과 플래시 메모리만으로 고급 모델을 MCU에서 실행할 수 있다.

TensorFlow Lite for Microcontrollers는 스마트 농업 센서에 통합될 수 있다. 예를 들어, MCU에 TensorFlow Lite를 프로그래밍하여 토양 온도와 습도와 같은 실시간 환경 센서 데이터를 분석하고, 관개 시기를 예측하여 물 낭비를 줄이고 작물 수확량을 개선하는 파일럿 프로젝트를 상상해볼 수 있다. 이 경우, AI를 장치에서 직접 실행할 수 있는 능력은 클라우드와의 빈번한 통신 필요성을 줄이고, 연결 비용을 절감하며 전반적인 에너지 효율성과 지연(latency)을 개선한다.

이 플랫폼은 또한 심박수와 주요 생체 신호를 모니터링하는 웨어러블 장치와 같은 건강 모니터링 기기에 성공적으로 사용되었다. 데이터를 로컬에서 처리하고 중앙 클라우드 처리에 의존하지 않고 실시간 피드백을 제공할 수 있는 능력은 이러한 장치의 응답성을 크게 향상시켰으며, 건강 문제를 감지하기 위한 중요한 이상 상태 경고 기능을 가능하게 했다.

TensorFlow Lite for Microcontrollers의 또 다른 주목할 만한 측면은 대규모 개발자 커뮤니티와 Arm MCU, ESP32 및 타사 MCU와 개발 보드를 포함한 다양한 하드웨어 아키텍처에 대한 광범위한 지원이다. 이 플랫폼은 풍부한 예제와 문서를 제공하여 AI 경험이 적은 개발자도 쉽게 사용할 수 있도록 한다.

MCU에 최적화된 AI 모델은 우리가 AI와 엣지 컴퓨팅을 상호작용하는 방식을 혁신하고 있다. 오늘날 AI 플랫폼과 MCU 간의 시너지는 제한된 계산 자원을 가진 하드웨어의 기술적 한계를 극복하기 위한 성공적인 솔루션을 제공한다. Edge Impulse와 TensorFlow Lite for Microcontrollers와 같은 플랫폼은 미래가 클라우드에만 있는 것이 아니라 MCU와 실현 가능한 구체적인 아이디어가 있는 모든 곳에 있음을 보여준다. 이 분야의 지속적인 혁신은 AI를 모든 장치로 가져오고, 비용, 에너지 소비 및 성능 측면에서 가장 까다로운 응용 프로그램에도 AI를 적용할 수 있도록 약속하고 있다.