このリポジトリは、Microsoft Research Indiaで開発されたエッジデバイスの機械学習アルゴリズムのコードを提供します。
エッジデバイスの機械学習モデルは、ストレージ、予測レイテンシ、エネルギーの点で小さなフットプリントを持つ必要があります。このようなモデルが望ましい場所の1つのインスタンスは、モノのインターネット(IoT)設定のリソーススカースデバイスとセンサーです。クラウドに接続せずにIoTデバイスでローカルでリアルタイム予測を行うには、数キロバイトに収まるモデルが必要です。
モデルサイズと計算の両方の観点からこの設定で輝くアルゴリズム、すなわち:
これらのアルゴリズムは、他の最新のMLアルゴリズムよりも桁違いに低いメモリ要件を備えた古典的な監視された学習問題のモデルをトレーニングできます。訓練されたモデルは、IoTデバイス/センサーなどのエッジデバイスにロードでき、高速で正確な予測を完全にオフラインにするために使用できます。
上記のアルゴリズムによってトレーニングされたモデルを適応するツールは、固定点算術によって推測されるようにします。
これらのアルゴリズムのユーザーケースを示すアプリケーション:
tfディレクトリには、これらのアーキテクチャをTensorFlowで指定するedgeml_tfパッケージが含まれており、 examples/tfにはこれらのアルゴリズムのサンプルトレーニングルーチンが含まれています。pytorchディレクトリには、Pytorchのこれらのアーキテクチャを指定するedgeml_pytorchパッケージが含まれており、 examples/pytorchにはこれらのアルゴリズムのサンプルトレーニングルーチンが含まれています。cppディレクトリには、C ++のBonsaiおよびProtoNNアルゴリズムのトレーニングと推論コードがあります。applicationsディレクトリには、EDGEMLアルゴリズムのアプリケーションのコード/デモンストレーションがあります。tools/SeeDotディレクトリには、固定点推論コードを生成する量子化ツールがあります。c_referenceディレクトリには、Cのさまざまなアルゴリズムの推論コード(フローティングポイントまたは量子化)が含まれています。これらのディレクトリ内のreadmeページにインストール/実行の手順を参照してください。
詳細については、プロジェクトページ、Microsoft Research Page、ICML '17 BonsaiおよびProtonn Algorithmsに関するICML '17出版物、EMI-RNNおよびFastgrnnに関するNeurips '18出版物、Seedot CompilerでのPLDI '19出版物、GesturePodでのUIST '19出版物のUIST '19出版物の出版物は、MSC-RNNの出版物であり、 DROCCでのICML '20出版物、およびRNNPOOLでのNeuRIPS '20出版物。
また、このライブラリによってトレーニングされたいくつかのONNXモデルに最適化されたバイナリを提供できるELLプロジェクトをチェックアウトします。
貢献したアルゴリズム、アプリケーション、ツールのコード:
このプロジェクトへの貢献者。新しい貢献者を歓迎します。
コメント、批判、質問を私たちにメールしてください。
作業でこのライブラリのソフトウェアを使用する場合は、引用のために以下のBibtexエントリを使用してください。
@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オープンソース行動規範。詳細については、FAQのコードを参照するか、追加の質問やコメントについては[email protected]にお問い合わせください。