Home
Login

효율적인 경량 딥러닝 프레임워크로, 모바일 및 임베디드 장치에 최적화되어 모델 추론 및 훈련을 지원합니다.

Apache-2.0C++ 12.0kalibabaMNN Last Updated: 2025-06-20

MNN - 알리바바 오픈소스 경량 딥러닝 프레임워크

프로젝트 개요

MNN은 효율적인 경량 딥러닝 프레임워크로, 딥러닝 모델의 추론 및 훈련을 지원하며, 장치 측 추론 및 훈련 분야에서 업계 선도적인 성능을 자랑합니다. 현재 MNN은 타오바오, 티몰, 유쿠, 딩딩, 시엔위 등 알리바바의 30개 이상의 애플리케이션에 통합되어 라이브 스트리밍, 짧은 동영상 촬영, 검색 추천, 즉석 사진 검색, 인터랙티브 마케팅, 권익 제공, 보안 리스크 관리 등 70개 이상의 사용 시나리오를 커버합니다.

GitHub 주소: https://github.com/alibaba/MNN

핵심 특징

1. 극한의 경량화

  • iOS 플랫폼: armv7+arm64 플랫폼 정적 라이브러리 크기 약 12MB, 링크 후 실행 파일 증분 약 2MB
  • Android 플랫폼: 핵심 so 라이브러리 크기 약 800KB (armv7a - c++_shared)
  • MNN_BUILD_MINI를 사용하면 패키지 크기를 약 25% 줄일 수 있습니다.
  • FP16/Int8 양자화를 지원하여 모델 크기를 50%-70% 줄일 수 있습니다.

2. 광범위한 모델 지원

  • 프레임워크 지원: TensorFlow, Caffe, ONNX, Torchscripts
  • 네트워크 유형: CNN, RNN, GAN, Transformer 등 일반적인 신경망
  • 연산자 지원:
    • 178개 TensorFlow 연산자
    • 52개 Caffe 연산자
    • 163개 Torchscripts 연산자
    • 158개 ONNX 연산자

3. 크로스 플랫폼 호환성

  • 모바일 플랫폼: iOS 8.0+, Android 4.3+
  • 임베디드 장치: POSIX 인터페이스를 지원하는 장치
  • 다중 장치 혼합 계산: CPU와 GPU 협업
  • IoT 장치: IoT 장치에서도 사용 가능

4. 고성능 최적화

  • ARM/x64 CPU를 최대한 활용하는 최적화된 어셈블리 코드 다수
  • Metal/OpenCL/Vulkan을 사용하여 모바일 GPU 추론 지원
  • CUDA 및 Tensor Core를 사용하여 NVIDIA GPU 지원
  • Winograd 컨볼루션 알고리즘은 3x3, 4x4, 5x5, 6x6, 7x7 등 대칭 컨볼루션에 널리 사용됩니다.
  • ARM v8.2 아키텍처 FP16 반정밀도 계산 지원, 속도 2배 향상
  • ARM v8.2 sdot 및 VNNI 지원, 속도 2.5배 향상

아키텍처 지원 매트릭스

아키텍처/정밀도 Normal FP16 BF16 Int8
CPU
Native B C B B
x86/x64-SSE4.1 A B B A
x86/x64-AVX2 S B B A
x86/x64-AVX512 S B B S
ARMv7a S S(ARMv8.2) S S
ARMv8 S S(ARMv8.2) S(ARMv8.6) S
GPU
OpenCL A S C S
Vulkan A A C A
Metal A S C S
CUDA A S C A
NPU
CoreML A C C C
HIAI A C C C
NNAPI B B C B

설명: S-강력 추천 | A-양호한 지원 | B-지원하지만 문제 있음 | C-지원하지 않음

핵심 구성 요소

1. MNN-Converter

모델 변환 도구, 다른 프레임워크 모델을 MNN 모델로 변환 지원:

  • TensorFlow(lite), Caffe, ONNX, Torchscripts 지원
  • 계산량을 줄이기 위한 그래프 최적화 수행

2. MNN-Compress

모델 압축 도구, 모델 크기를 줄이고 성능 향상

3. MNN-Express

제어 흐름을 지원하는 모델 실행, MNN 연산자를 사용하여 일반적인 계산 수행

4. MNN-CV

경량 이미지 처리 라이브러리, OpenCV와 유사하지만 MNN 기반으로 구현

5. MNN-Train

MNN 모델 훈련 지원

특징적인 응용

MNN-LLM

MNN 엔진을 기반으로 개발된 대규모 언어 모델 런타임 솔루션으로, 모든 사람의 플랫폼(휴대폰/PC/IoT)에 LLM 모델을 로컬로 배포하는 것을 목표로 합니다. 지원:

  • 첸웬, 바이촨, 즈푸, LLAMA 등 주요 대규모 언어 모델
  • 전체 모달 LLM Android 애플리케이션
  • 텍스트 생성, 이미지 이해, 음성 텍스트 변환, 텍스트 생성 이미지

MNN-Diffusion

MNN 엔진 기반의 안정적인 확산 모델 런타임 솔루션으로, 각 플랫폼에 안정적인 확산 모델을 로컬로 배포하는 것을 지원합니다.

학술 성과

MNN 관련 연구 성과는 최고 시스템 회의 OSDI'22 및 MLSys 2020에 발표되어 학계와 산업계에서의 영향력을 입증했습니다.

개발 도구

MNN Workbench

MNN 공식 웹사이트에서 다운로드할 수 있으며, 다음을 제공합니다.

  • 사전 훈련된 모델
  • 시각화된 훈련 도구
  • 장치에 원클릭 모델 배포

Python API

머신러닝 엔지니어에게 사용하기 쉬운 Python 인터페이스를 제공하여 C++ 코드를 작성하지 않고도 추론, 훈련 및 이미지 처리를 수행할 수 있습니다.

요약

MNN은 알리바바에서 오픈 소스로 제공하는 딥러닝 프레임워크로서, 경량화, 고성능, 크로스 플랫폼의 특징을 바탕으로 모바일 및 임베디드 AI 배포에 탁월한 선택이 되었습니다. 기존의 CNN 모델 추론이든 최신 대규모 언어 모델 배포이든 MNN은 완벽한 솔루션을 제공하며, AI 개발자에게 없어서는 안 될 도구 세트입니다.

Star History Chart