Ce référentiel fournit du code pour les algorithmes d'apprentissage automatique pour les appareils Edge développés chez Microsoft Research India.
Les modèles d'apprentissage automatique pour les périphériques Edge doivent avoir une petite empreinte en termes de stockage, de latence de prédiction et d'énergie. Un cas où ces modèles sont souhaitables sont les appareils et capteurs de scarce de ressources dans le paramètre Internet des objets (IoT). Faire des prédictions en temps réel localement sur les appareils IoT sans se connecter au cloud nécessite des modèles qui s'adaptent dans quelques kilobytes.
Algorithmes qui brillent dans ce cadre en termes de taille et de calcul du modèle, à savoir:
Ces algorithmes peuvent former des modèles pour des problèmes d'apprentissage supervisés classiques avec des exigences de mémoire qui sont des ordres de grandeur inférieurs à ceux des autres algorithmes ML modernes. Les modèles formés peuvent être chargés sur des périphériques de bord tels que les appareils / capteurs IoT, et utilisés pour rendre les prédictions rapides et précises complètement hors ligne.
Un outil qui adapte les modèles formés par les algorithmes ci-dessus à déduire par arithmétique à point fixe.
Applications démontrant des utilisation de ces algorithmes:
tf contient le package edgeml_tf qui spécifie ces architectures dans TensorFlow, et examples/tf contient des exemples de routines de formation pour ces algorithmes.pytorch contient le package edgeml_pytorch qui spécifie ces architectures dans Pytorch, et examples/pytorch contient des exemples de routines de formation pour ces algorithmes.cpp a un code de formation et d'inférence pour les algorithmes Bonsai et ProtoNN en C ++.applications a du code / des démonstrations des applications des algorithmes Edgeml.tools/SeeDot a l'outil de quantification pour générer du code d'inférence à point fixe.c_reference contient le code d'inférence (point flottant ou quantifié) pour divers algorithmes dans C.Veuillez consulter les instructions d'installation / d'exécution dans les pages ReadMe dans ces répertoires.
Pour plus de détails, veuillez consulter notre page de projet, Microsoft Research Page, les publications ICML '17 sur les algorithmes de bonsaï et de protonns, les publications de Neirips '18 sur EMI-RNN et Fastgrnn, la publication PLDI '19 sur le compilateur Seedot, la publication Uist '19 sur Gesturepod, The Buildingy RNNS, la publication ICML '20 sur Drocc et la publication des Neirips '20 sur RNNPool.
Découvrez également le projet ELL qui peut fournir des binaires optimisés pour certains des modèles ONNX formés par cette bibliothèque.
Code pour les algorithmes, les applications et les outils apportés par:
Contributeurs à ce projet. Les nouveaux contributeurs sont les bienvenus.
Veuillez nous envoyer un e-mail à vos commentaires, critiques et questions.
Si vous utilisez des logiciels de cette bibliothèque dans votre travail, veuillez utiliser l'entrée Bibtex ci-dessous pour la citation.
@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},
}
Code de conduite open source de Microsoft. Pour plus d'informations, consultez le code de conduite FAQ ou contactez [email protected] avec toute question ou commentaire supplémentaire.