메모리 사용량 줄이고 전력 효율 높인 소형 이진 신경망

[테크월드=양대규 기자] 인공 지능(AI), 신경망(Neural Network), 머신 러닝 기술이 빠르게 발전함에 따라 개발자들은 자신의 시스템에 한 차원 높은 지능을 구현할 수 있게 됐다. 여기에 필요한 연산 성능은 애플리케이션에 따라 크게 다르다.

일례로, 데이터 센터에서 고양이를 인식하기 위한 ‘학습’에서 이미지 인식을 위한 신경망은 수천 개의 이미지를 보여주고 입력에 가중치를 부여한다. 이런 과정을 거쳐 궁극적으로 신경망이 그 물체를 올바르게 인식하도록 학습할 수 있다. 사람들은 새로운 데이터가 주어졌을 때 과거의 학습으로부터 ‘추론’해서 판단하는 것처럼, 시스템 역시 이 같은 ‘추론 기법’을 사용해서 과거에 배운 학습으로부터 새로운 데이터에 대한 결과값을 ‘추론’할 수 있어야 한다.

 

이런 추론을 위해서는 데이터 구조를 구축하고 가중치를 부여해야 하는데, 그러려면 테라바이트의 데이터와 엑사플롭스의 연산 성능(1초당 100경 회의 연산 수행 능력)이 필요하다. 데이터 센터에서 사용되는 딥 러닝 기법은 이처럼 까다로운 성능 요구를 충족하기 위해서 대형의 고성능 GPU를 사용한다.

하지만 네트워크 에지에서 AI를 활용하고자 하는 설계자들로서는 전력 소비가 큰 GPU를 사용하는 사치를 누릴 수가 없다. 네트워크 에지에서는 데이터 센터에서처럼 부동소수점 연산을 사용하는 딥 러닝 기법이 현실적으로 불가능하다. 사정이 이렇다 보니 설계자는 정확도 목표를 달성하면서 한편으로는 컨슈머 시장이 요구하는 소비전력, 크기, 비용적 제약을 충족하는 효율적인 솔루션을 개발해야 한다.

네트워크 에지 디바이스는 추론을 위한 연산에 되도록 적은 비트를 사용해야 한다. 이 연산을 간소화하기 위해서 설계자는 부동소수점에서 고정소수점으로 전환하기도 하고, 또 가능하다면 심지어는 정수로 전환하기도 한다. 부동소수점에서 고정소수점이나 정수로 전환할 때의 양자화를 보상하도록 학습 방식을 변경함으로써 높은 정확도로 더 빠르게 학습하는 솔루션을 개발할 수 있다. 그럼으로써 고정소수점과 낮은 정밀도의 정수 신경망의 성능을 부동소수점에 가깝게 끌어올릴 수 있다. 아주 간단한 에지 디바이스의 경우에는 1비트의 가중치와 활성화를 사용한 신경망 모델이 가능하다. 이러한 모델을 ‘이진 신경망(Binarized Neural Network, BNN)’이라고 한다.

벡터블럭스 컴퓨팅(VectorBlox Computing)과 래티스 반도체(Lattice Semiconductor)는 이런 요건을 충족하기 위해 이진화(Binarization)를 사용하는 새로운 디바이스를 공동으로 개발했다. 이 디바이스는 이진화를 사용해서 신경망의 크기, 비용, 전력, 성능을 최적화함으로써 메모리 사용량을 크게 줄이고 전력 효율을 극대화한다. 여기에는 래티스의 저전력 FPGA인 iCE40 UltraPlus가 사용된다. iCE40 UltraPlus는 풍부한 메모리, 로직, DSP 자원을 제공하는 매우 유연한 플랫폼이다. 이 프로젝트의 결과에 대한 논문은 OLAF(Overlay Architectures for FPGA)의 제3회 연례 워크숍에서 소개되기도 했다. 

개발팀은 이 새로운 콘셉트를 TinBiNN(Tiny Binarized Neural Network: 소형 이진 신경망)이라고 부른다. 이진 신경망(BNN)은 곱셈과 나눗셈을 하지 않아도 되므로 메모리 사용을 줄일 수 있고, 덧셈과 뺄셈만 사용해서 합성곱(컨볼루션, Convolution)을 계산할 수도 있다. 개발팀이 정의하는 TinBiNN은 5400개 미만의 4입력 LUT(Look-Up Table)로 구현할 수 있는 소형 BiNN을 말한다. 이 글에서는 래티스 반도체의 UltraPlus FPGA 에서 5000개 미만의 4입력 LUT를 사용해 구현할 수 있는 경량 TinBiNN 오버레이를 소개한다.
 
이진 신경망(Binarized Neural Network)

CNN(Convolution Neural Network) 기반 머신 러닝에서 연산 커널은 3x3 가중치 윈도우를 입력 데이터와 곱한 다음, 스칼라 결과값으로 합산하는 컨볼루션 커널이다. 입력값, 가중치, 결과값은 흔히 부동소수점 체계를 사용한다. 하드웨어를 최적화하면 좁은 폭의 고정소수점 값이 가능하나, 그렇더라도 여전히 곱셈이 대부분을 차지한다.

M. Courbariaux와 Y. Bengio, 그리고 J.-P. David가 공동으로 발표한 ‘바이너리커넥트: 전파 시에 이진 가중치를 사용한 딥 신경망 학습(BinaryConnect: Training Deep Neural Networks with Binary Weights During Propagations)’이라는 제목의 논문에서 다루고 있는 최신 구현 기법은 이진 가중치를 사용해서 +1 또는 -1을 나타냄으로써 곱셈을 제거한다. 이 프로젝트는 부동소수점 데이터를 사용해서 CIFAR 10 이미지 인식 데이터 세트에 대해서 8.3%의 오류율을 달성했다.

벡터블럭스와 래티스의 개발자들은 이 바이너리커넥트 기법을 토대로 하면서 3가지 향상된 기법을 추가했다. 첫째, 신경망 구조를 절반으로 줄였다. 신경망 구조를 (2x128 C3)-MP2-(2x256C3)-MP2 (2x512C3)-MP2-(2x1024FC)-10SFC에서 (2x64C3)-MP2-(2x128C3)-MP2-(2x256C3)-MP2-(2x256FC)-10SFC로 줄인 것이다. 여기서 C3은 3x3 ReLU 컨볼루션 층이고, MP2는 2x2 최대 풀링(Max-Pooling) 층이며, FC는 완벽하게 연결된(Fully Connected) 층이다.

[그림 1] 새로운 소형 이진 신경망은 10.8% 오류율과 제로의 ‘오탐지(False Positive)’를 발생시킨다.

그런 다음 이 개발 팀은 모든 입력 데이터에 8비트 부호화 고정소수점 값을 사용해서 신경망을 더욱 최적화했다. 누산(Accumulation)은 32비트 부호화 데이터를 사용해서 오버플로우를 방지했다. 그리고 그 다음 층에 앞서 8비트로 포화했다. 이 새로운 시스템은 10.8%의 오류율을 나타냈다. 신경망 크기를 48-48-96-96-128-128와 64-128-10으로 축소했을 때는 오류율이 11.5%로 높아졌다.

두 번째 향상은, 이 이진 신경망을 위한 하드웨어 가속기를 구현한 것이다. 개발자들은 이 가속기를 ORCA 소프트 RISC-V 프로세서의 ALU로 사용했다. 자원 효율성이 매우 높은 RV32IM 명령어 세트로 잘 알려진 RISC-V 소프트 프로세서를 사용함으로써 개발자들은 더 적은 자원으로 더 많은 연산을 수행할 수 있었다.

이 사례의 경우, 개발자들은 LVE(Lightweight Vector Extension)라고 하는 커스텀 명령어 세트를 사용해서 ORCA 프로세서를 향상시켰다. RISC-V ALU를 통해서 행렬 데이터를 스트리밍함으로써 LVE가 루프, 메모리 액세스, 어드레스 생성 오버헤드를 줄이거나 아예 없앨 수 있었으며, 그럼으로써 행렬 연산 효율을 향상시킬 수 있었다. 여기에 CNN 가속기를 커스텀 벡터 명령어(CVI)로서 LVE에 추가함으로써 연산을 더욱 향상시킬 수 있었다[그림 2]. 

[그림 2] 이진 CNN 커스텀 벡터 명령어 세트로 성능을 향상시킨다.

세 번째 향상은, iCE40 UltraPlus FPGA에 강화된 RISC-V 프로세서를 사용한 것이다. 네트워크 에지에서 추론을 하기 위해서는 적은 전력으로 초당 더 많은 연산이 가능한 고도의 병렬 아키텍처 솔루션이 필요했다. 음성 인식이나 이미지 인식 같은 지능을 네트워크 에지에 구현하고자 하는 설계자들을 위해, iCE40 UltraPlus는 이미지 센서에 연결할 수 있는 유연한 I/O를 제공할 뿐 아니라, 캡처한 이미지 데이터를 다운스케일링하고 조작할 수 있는 로직 자원들까지 함께 제공한다. iCE40 UltraPlus는 8개의 DSP 블록을 제공하므로 더 복잡한 알고리즘을 처리할 수 있으며, 온칩 메모리는 저전력 상태에서 더 오랫동안 데이터를 유지할 수 있다. LVE는 128kB의 스크래치패드 RAM 상에서 곧바로 실행되는데, 이 RAM은 3배의 오버클러킹을 통해 매 CPU 클럭당 2번의 읽기와 1번의 쓰기가 가능하다. 이진 가중치는 내부 RAM에 저장되므로, DMA 엔진이 이 값을 스크래치패드로 효율적으로 전송할 수 있으며, 만약 어떤 LVE 연산이 실행되고 있다면 CPU로부터 사이클을 훔칠 수도 있다.

[그림 3] iCE40 UltraPlus 모바일 개발 플랫폼을 활용해 시스템을 구현했다.

세 번째 향상은, iCE40 UltraPlus FPGA에 강화된 RISC-V 프로세서를 사용한 것이다. 네트워크 에지에서 추론을 하기 위해서는 적은 전력으로 초당 더 많은 연산이 가능한 고도의 병렬 아키텍처 솔루션이 필요했다. 음성 인식이나 이미지 인식 같은 지능을 네트워크 에지에 구현하고자 하는 설계자들을 위해, iCE40 UltraPlus는 이미지 센서에 연결할 수 있는 유연한 I/O를 제공할 뿐 아니라, 캡처한 이미지 데이터를 다운스케일링하고 조작할 수 있는 로직 자원들까지 함께 제공한다.

iCE40 UltraPlus는 8개의 DSP 블록을 제공하므로 더 복잡한 알고리즘을 처리할 수 있으며, 온칩 메모리는 저전력 상태에서 더 오랫동안 데이터를 유지할 수 있다. LVE는 128kB의 스크래치패드 RAM 상에서 곧바로 실행되는데, 이 RAM은 3배의 오버클러킹을 통해 매 CPU 클럭당 2번의 읽기와 1번의 쓰기가 가능하다. 이진 가중치는 내부 RAM에 저장되므로, DMA 엔진이 이 값을 스크래치패드로 효율적으로 전송할 수 있으며, 만약 어떤 LVE 연산이 실행되고 있다면 CPU로부터 사이클을 훔칠 수도 있다.

개발자들은 iCE40 UltraPlus 모바일 개발 플랫폼을 사용함으로써 신속하게 프로토타입을 개발해 디자인 테스트를 진행할 수 있었고, 그에 따라 드라이버와 인터페이스 같은 솔루션 개발도 빠르게 이뤄질 수 있었다. 이 플랫폼은 최대 108Mbps에 이르는 1개의 MIPI DSI 인터페이스와 4개의 마이크로폰 브리징, 그리고 다양한 센서들을 제공한다. 또한 이 개발 플랫폼에서는 온보드 SPI 플래시 메모리나 USB 포트를 통해서 FPGA를 프로그램할 수 있다.

개발팀은 옴니비전(Omnivision)의 OVM7692 RGB 카메라(640x480 픽셀)를 사용해, RGB565 포맷으로 하드웨어에 40x30 픽셀로 다운스케일링했다. 또한, RGBA8888 픽셀을 스크래치패드에 쓰기 위해 DMA를 사용했다. 소프트웨어를 활용해 RGBA8888 픽셀을 디인터리브(Deinterleave)하고, 결과값을 각각 40x34 크기의 별도의 R8, G8, B8 픽셀 플레인에 채운 다음, 32x32 픽셀 데이터만 사용한다.

개발팀은 10-카테고리 분류기를 학습함으로써 사람을 인식하는 솔루션을 개발했는데, 이 사람 탐지기는 CIFAR-100의 ‘사람’ 수퍼클래스로부터 가져온 이미지로 ‘사슴’ 이미지를 대체한, 변형된 CIFAR-10 데이터 세트를 활용한다. 이들은 또 성능을 높이기 위해서 신경망 구조를 더욱 줄이고 17만 5000개의 얼굴과 비-얼굴 이미지로 이뤄진 독자적인 데이터베이스를 사용하는 새로운 1-카테고리 분류기를 학습시켰다. 이 데이터베이스는 안경, 모자, 선글라스를 착용한 사람들을 비롯해 다양한 연령대와 인종의 사람들의 얼굴 이미지로 이뤄졌다.

낮은 오류율과 저전력

테스트 결과는 고무적이었다. 이 개발 플랫폼으로 10-카테고리 분류기는 1315ms만에 실행된다. 24MHz로 동작하는 컴팩트한 CPU가 iCE40 UltraPlus 5K의 4입력 LUT 5280개 중에서 4895개를 사용한다. 또한, 이 FPGA의 16x16 DSP 블록 8개 중에서 4개, 4kb(0.5kB) BRAM 30개 중에서 26개, 32kB SPRAM 4개 모두를 사용한다. ORCA RISC-V의 가속기는 컨볼루션 층의 실행 시간을 73배 향상시키고, LVE는 밀도가 높은 층의 실행 시간을 8배 향상시킴으로써 전반적인 속도를 71배 향상시킨다.

1-카테고리 분류기는 230ms에 실행되고 오류율은 0.4%이며 21.8mW를 소비한다. 초당 1프레임 속도로 실행되도록 설계된 전력 최적화 버전은 전력 소비가 4.4mW에 불과하다. 두 경우 모두 오류의 주된 요인은 정밀도가 낮아서가 아니라 학습 때문이었다. 이 분석에는 이미지 센서의 소비 전력은 포함되지 않았다. 이 프레임 속도로 동작할 때 저전력 이미지 센서는 1~2mW를 소비한다.

활용 전망

이 글에서 설명한 TinBiNN을 기반으로 한 컴팩트하면서 전력 효율적인 솔루션은 네트워크 에지에서의 다양한 활용 가능성을 열어 준다. 예컨대 스마트 도어벨은 내장된 AI 기능을 사용해서 사람이 앞에 나타날 때 까지는 대기 모드를 유지한다. 스마트 TV는 앞에 사람이 없으면 자동으로 꺼질 수 있다. 또한 지능형 보안 카메라는 내장된 AI 기능을 활용해서 잘못된 경보를 줄이거나 방지할 수 있다. 사람이 침입할 때만 경보를 발송하고, 개나 고양이 같은 동물이 카메라 앞을 지나갈 때는 무시할 수 있기 때문이다.

얼굴 인식 기능을 포함하는 모바일 디바이스나 태블릿은 얼굴 인식을 하기 앞서 먼저 디바이스를 기동해야 하는데, 이 솔루션을 활용하면 먼저 저전력 상태에서 사람의 얼굴을 감지하고 나서 그 다음에는 전력 소비가 더 큰 애플리케이션 프로세서를 사용해서 보다 심층적인 얼굴 인식 작업을 할 수 있다.

맺음말

네트워크 에지에 AI를 구현하려면 많은 어려운 과제들을 해결해야 한다. 하지만 이는 그 만큼의 엄청난 가능성들을 제공하기도 한다. 지금까지 설명한 프로젝트에서 살펴 본 것처럼, 클라우드 기반 자원이 아니라 FPGA와 RISC-V 프로세서를 사용하는 디바이스에 AI를 구축함으로써 전력 소비를 크게 줄이면서도 응답 시간을 빠르게 할 수 있다. 로컬에서 프로세싱을 함으로써 보안성을 높이고 귀중한 대역폭을 절약할 수 있다. 또한 네트워크 에지 디바이스에 AI를 구축하면, 설령 네트워크에는 전원이 끊어진 상태이더라도 올웨이즈온 지능형 솔루션의 이점을 누릴 수 있다.

글: 후세인 오스만(Hussein Osman) 래티스 반도체 제품 마케팅 매니저
자료제공: 래티스 반도체

 

 

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지