Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

O MNN é a estrutura de inferência de aprendizagem profunda leve e de código aberto da Alibaba que se concentra na implantação de modelos para dispositivos móveis e incorporados. Ele oferece suporte à inferência e ao treinamento eficientes de modelos e é amplamente utilizado em vários cenários de negócios do Alibaba, como Taobao, Nail e Youku, etc. O MNN oferece compatibilidade entre plataformas, suporta iOS, Android e dispositivos incorporados e otimiza o desempenho computacional da CPU e da GPU. Suas principais vantagens são a leveza, o alto desempenho e a facilidade de uso, o que pode reduzir significativamente o consumo de recursos da implantação do modelo. O MNN-LLM é uma solução de execução de modelo de linguagem desenvolvida com base no MNN, que oferece suporte a vários modelos de linguagem em grande escala executados localmente e garante a privacidade dos dados. A estrutura é de código aberto no GitHub, com uma comunidade ativa, documentação rica e exemplos, o que é adequado para que os desenvolvedores comecem a trabalhar rapidamente.

MNN: uma estrutura de inferência de aprendizagem profunda leve e eficiente-1

 

Lista de funções

  • Suporte a vários formatos de modelos de aprendizagem profunda, incluindo TensorFlow, Caffe, ONNX e TorchScript.
  • Fornece inferência de modelo eficiente com suporte para CNN, RNN, GAN e Transformador et al. Neural Networks.
  • Suporte para computação híbrida de vários dispositivos em CPU e GPU (Metal, OpenCL, Vulkan).
  • Fornece o MNN-LLM para permitir a execução de grandes modelos de linguagem em celulares e PCs.
  • Oferece suporte à quantificação de modelos (por exemplo, FP16 e Int8), reduzindo o tamanho do modelo 50%-70%.
  • Fornece o MNN-Express para dar suporte à modelagem de fluxo de controle e à computação de uso geral.
  • MNN-CV integrado, uma biblioteca leve de processamento de imagens semelhante ao OpenCV.
  • Suporte ao MNN-Train para treinamento de modelos MNN.
  • Fornece aplicativos multimodais, como o MNN-LLM-Android, com suporte para processamento de texto, imagem e áudio.

 

Usando a Ajuda

Processo de instalação

Para usar o MNN localmente, primeiro você precisa clonar o código do projeto de um repositório do GitHub. Veja a seguir as etapas detalhadas de instalação:

  1. armazém de clones
    Abra um terminal e execute o seguinte comando para clonar o repositório MNN:

    git clone https://github.com/alibaba/MNN.git
    
  2. Instalação de dependências
    O MNN é compatível com iOS 8.0+, Android 4.3+ e dispositivos incorporados com interface POSIX. Certifique-se de que as ferramentas de compilação necessárias estejam instaladas em seu sistema:

    • Linux/macOSInstalação do CMake (3.10 ou superior), do Git e do GCC/Clang.
      sudo apt-get install cmake git build-essential
      
    • Android (sistema operacional)Instale o Android NDK (r17 ou superior).
    • iOSVerifique se o Xcode e o suporte ao Metal estão instalados.
  3. Compilação MNN
    Vá para o diretório MNN, crie uma pasta de compilação e execute o CMake:

    cd MNN
    mkdir build && cd build
    cmake .. -DMNN_BUILD_MINI=ON
    make -j4
    

    fazer uso de MNN_BUILD_MINI Reduz o tamanho do pacote em aproximadamente 25% para dispositivos com recursos limitados. Depois de compilados, os arquivos executáveis e de biblioteca resultantes estão localizados no diretório build Catálogo.

  4. Instale o aplicativo MNN-LLM para Android
    Para o aplicativo MNN-LLM para Android, baixe o arquivo APK pré-compilado da página de versões do GitHub ou crie-o você mesmo:

    • Faça o download do código-fonte:project/android/apps/MnnLlmApp.
    • Abra o projeto usando o Android Studio, configure o caminho do NDK e clique em Build > Build APK.
    • Instale o APK em seu dispositivo Android, que deve ser compatível com o Android 4.3 ou superior.

Inferência de modelo usando MNN

A principal função do MNN é a inferência de modelos. As etapas específicas são as seguintes:

  1. transformação de modelos
    O MNN é compatível com TensorFlow, Caffe, ONNX e outros formatos de modelo. Os modelos precisam ser convertidos para o formato MNN:

    • Suponha que haja um modelo do TensorFlow model.pbExecute o seguinte comando:
      ./MNNConvert -f TF --modelFile model.pb --MNNModel model.mnn --bizCode MNN
      
    • convertido model.mnn Os documentos podem ser usados para raciocínio.
  2. Carregar e executar modelos
    O MNN fornece APIs C++ e Python para inferência. Aqui está um exemplo simples em C++:

    #include <MNN/Interpreter.hpp>
    int main() {
    auto mnnNet = MNN::Interpreter::createFromFile("model.mnn");
    auto session = mnnNet->createSession();
    // 输入数据
    auto input = mnnNet->getSessionInput(session, nullptr);
    // 运行推理
    mnnNet->runSession(session);
    // 获取输出
    auto output = mnnNet->getSessionOutput(session, nullptr);
    return 0;
    }
    

    Os desenvolvedores podem consultar demo/ código de amostra no diretório.

  3. Usando o MNN-LLM
    O MNN-LLM suporta a execução de modelos de linguagem grandes (por exemplo, Qwen, Llama) no celular. Depois de instalar o aplicativo MNN-LLM para Android:

    • Abra o aplicativo e procure a lista de modelos compatíveis.
    • Clique para fazer o download do modelo (por exemplo, Qwen-7B) e o modelo será armazenado localmente no dispositivo.
    • Digite um prompt de texto e o aplicativo retornará o resultado gerado.
    • Suporte a tarefas multimodais, como descrição de imagem ou áudio para texto, a operação é semelhante, basta carregar o arquivo correspondente.
      O aplicativo é executado totalmente off-line e os dados não são carregados no servidor para proteger a privacidade.
  4. otimizar o desempenho
    • fazer uso de FP16 talvez Int8 Modelagem quantitativa para reduzir o espaço de memória.
    • Ative a aceleração da GPU (requer suporte do dispositivo para Metal ou Vulkan).
    • Para modelos complexos, o MNN-Express Otimização dos cálculos de fluxo de controle.

Processamento de imagens com MNN-CV

O MNN-CV oferece funções leves de processamento de imagens semelhantes ao código de amostra do OpenCV:

#include <MNN/ImageProcess.hpp>
int main() {
MNN::CV::ImageProcess::Config config;
config.destFormat = MNN::CV::RGB;
auto process = MNN::CV::ImageProcess::create(config);
// 加载图像
process->convert(imageData, width, height, 0, output);
return 0;
}

Os desenvolvedores podem consultar include/MNN/ImageProcess.hpp Obtenha mais recursos.

 

cenário do aplicativo

  1. Aplicativos de IA para dispositivos móveis
    A MNN oferece suporte à pesquisa de imagens, sistemas de recomendação e efeitos ao vivo em aplicativos como o Taobao e o Nail. Por exemplo, a Taobao usa a MNN para o reconhecimento de imagens de produtos, para que os usuários possam encontrar rapidamente produtos semelhantes carregando imagens.
  2. Implementação de dispositivos incorporados
    A MNN é compatível com dispositivos de IoT para cenários domésticos ou industriais inteligentes. Por exemplo, a execução de um modelo de detecção de rosto em uma câmera inteligente leva apenas 5 milissegundos para processar um único quadro.
  3. modelo de idioma localizado
    O MNN-LLM permite que os usuários executem grandes modelos de linguagem em seus telefones celulares, adequados para cenários sensíveis à privacidade, como resumo de documentos locais ou assistentes de voz.
  4. tarefa multimodal
    O aplicativo MNN-LLM para Android é compatível com descrição de imagens, áudio para texto e outras funções para manutenção doméstica, anotações de voz e outros cenários.

 

QA

  1. Quais formatos de modelo são compatíveis com o MNN?
    O MNN é compatível com os formatos TensorFlow, Caffe, ONNX e TorchScript, abrangendo 178 operações do TensorFlow, 158 operações do ONNX e muito mais.
  2. Como executar o MNN em dispositivos de baixo custo?
    fazer uso de MNN_BUILD_MINI Opção de compilação para reduzir o tamanho do pacote e permitir Int8 Reduzir quantitativamente o espaço ocupado pela memória.
  3. O MNN-LLM é compatível com modelos externos?
    Atualmente, o aplicativo precisa ser recompilado para carregar modelos externos, e há planos oficiais para melhorar a importação de modelos no futuro.
  4. Qual é o desempenho da MNN?
    O MNN é mais de 20% mais rápido do que o TensorFlow Lite em modelos como o MobileNet, e a inferência MNN-LLM no Android é mais rápida do que llama.cpp 8,6 vezes mais rápido.
0Marcado
0Recomendado

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

voltar ao topo

pt_BRPortuguês do Brasil