지속 가능한 엣지 인텔리전스

엣지 인텔리전스

이 용어는 신경망 및 머신 러닝 알고리즘의 도움으로 네트워크의 말단 기기에서 추론 작업이 가능한 장치를 뜻합니다. 이러한 맥락에서 ‘왜 인공 지능이 임베디드 장치에서 점점 더 많이 사용되어야 하는지, 왜 딥 러닝과 딥 뉴럴 네트워크(신경망)가 이제 산업의 초점으로 옮겨가고 있는지’와 같은 질문이 생깁니다.

이 질문에 대한 답은 AI 자체에 관한 것이 아니라 대역폭, 대기 시간, 보안 또는 분산 데이터 처리와 같은 주제에 관한 것입니다. 그렇기 때문에 오히려 인더스트리 4.0 어플리케이션의 핵심 주제와 과제입니다. 많은 양의 센서 또는 카메라 데이터를 엣지 장치 자체에 이미 존재하는 사용 가능한 정보로 필터링하거나 변환하여 공유 통신 채널의 대역폭에 대한 경쟁을 줄이는 것은 중요한 작업입니다. 즉각적인 데이터 처리를 통해 데이터 통신의 지연 없이 이미지 캡처 시점에서 직접 프로세스 결정이 가능합니다. 기술 또는 보안 측면에서, 중앙 처리 장치와의 안정적이고 지속적인 통신은 클라우드에서 진행하는 것이 불가능할 수 있습니다. 엣지 장치에서 수집된 데이터를 압축하면 데이터 저장 및 처리를 분산시켜 전체 시스템에 대한 잠재적 위험 요소를 줄이는 데 도움이 됩니다. 생성되고 전송되는 데이터의 보안은 모든 곳에서 매우 중요합니다.

분산된 시스템 인텔리전스는 각 작업을 명확하게 구분합니다. 예를 들어, 공장에는 각 스테이션의 서로 다른 물체 세트를 분석하기 위해 이미지 분류가 필요한 수백 개의 워크스테이션이 있을 수 있습니다. 그러나 클라우드에서 여러 분류기를 호스팅하려면 비용이 듭니다. 비용적으로 효율적인 솔루션은 클라우드에서 모든 분류기를 훈련하고 각 워크스테이션에 맞게 조정된 엣지 장치로 모델을 보내는 것입니다. 또한 각 모델의 전문화는 모든 워크스테이션에서 예측을 수행하는 분류기보다 더 나은 성능을 제공합니다. 또한 단순한 특수 솔루션은 데이터 센터 실현과 달리 개발 시간도 단축합니다. 이것이 엣지 장치에 추론 실행을 아웃소싱해야 하는 이유입니다.

지능형 엣지 장치는 많은 양의 센서 및 이미지 데이터를 줄일 수 있습니다. 말단 기기에서 직접 사용 가능한 정보를 생성하고 이 정보만 제어 장치에 전달합니다.

해결할 난제

신경망이 "실질적인" 임베디드 사용에 적합하지 않다고 하는 이유는 무엇이며, 말단 기기에서 효과적으로 사용하는 데에는 어떤 어려움이 있을까요? 엣지 장치에서 AI 추론 작업을 수행하는 것은 쉬운 일이 아닙니다. 일반적으로 엣지 컴퓨팅은 효율성이 매우 중요합니다. 엣지 장치는 일반적으로 제한된 양의 컴퓨팅, 저장공간 및 에너지 리소스를 사용합니다. 따라서 계산은 매우 효율적으로 실행되어야 하는 동시에 높은 성능값과 짧은 대기 시간의 조건도 만족시켜야 합니다. 하지만 이것은 왠지 양립할 수 없는 조건처럼 보입니다. CNN을 실행시켜 뛰어난 훈련을 합니다. 특히 CNN은 입력을 처리하는 데 수십억 개에 달하는 데이터 계산이 필요합니다. 원칙적으로CNN 아키텍처는 수백만 개의 파라미터가 있어 엣지 컴퓨팅에 적합한 후보라고 할 수 없습니다. MobilNet, EfficientNet, SqueezeNet과 같은 소위 "효율적인 파라미터"의 네트워크는 더 적은 수의 파라미터가 필요하며 임베디드 사용에 적합합니다. 이것은 메모리와 컴퓨팅에 대한 요구 사항을 크게 줄입니다. 이것이 전부가 아닙니다. 저장공간에 대한 요구 사항을 추가로 줄이려면 네트워크를 압축해야 합니다. 예를 들어, 중요하지 않은 파라미터는 훈련 후 소위 가지치기(pruning)에 의해 제거될 수 있으며, 파라미터를 설명하기 위한 비트 수는 양자화에 의해 감소될 수 있습니다. 축소된 CNN 메모리 크기는 처리 시간에도 긍정적인 영향을 미칩니다. 그리고 그것은 이제 최적화의 마지막 단계로 이어집니다.

파라미터가 효율적이고 압축된 네트워크를 사용함에도 불구하고, 엣지에서 AI를 효율적으로 실행하려면 이러한 아키텍처에 맞게 특별히 맞춤화된 컴퓨터 시스템을 사용해야 합니다. 이를 위해 두 가지 기본 시스템 속성을 고려해야 합니다. 이미 언급한 효율성 외에도 시스템은 CNN 아키텍처의 새로운 개발을 지원할 만큼 충분히 유연해야 합니다. 이는 특히 AI 분야에서는 매달 새로운 아키텍처와 새로운 레이어 유형이 개발 및 연구되기 때문에 중요합니다. 오늘 지금 새로운 것들이 내일이면 이미 시대에 뒤쳐진 것이 될 수 있습니다. 그렇다면 플랫폼 옵션은 무엇입니까?

플랫폼 선택

  • CPU 기반 시스템은 의심할 여지 없이 최고의 유연성을 제공합니다. 그렇지만 CPU는 CNN 실행 시 매우 비효율적이며 전력 효율성도 좋지 않습니다.
  • GPU 플랫폼은 병렬로 작동하는 컴퓨팅 코어를 통해 많은 전력으로 CNN을 실행합니다. CPU보다 더 전문화되어 있지만 뛰어난 유연성을 가지고 있습니다. GPU는 전력을 많이 소모하므로 말단 기기에서 사용하기에는 다소 문제가 있습니다.
  • 프로그래밍 가능한 FPGA의 아키텍처는 재구성되어 새로운 CNN 아키텍처에 적용될 수 있습니다. FPGA는 병렬 작동 모드의 사용으로 매우 효율적입니다. 그러나 그 프로그래밍에는 높은 수준의 하드웨어 지식이 필요합니다.
  • 완전한 ASIC 솔루션은 주어진 CNN 아키텍처를 효율적으로 실행하도록 특별히 최적화되어 있기 때문에 맞춤형 집적 회로로서의 효율성 측면에서 강점을 가집니다. 그러나 새로운 또는 변경된 CNN 아키텍쳐를 지원하지 않는다면 유연성 측면에서 문제가 될 수 있습니다.

"고성능, 유연성, 에너지 효율"의 특성으로 인해 FPGA 기술의 사용은 현재 AI 개발 단계에서 엣지 장치에서의 CNN 가속기 구현에 가장 적합합니다.

특수 어플리케이션 또는 CNN에 새 구성 파일로 업데이트하여 장치 작동 중 언제든지 수정할 수 있는 기능은 장기적으로 작동 가능하므로 산업용으로 적합한 솔루션입니다. FPGA 기술은 프로그래밍이 매우 복잡하여 전문가만이 다룰 수 있습니다.

개발 전략

비전 엣지 장치 IDS NXT 카메라에서 신경망을 실행하기 위해 IDS는 FPGA 기술을 기반으로 하는 CNN 가속기를 개발하기로 결정했습니다. 그리고 그것을 "deep ocean core"라고 부르기로 하였습니다. 그러나 이후 FPGA 처리를 최대한 간단하게 유지하려면, 서로 다른 CNN 유형에 대해 개별적으로 최적화된, 여러 구성이 아닌 보편적으로 적용이 가능한 하나의 아키텍처를 개발해야 합니다. 이를 통해 가속기는 지원되는 레이어로 구성된 모든 CNN 네트워크를 실행할 수 있습니다. 그러나 나선형 레이어(convolutional layer), 추가 레이어(addition layer), 다양한 형태의 풀링 레이어(pooling layer), 압착 익스테이트 레이어(squeezing excit layer)와 같은 모든 일반적인 레이어가 이미 지원되기 때문에 기본적으로 모든 중요한 레이어 타입을 사용할 수 있습니다. 그리고 새로운 FPGA 구성을 생성하기 위한 특정 지식이 필요없기 때문에 어려운 프로그래밍 문제를 완전히 해결합니다. IDS NXT 카메라 펌웨어 업데이트를 통해 deep ocean core는 CNN 분야의 새로운 개발을 지원하기 위해 지속적으로 진화하고 있습니다.

deep ocean core

범용 CNN 가속기는 어떻게 작동하며, 훈련된 신경망을 실행하기 위해서는 어떤 단계가 필요할까요? 가속기는 CNN 네트워크를 구성하는 레이어를 보여주는 "이진법 설명"만 필요합니다. 이를 위해 프로그래밍이 필요하지 않습니다. 그러나 예를 들어 Keras로 훈련된 신경망은 가속기가 이해하지 못하는 특수한 "Keras 고급 언어"로 되어 있습니다. 따라서 일종의 "연결 목록"과 유사한 이진법의 형식으로 변환되어야 합니다. CNN 네트워크의 각 레이어는 각 레이어를 정확하게 설명하는 노드 엔드 디스크립터 (node end descriptor)가 됩니다. 최종 결과는 CNN이 이진법으로 표현된 전체 연결 목록으로 표시됩니다. 전체 프로세스는 도구에 의해 자동으로 이루어집니다. 이것 또한 특별한 지식이 필요하지 않습니다. 이제 생성된 이진법의 파일이 카메라의 메모리에 저장되고, deep ocean core가 처리를 시작합니다. CNN 네트워크는 이제 IDS NXT 카메라에서 실행됩니다.

실행 유연성

CNN을 연결 목록으로 사용하면 가속기 유연성 측면에서 분명한 이점이 있습니다. 이렇게 하면 네트워크 간 즉시 전환이 가능합니다. 지체 없이 원활하게 가능합니다. 서로 다른 신경망의 여러 "연결 목록 표현(linked list representations)"을 카메라의 작업 메모리에 저장할 수 있습니다. 실행할 CNN을 선택하려면 Deep Ocean 가속기가 이러한 목록 시작점 중 하나를 가리켜야 합니다. "포인터 값"을 목록 메모리 중 하나로 변경하는 작업이 필요합니다. 언제든지 매우 빠르게 수행할 수 있는 FPGA register의 간단한 쓰기 작업에 대해 이야기해 보겠습니다.

다음 예시는 CNN 네트워크의 빠른 전환이 중요한 이유를 설명합니다. 두 가지 제품의 생산 라인이 있다고 가정해 봅시다. 제품의 품질을 검사하고자 합니다. 검사를 위해서 우선 제품의 위치를 인지한 후, 인식된 제품 카테고리를 기준으로 제품 고유의 결함에 따라 품질을 분류해야 합니다.

각 제품 그룹에 대해 일어날 수 있는 모든 실패 사례를 사전 훈련하여 물체를 찾는 동시에 분류하도록 거대한 CNN 네트워크를 훈련하여 작업을 수행할 수 있습니다. 이것은 비용이 많이 들고 네트워크가 매우 커져서 작동 속도가 느려질 수 있지만 가능합니다. 하지만 만족할만한 높은 정확도를 달성하는 것은 어려울 것입니다. 활성 CNN 네트워크를 즉석에서 변경할 수 있는 기능을 사용하면, 개별 CNN을 더 쉽게 훈련할 수 있도록 다양한 물체의 위치 즉정 및 분류 작업을 분리할 수 있습니다. 물체 인식은 두 클래스를 구별하고 위치를 제공하기만 하면 됩니다. 두 개의 추가 네트워크는 각각의 제품별 속성 및 결함 클래스에 대해서만 훈련합니다. 제품의 특성에 맞춰 카메라는 제품의 품질 검사를 위해 분류 어플리케이션을 실행하고 스스로 결정합니다. 이 접근 방식을 통해 엣지 장치는 파라미터가 거의 없는 비교적 간단한 작업을 수행합니다. 개별 네트워크의 크기는 더 작아지며, 구별해야 하는 기능의 종류를 최소화합니다. 결과적으로 훨씬 빠르게 작동하고 에너지를 덜 소모하므로, 엣지 장치에서 실행하는 데 이상적입니다.

사진 2 - 즉석에서 신경망의 작동을 조정할 수 있으므로 이미지 분석을 보다 효율적으로 카메라 내에서 안정적이고 빠르게 보다 단순한 추론 워크플로로 나눌 수 있습니다.

성능 및 효율성

IDS NXT 추론 카메라의 FPGA 기반 CNN 가속기는 64개의 컴퓨팅 코어가 있는 Xilinx Zynq Ultrascale SoC에서 작동합니다. MobileNet, SqueezeNet 또는 EfficientNet과 같은 잘 알려진 많은 이미지 분류 네트워크에서 프레임 속도가 초당 최대 67 프레임까지 가능합니다. 엣지 컴퓨팅에 너무 복잡한 것으로 간주되는 Inception 또는 ResNet과 같은 네트워크 제품군에서도 초당 20프레임이 가능하며 이는 많은 어플리케이션 환경에서 충분한 속도입니다. FPGA 구현을 통해 우리는 deep ocean 가속기의 성능을 더욱 향상시킬 수 있습니다. 펌웨어 업데이트는 이미 현장에 있는 카메라에도 도움이 됩니다.

그러나 엣지 컴퓨팅과 관련하여 훨씬 더 중요한 것은 전력 효율성입니다. 이는 시스템이 와트당 1초에 처리할 수 있는 이미지 수를 나타냅니다. 전력 효율성은 다양한 엣지 솔루션을 비교하는 좋은 지표가 됩니다. 다음 다이어그램은 다양한 CNN 가속기를 비교합니다. FPGA 구현 deep ocean core, Jetson TX 2A가 있는 GPU 솔루션, Intel Core-i7 CPU의 클래식 CPU 솔루션, 임베디드 CPU 솔루션 Raspberry Pi 및 Intel Movidius AI 칩으로 대표되는 완전한 ASIC 솔루션.

사진 3 - 특히 MobilNets 또는 SqueezeNet과 같은 파라미터 효율적인 네트워크의 경우 FPGA 아키텍처가 적합합니다. 비교한 시스템 중 가장 높은 전력 효율을 가지고 있습니다. 이로 인해 엣지 인텔리전스에 deep ocean core에 대한 선호도가 높아집니다.

올인원 추론 카메라 솔루션

IDS는 모든 사람이 FPGA 기반 CNN 가속기와 같은 기술에 쉽게 접근하고 사용할 수 있도록 완벽한 추론 카메라 솔루션을 제공합니다. 사용자는 신경망을 훈련하고 실행하기 위한 딥 러닝, 이미지 프로세싱 또는 카메라/FPGA 프로그래밍에 대한 전문 지식이 필요하지 않으며, AI 기반 이미지 프로세싱을 즉시 시작할 수 있습니다. 사용하기 쉬운 도구는 진입 장벽을 낮추어 단 몇 분 안에 추론 작업을 생성하고 카메라에서 즉시 실행할 수 있도록 합니다. FPGA 기반 CNN 가속기 "deep ocean core" 가 있는 지능형 카메라 플랫폼 IDS NXT 뿐만 아니라, 사용하기 쉬운 신경망용 교육 소프트웨어도 포함되어 있습니다. 모든 구성요소는 IDS에서 직접 개발했으며 원활하게 함께 작동하도록 설계되었습니다. 이는 워크플로를 단순화하고 전체 시스템을 매우 효율적으로 만듭니다.

지속 가능한 엣지 인텔리전스

이 기사에서 언급한 신경망을 가속화할 수 있는 가능성은 각각 장단점을 가지고 있습니다. 최종 사용자가 머신 비전 작업에 AI를 사용하기 위해 필요한 구성 요소를 직접 처리해야 하는 경우 Intel Movidius와 같이 완전히 통합된 AI 가속기로 전환하는 것을 선호합니다. 바로 사용할 수 있는(Ready-to-use) 칩 솔루션은 효율적으로 작동하며, 기능 범위에 대한 광범위한 문서화로 대량 주문에서만 가능했던 가격이 가능해졌으며, 시스템에 빠르고 쉽게 통합할 수 있습니다. 하지만, 개선해야하는 부분이 있습니다. 긴 개발 시간은 AI 환경에서 문제가 되기 때문에, 현재 엄청난 추진력을 얻어 변화하고 있습니다. 오늘날 보편적이고 유연하게 작동하는 "엣지 인텔리전스"를 개발하려면 시스템 구성 요소가 다른 요구 사항을 충족해야 합니다. FPGA를 기반으로 하면 유연성, 성능, 에너지 효율성 및 지속 가능성의 이점을 가집니다. 결국, 산업용 제품의 가장 중요한 요구 사항 중 하나는 "산업 적합성"이며, 이는 무엇보다도 긴 가용성과 쉽고 장기적인 유지 보수성이 필요합니다.. 오늘날 FPGA CNN 가속기와 결합된 사용하기 쉬운 IDS NXT 추론 카메라 플랫폼은 최종 사용자가 개별 구성 요소 및 AI 업데이트에 대해 걱정할 필요가 없는 지속 가능한 엣지 인텔리전스 솔루션을 제공합니다.