Home
Login

Framework de aprendizado profundo eficiente e leve, otimizado para dispositivos móveis e embarcados, com suporte para inferência e treinamento de modelos.

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

MNN - Estrutura de Aprendizado Profundo Leve de Código Aberto do Alibaba

Visão Geral do Projeto

MNN é uma estrutura de aprendizado profundo eficiente e leve que suporta inferência e treinamento de modelos de aprendizado profundo, com desempenho líder do setor em inferência e treinamento no dispositivo. Atualmente, o MNN foi integrado a mais de 30 aplicativos do Alibaba, como Taobao, Tmall, Youku, DingTalk, Xianyu, etc., cobrindo mais de 70 cenários de uso, como transmissão ao vivo, gravação de vídeos curtos, recomendação de pesquisa, "拍立淘" (Paipitao - pesquisa visual), marketing interativo, distribuição de direitos e controle de risco de segurança.

Endereço do GitHub: https://github.com/alibaba/MNN

Principais Características

1. Leveza Extrema

  • Plataforma iOS: O tamanho da biblioteca estática para as plataformas armv7+arm64 é de aproximadamente 12 MB, e o incremento do arquivo executável após a vinculação é de aproximadamente 2 MB.
  • Plataforma Android: O tamanho da biblioteca principal .so é de aproximadamente 800 KB (armv7a - c++_shared)
  • Usar MNN_BUILD_MINI pode reduzir o tamanho do pacote em cerca de 25%
  • Suporta quantização FP16/Int8, o que pode reduzir o tamanho do modelo em 50%-70%

2. Amplo Suporte a Modelos

  • Suporte a Estruturas: TensorFlow, Caffe, ONNX, Torchscripts
  • Tipos de Rede: CNN, RNN, GAN, Transformer e outras redes neurais comuns
  • Suporte a Operadores:
    • 178 operadores TensorFlow
    • 52 operadores Caffe
    • 163 operadores Torchscripts
    • 158 operadores ONNX

3. Compatibilidade Multiplataforma

  • Plataformas Móveis: iOS 8.0+, Android 4.3+
  • Dispositivos Embarcados: Dispositivos que suportam interface POSIX
  • Computação Híbrida Multi-Dispositivo: CPU e GPU trabalhando em conjunto
  • Dispositivos IoT: Também possui aplicações em dispositivos de Internet das Coisas

4. Otimização de Alto Desempenho

  • Uma grande quantidade de código assembly otimizado aproveita ao máximo a CPU ARM/x64
  • Usa Metal/OpenCL/Vulkan para suportar inferência de GPU em dispositivos móveis
  • Usa CUDA e Tensor Core para suportar NVIDIA GPU
  • O algoritmo de convolução Winograd é amplamente utilizado para convoluções simétricas de 3x3, 4x4, 5x5, 6x6, 7x7, etc.
  • Suporte para computação de meia precisão FP16 na arquitetura ARM v8.2, com um aumento de velocidade de 2x
  • Suporte para ARM v8.2 sdot e VNNI, com um aumento de velocidade de 2.5x

Matriz de Suporte de Arquitetura

Arquitetura/Precisão 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

Legenda: S - Fortemente Recomendado | A - Bem Suportado | B - Suportado, mas com Problemas | C - Não Suportado

Componentes Principais

1. MNN-Converter

Ferramenta de conversão de modelos, suporta a conversão de modelos de outras estruturas para modelos MNN:

  • Suporta TensorFlow(lite), Caffe, ONNX, Torchscripts
  • Realiza otimização de grafo para reduzir a quantidade de computação

2. MNN-Compress

Ferramenta de compressão de modelos, reduz o tamanho do modelo e melhora o desempenho

3. MNN-Express

Suporta a execução de modelos de fluxo de controle, usando operadores MNN para computação de propósito geral

4. MNN-CV

Biblioteca leve de processamento de imagem, semelhante ao OpenCV, mas implementada com base no MNN

5. MNN-Train

Suporta o treinamento de modelos MNN

Aplicações Especiais

MNN-LLM

Solução de tempo de execução de modelo de linguagem grande desenvolvida com base no mecanismo MNN, com o objetivo de implantar modelos LLM localmente na plataforma de todos (telefone celular/PC/IoT). Suporta:

  • Modelos de linguagem grandes convencionais, como Qianwen, Baichuan, Zhipu, LLAMA, etc.
  • Aplicativo Android LLM de modo completo
  • Geração de texto, compreensão de imagem, fala para texto, geração de imagem de texto

MNN-Diffusion

Solução de tempo de execução de modelo de difusão estável baseada no mecanismo MNN, que suporta a implantação local de modelos de difusão estável em várias plataformas.

Conquistas Acadêmicas

Os resultados de pesquisa relacionados ao MNN foram publicados nas principais conferências de sistemas OSDI'22 e MLSys 2020, demonstrando seu impacto na academia e na indústria.

Ferramentas de Desenvolvimento

MNN Workbench

Pode ser baixado do site oficial do MNN, fornecendo:

  • Modelos pré-treinados
  • Ferramentas de treinamento visual
  • Implantação de modelo com um clique para o dispositivo

API Python

Fornece uma interface Python fácil de usar para engenheiros de aprendizado de máquina, permitindo inferência, treinamento e processamento de imagem sem escrever código C++.

Resumo

Como uma estrutura de aprendizado profundo de código aberto do Alibaba, o MNN se tornou uma excelente escolha para implantação de IA móvel e embarcada devido às suas características de leveza, alto desempenho e multiplataforma. Seja a inferência de modelos CNN tradicionais ou a implantação dos mais recentes modelos de linguagem grandes, o MNN fornece uma solução completa e é um conjunto de ferramentas indispensável para desenvolvedores de IA.

Star History Chart