[편집자주] 이 글은 마크 패트릭 마우저 일렉트로닉스 기술 마케팅 관리자가 <AI타임스>에 단독 기고한 기고문이다. 자원이 제한적인 머신러닝 환경에서 구동할 수 있는 TinyML 기술에 대한 내용을 다룬다. 내용은 총 3부작으로 되어 있다. 이번 글은 세 번째 글이다.

① 자원이 제한적인 환경에서 구동하는 머신러닝, TinyML

② TinyML 장벽 낮춰주는 라이브러리·플랫폼·워크플로우는?

③ 초보자를 위한 TinyML 플랫폼, 무엇이 있을까?

마크 패트릭 마우저 일렉트로닉스 기술 마케팅 관리자.
마크 패트릭 마우저 일렉트로닉스 기술 마케팅 관리자.

TinyML 개발은 결코 쉬운 작업이 아니다. 적합한 신경망 모델을 선택하고, 모델을 학습시키고, 실제 용도로 구축하는 것은 까다롭고 복잡한 과정이다.

TinyML은 애플리케이션 용으로 갈수록 더 많은 숫자의 인공지능(AI)·머신러닝(ML) 도구들이 나오고 있어서 도움이 되고 있다.

이 글에서는 자원 제한적인 마이크로컨트롤러로 인공지능(AI) 모델을 학습하고 구축하는 작업을 간소화하는 과정으로 텐서플로우 라이트(TensorFlow Lite), 엣지 임펄스(Edge Impulse), 프라운호퍼 AIfES(Fraunhofer AIfES)를 소개한다.

엣지 애플리케이션 구축

산업용 모터 진동 모니터링 애플리케이션을 예로 들면 개발자는 가장 먼저 수십 개 모터로부터 진동 센서 데이터를 수집하는 것에서부터 작업을 시작한다. 각기 다른 결함 양상을 나타내는 모터로부터 데이터를 수집함으로써 대표성 있는 데이터를 수집할 수 있다. 이와 더불어 완벽하게 동작하는 모터로부터 데이터를 기록하는 것이 필요하다. 

그다음 단계로는 적합한 알고리즘을 선택한다. 이 알고리즘은 일련의 코드로서, 완벽한 동작 상태로부터 이탈하는 진동 시그니처의 규칙성을 알아낼 수 있다. 개발팀이 개별 진동 센서 데이터 간의 상관관계나 복잡성을 이해할 필요 없이 알고리즘을 학습시켜서 센서 데이터로부터 예측하도록 한다. 

이렇게 개발된 ML 알고리즘을 시스템 모델로 구축해서 모터의 동작 상태를 예측할 수 있다. 다만 한 가지 유념할 점은 ML이 유용한 자원이기는 하나 추론 기능이 정답을 내놓는 것이 아니라 학습된 데이터에 기반해서 예측, 추정, 근사치를 제공한다는 것이다.

몇 가지 이유에서 엣지 기반 추론이 점점 인기를 끌고 있다. 우선 엣지 기반 추론은 추론을 위해서 클라우드 서버로 데이터를 전송하지 않아도 되는 장점이 있다. 이를 통해 지연시간을 줄이고 대역폭 비용을 절약할 수 있다. 

또 다른 이점은 데이터를 클라우드 서버로 전송하거나 저장하지 않으므로 프라이버시 문제를 일으키지 않는다는 것이다. 이러한 엣지 애플리케이션에 사용되는 마이크로컨트롤러는 통상적으로 극히 낮은 전력을 소모한다. 그럼으로써 배터리 수명을 장기화하고 유지보수를 간소화한다.

이와 비교해서 과학 애플리케이션에 사용되는 많은 고성능 그래픽처리장치(GPU)는 수백 와트에 이르는 전력을 소모한다. 어떤 경우에는 500와트까지도 이를 수 있다. 마이크로컨트롤러의 전력 소모 프로파일은 수 밀리와트 혹은 수 마이크로와트까지도 이른다.

개발과 구축 작업을 돕기 위한 TinyML 툴

엣지 기반 추론이 부상함에 따라서 저전력 마이크로컨트롤러 용으로 다수의 툴들이 등장하고 있다.

TensorFlow Lite for Microcontrollers

기존에 기반을 잡고있는 ML 툴 중의 하나가 TensorFlow이다. 구글이 2015년에 내놓은 TensorFlow는 ML 용으로 포괄적 오픈소스 플랫폼이다. 다양한 툴과 라이브러리, 커뮤니티 자원을 포함한 일체의 에코시스템을 제공한다. TensorFlow를 사용해서 개발자들이 과학용, 의료용, 상업용 애플리케이션을 비롯한 다양한 용도의 ML을 좀더 수월하게 개발할 수 있다.

그림 1은 TensorFlow Lite for Microcontrollers를 사용할 때의 워크플로우 프로세스 (출처: 텐서플로우)
그림 1은 TensorFlow Lite for Microcontrollers를 사용할 때의 워크플로우 프로세스 (출처: 텐서플로우)

TensorFlow Lite for Microcontrollers 오픈 소스 라이브러리는 Google이 2017년에 선보였다. 저전력 마이크로컨트롤러로 수십 킬로바이트 메모리만을 사용해서 추론을 할 수 있도록 설계됐다.

TensorFlow Lite의 코어 런타임 바이너리 라이브러리는 Arm Cortex M3으로 단 18kB 메모리 안에 들어가고 그러면서도 다수의 기본적 신경망 모델들을 실행할 수 있다. 운영 체제, C 또는 C++ 라이브러리, 직접 메모리 할당 요구에 종속적이지 않으므로 '베어 메탈'로 실행할 수 있다. 이 라이브러리는 C++ 11로 작성되었으며 32비트 마이크로컨트롤러를 필요로 한다.

TensorFlow Lite for Microcontrollers로 제공하는 모델들은 TensorFlow 학습 환경으로 제공되는 모델들을 마이크로컨트롤러에 적합하게 변형한 것이다. TensorFlow Lite for Microcontrollers는 Arm Cortex-M 시리즈로 테스트를 했기 때문에 이 아키텍처와 잘 맞으며, Tensilica 기반 Espressif ESP32 시리즈나 Synopsys ARC 프로세서 코어 시리즈 같은 여타 MCU 아키텍처로 이식할 수 있다.

TensorFlow Lite for Microcontrollers와 함께 또 다른 최적화 라이브러리 자원으로서 TensorFlow Lite는 안드로이드, iOS, 임베디드 리눅스 기반 단일 보드 컴퓨터(Raspberry Pi와 Coral Edge TPU) 용으로 제공된다.

Edge Impulse

Edge Impulse는 임베디드 마이크로컨트롤러 디바이스 용으로 포괄적 ML 학습-구축 플랫폼을 제공한다. 현재 전 세계적으로 2만 건 이상의 프로젝트에 Edge Impulse가 사용되는 것으로 추산된다. 

Edge Impulse는 임베디드 ML 프로젝트를 구상 단계에서 상품화 단계로 빠르게 넘어갈 수 있도록 설계됐다. 구축까지 걸리는 기간을 수년에서 수 주로 단축할 수 있다. 특히 임베디드 디바이스로 오디오와 비전 같은 다양한 센서들을 사용하고 디바이스를 대규모로 구축하는 것에 중점을 뒀다. 

자원 제한적인 저전력 마이크로컨트롤러부터 좀더 높은 성능의 마이크로프로세서와 중앙처리장치(CPU)에 이르는 다양한 임베디드 디바이스에 사용하기에 적합하다. 지원되는 모델 타입은 TensorFlow와 Keras를 포함한다.

Edge Impulse는 마이크로컨트롤러 머신 러닝 개발을 위한 포괄적 플랫폼을 제공한다. (출처: Edge Impulse)
Edge Impulse는 마이크로컨트롤러 머신 러닝 개발을 위한 포괄적 플랫폼을 제공한다. (출처: Edge Impulse)

Edge Impulse는 예측적 유지보수, 자산 추적 및 모니터링, 사람과 동물 탐지 같이 산업용, 물류, 의료 분야의 다양한 ML 애플리케이션에 사용할 수 있다.

Edge Impulse는 책임감 있는 AI(Responsible AI) 재단의 행동 강령을 따를 것을 명기하고 있다. 사용자가 자신이 개발하는 애플리케이션이 범죄, 정찰, 군사 용도로 사용되지 않을 것이라는 확인증에 서명해야 한다.

Edge Impulse의 모델 테스트 기능을 보여주는 사진. 이 예제는 STMicroelectronics의 MCU에 디지털 마이크로폰을 사용해서 ‘house’와 ‘zero’의 두 단어를 인식하는 것이다. 모델 테스트 출력으로 각기 단어의 확률 퍼센트, 백그라운드 소음, 그 밖의 분류할 수 없는 단어들을 보여준다. (출처=마우저)
Edge Impulse의 모델 테스트 기능을 보여주는 사진. 이 예제는 STMicroelectronics의 MCU에 디지털 마이크로폰을 사용해서 ‘house’와 ‘zero’의 두 단어를 인식하는 것이다. 모델 테스트 출력으로 각기 단어의 확률 퍼센트, 백그라운드 소음, 그 밖의 분류할 수 없는 단어들을 보여준다. (출처=마우저)

Fraunhofer AIfES

독일 연구 기관인 Fraunhofer가 개발한 AifES(AI for embedded systems)는 C로 작성된 플랫폼 독립적 라이브러리이다. AifES는 오픈 소스로서 GNU GPL(General Public License)을 통해서 이용할 수 있다. 

표준 라이브러리 GNU GCC를 사용해서 구현 작업 부담을 크게 덜도록 하고, 8비트 마이크로컨트롤러부터 좀더 높은 성능의 스마트폰 프로세서와 데스크톱 컴퓨터 CPU에 이르기까지 거의 어떤 하드웨어 디바이스로나 실행할 수 있다. 안드로이드 플랫폼을 기반으로 개발하는 개발자들을 위한 AifES 라이브러리 버전도 제공한다.

개인 프로젝트에는 AifES를 무료로 사용할 수 있으며, 상업용 애플리케이션으로는 라이선스 계약을 체결해야 한다.

다양한 플랫폼 타입에 걸쳐서 AifES 라이브러리의 기능성과 호환성을 보여주는 사진. Fraunhofer AifES 라이브러리는 TensorFlow, Keras, PyTorch 같은 주요 파이선 ML 프레임워크와 호환 가능하며 프로세스가 거의 비슷하다. (출처=Fraunhofer 마이크로전자 회로 및 시스템 연구소)
다양한 플랫폼 타입에 걸쳐서 AifES 라이브러리의 기능성과 호환성을 보여주는 사진. Fraunhofer AifES 라이브러리는 TensorFlow, Keras, PyTorch 같은 주요 파이선 ML 프레임워크와 호환 가능하며 프로세스가 거의 비슷하다. (출처=Fraunhofer 마이크로전자 회로 및 시스템 연구소)

TinyML 구현의 한 차원 도약

이 글에서는 엣지 기반 TinyML 애플리케이션을 빠르게 개발하고 구축할 수 있도록 하는 3개 ML 라이브러리 및 플랫폼을 소개했다. 엣지로 구축하기 위한 임베디드 ML 산업용 사물인터넷(IIoT) 애플리케이션을 개발하기 위해서는 전문성을 필요로 한다. 이러한 지원 자원과 워크플로우를 활용함으로써 신경망의 복잡성을 크게 간소화하고 데이터 과학 원리를 깊이 있게 이해해야 하는 필요성을 낮출 수 있다.

마크 패트릭 마우저 일렉트로닉스 EMA 기술 마케팅 관리자 

mark.patrick@mouser.com

[관련기사][기고] 자원이 제한적인 환경에서 구동하는 머신러닝, TinyML

[관련기사][기고] 인공지능 시스템의 핵심 '인공 신경망'

저작권자 © AI타임스 무단전재 및 재배포, AI학습 및 활용 금지