Este repositório fornece código para algoritmos de aprendizado de máquina para dispositivos de borda desenvolvidos na Microsoft Research India.
Os modelos de aprendizado de máquina para dispositivos de borda precisam ter uma pequena pegada em termos de armazenamento, latência de previsão e energia. Uma instância de onde esses modelos são desejáveis são os dispositivos e sensores de escolaridade de recursos na configuração da Internet das Coisas (IoT). Fazer previsões em tempo real localmente em dispositivos IoT sem se conectar à nuvem requer modelos que se encaixam em alguns Kilobytes.
Algoritmos que brilham nesse cenário em termos de tamanho e computação do modelo, a saber:
Esses algoritmos podem treinar modelos para problemas clássicos de aprendizagem supervisionados com requisitos de memória que são ordens de magnitude inferiores aos outros algoritmos ML modernos. Os modelos treinados podem ser carregados em dispositivos de borda, como dispositivos/sensores de IoT, e usados para fazer previsões rápidas e precisas completamente offline.
Uma ferramenta que adapta os modelos treinados por algoritmos acima a serem inferidos pela aritmética do ponto fixo.
Aplicações demonstrando USecases desses algoritmos:
tf contém o pacote edgeml_tf que especifica essas arquiteturas no TensorFlow, e examples/tf contêm rotinas de treinamento de amostra para esses algoritmos.pytorch contém o pacote edgeml_pytorch , que especifica essas arquiteturas em Pytorch, e examples/pytorch contém rotinas de treinamento de amostra para esses algoritmos.cpp possui código de treinamento e inferência para os algoritmos de Bonsai e ProtoNN em C ++.applications possui código/demonstração de aplicativos dos algoritmos EDgeml.tools/SeeDot possui a ferramenta de quantização para gerar código de inferência de ponto fixo.c_reference contém o código de inferência (ponto flutuante ou quantizado) para vários algoritmos em C.Consulte as instruções de instalação/execução nas páginas de leitura nesses diretórios.
Para detalhes, consulte a página do projeto, a página de pesquisa da Microsoft, as publicações do ICML '17 sobre os algoritmos de Bonsai e Proton. RNNs, a publicação do ICML '20 no DROCC e a publicação do Neurips '20 no RNNPOOL.
Também consulte o projeto ELL, que pode fornecer binários otimizados para alguns dos modelos ONNX treinados por esta biblioteca.
Código para algoritmos, aplicativos e ferramentas contribuídos por:
Colaboradores deste projeto. Novos colaboradores são bem -vindos.
Por favor, envie -nos seus comentários, críticas e perguntas.
Se você usar o software desta biblioteca em seu trabalho, use a entrada do Bibtex abaixo para citação.
@misc{edgeml04,
author = {{Dennis, Don Kurian and Gaurkar, Yash and Gopinath, Sridhar and Goyal, Sachin
and Gupta, Chirag and Jain, Moksh and Jaiswal, Shikhar and Kumar, Ashish and
Kusupati, Aditya and Lovett, Chris and Patil, Shishir G and Saha, Oindrila and
Simhadri, Harsha Vardhan}},
title = {{EdgeML: Machine Learning for resource-constrained edge devices}},
url = {https://github.com/Microsoft/EdgeML},
version = {0.4},
}
Microsoft Open Source Código de Conduta. Para obter mais informações, consulte o Código de Conduta Perguntas frequentes ou entre em contato com [email protected] com quaisquer perguntas ou comentários adicionais.