>  기사  >  기술 주변기기  >  256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

WBOY
WBOY앞으로
2023-04-08 13:11:031734검색

신경망 훈련에 관한 모든 사람의 첫인상은 GPU + 서버 + 클라우드 플랫폼입니다. 엄청난 메모리 오버헤드로 인해 기존 교육은 클라우드에서 수행되는 경우가 많으며 엣지 플랫폼은 추론만 담당합니다. 그러나 이러한 설계로 인해 AI 모델이 새로운 데이터에 적응하기가 어렵습니다. 결국 현실 세계는 역동적이고 변화하며 발전하는 시나리오입니다. 하나의 훈련으로 어떻게 모든 시나리오를 다룰 수 있을까요?

모델이 새로운 데이터에 지속적으로 적응할 수 있도록 기기가 스스로 지속적으로 학습할 수 있도록 엣지에서 학습(온디바이스 학습)을 수행할 수 있나요? 이 작업에서 우리는 256KB 미만의 메모리를 사용하여 온디바이스 훈련을 구현했으며 오버헤드는 PyTorch의 1/1000 미만이었습니다. 동시에 시각적 깨우기 단어 작업(VWW)에 대한 클라우드 훈련을 달성했습니다. ). 정확성. 이 기술을 통해 모델은 새로운 센서 데이터에 적응할 수 있습니다. 사용자는 클라우드에 데이터를 업로드하지 않고도 맞춤형 서비스를 즐길 수 있어 개인정보가 보호됩니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

  • 웹사이트: https://tinytraining.mit.edu/
  • 논문: https://arxiv.org/abs/2206.15472
  • 데모: https : //www.bilibili.com/video/BV1qv4y1d7MV
  • 코드: https://github.com/mit-han-lab/tiny-training

Background

기기에서 교육 (온디바이스 교육)을 사용하면 사전 교육된 모델이 배포 후 새로운 환경에 적응할 수 있습니다. 모바일에서 로컬로 훈련하고 적응함으로써 모델은 지속적으로 결과를 개선하고 사용자를 위해 모델을 맞춤화할 수 있습니다. 예를 들어, 언어 모델을 미세 조정하면 입력 기록을 통해 학습할 수 있고, 비전 모델을 조정하면 스마트 카메라가 지속적으로 새로운 객체를 인식할 수 있습니다. 클라우드가 아닌 터미널에 더 가까운 곳에서 교육을 실시함으로써 특히 의료 데이터 및 입력 기록과 같은 개인 정보를 처리할 때 사용자 개인 정보를 보호하는 동시에 모델 품질을 효과적으로 향상시킬 수 있습니다.

그러나 소형 IoT 장치에 대한 교육은 클라우드 교육과 본질적으로 다르며 매우 어렵습니다. 첫째, AIoT 장치(MCU)의 SRAM 크기는 일반적으로 256KB로 제한됩니다. 이 수준의 기억력은 훈련은커녕 추론하기도 매우 어렵습니다. 더욱이, 마지막 레이어 분류기(마지막 FC)만 훈련하고 바이어스 항만 학습하는 등 기존의 저비용 효율적인 전이 학습 알고리즘은 종종 만족스럽지 못한 정확도를 가지며 현대 응용 프로그램에서는 물론 실제로 사용할 수도 없습니다. 딥 러닝 프레임워크는 이러한 알고리즘의 이론적 수치를 측정된 절감액으로 변환할 수 없습니다. 마지막으로 최신 심층 학습 프레임워크(PyTorch, TensorFlow)는 일반적으로 클라우드 서버용으로 설계되며 소규모 모델(MobileNetV2-w0.35)을 학습하려면 배치 크기가 1로 설정되어 있어도 많은 양의 메모리가 필요합니다. 따라서 스마트 단말 장치에 대한 교육을 달성하려면 알고리즘과 시스템을 공동 설계해야 합니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

방법 및 결과

온디바이스 교육에는 두 가지 고유한 과제가 있음을 발견했습니다. (1) 모델이 에지 디바이스에서 양자화됩니다. (아래에 표시된) 진정한 양자화된 그래프는 정밀도가 낮은 텐서와 배치 정규화 계층의 부족으로 인해 최적화하기 어렵습니다. (2) 소형 하드웨어의 제한된 하드웨어 리소스(메모리 및 계산)로 인해 전체 역전파가 허용되지 않습니다. 마이크로컨트롤러의 SRAM 제한을 쉽게 초과할 수 있지만(10배 이상), 마지막 레이어만 업데이트되면 최종 정확도는 필연적으로 만족스럽지 못할 것입니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

최적화의 어려움을 해결하기 위해 우리는 다양한 비트 정밀도로 텐서의 기울기를 자동으로 조정하는 QAS(Quantization-Aware Scaling)를 제안합니다(아래 왼쪽 그림 참조). QAS는 추가 하이퍼파라미터 없이 자동으로 기울기와 매개변수 척도를 일치시키고 훈련을 안정화할 수 있습니다. 8개의 데이터 세트에서 QAS는 부동 소수점 훈련을 통해 일관된 성능을 달성할 수 있습니다(아래 오른쪽 그림).

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

역전파에 필요한 메모리 공간을 줄이기 위해 덜 중요한 레이어와 하위 시트의 그라데이션 계산을 건너뛰는 Sparse Update를 제안합니다. 최적의 업데이트 방식을 찾기 위해 기여도 분석을 기반으로 자동 방법을 개발합니다. 이전의 바이어스 전용, last-k 레이어 업데이트와 비교하여 우리가 검색한 희소 업데이트 방식은 메모리를 4.5배에서 7.5배 절약했으며 8개 다운스트림 데이터 세트의 평균 정확도는 훨씬 더 높습니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

알고리즘의 이론적 축소를 실제 수치로 변환하기 위해 TTE(Tiny Training Engine)를 설계했습니다. TTE(Tiny Training Engine)는 자동 미분 작업을 컴파일 시간으로 이동하고 codegen을 사용하여 런타임 오버헤드를 줄입니다. 또한 실제 비용 절감 및 속도 향상을 위해 그래프 정리 및 재정렬을 지원합니다. Sparse Update는 전체 업데이트에 비해 최대 메모리를 7~9배 효과적으로 줄이고, 재정렬을 통해 총 메모리 절약을 20~21배까지 더욱 향상시킬 수 있습니다. TF-Lite와 비교하여 TTE의 최적화된 커널 및 희소 업데이트는 전체 학습 속도를 23~25배 향상시킵니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.

결론

이 기사에서 우리는 마이크로컨트롤러(단지 256KB 메모리와 1MB 플래시 메모리 포함)에서 교육을 구현하는 첫 번째 솔루션을 제시했습니다. 우리의 알고리즘 시스템 공동 설계(System-Algorithm Co-design)는 교육에 필요한 메모리(PyTorch 대비 1000배) 및 교육 시간(TF-Lite 대비 20배)을 크게 줄이고 다운스트림 작업 속도에서 더 높은 정확도를 달성합니다. Tiny Training은 많은 흥미로운 애플리케이션을 강화할 수 있습니다. 예를 들어 휴대폰은 사용자의 이메일/입력 기록을 기반으로 언어 모델을 맞춤 설정할 수 있고, 스마트 카메라는 지속적으로 새로운 얼굴/객체를 인식할 수 있으며, 인터넷에 연결할 수 없는 일부 AI 시나리오도 계속할 수 있습니다. (예: 농업), 해양, 산업 조립 라인). 우리의 작업을 통해 소형 최종 장치는 추론뿐만 아니라 훈련도 수행할 수 있습니다. 이 과정에서 개인 데이터는 클라우드에 업로드되지 않으므로 개인 정보 보호 위험이 없습니다. 동시에 AI 모델은 역동적으로 변화하는 세상에 적응하기 위해 지속적으로 스스로 학습할 수 있습니다!

위 내용은 256KB 미만의 메모리로 엣지 트레이닝을 구현하며 비용은 PyTorch의 1/1000 미만입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제