Package: aifs-nni
简体中文NNI (Neural Network Intelligence)is a lightweight but powerful toolkit to help usersautomateFeature Engineering,Neural Architecture Search,Hyperparameter TuningandModel Compression.The tool manages automated machine learning (AutoML) experiments,dispatches and runsexperiments' trial jobs generated by tuning algorithms to search the best neural architecture and/or hyper-parameters indifferent training environmentslikeLocal Machine,Remote Servers,OpenPAI,Kubeflow,FrameworkController on K8S (AKS etc.),DLWorkspace (aka. DLTS),AML (Azure Machine Learning)and other cloud options.Who should consider using NNIThose who want totry different AutoML algorithmsin their training code/model.Those who want to run AutoML trial jobsin different environmentsto speed up search.Researchers and data scientists who want to easilyimplement and experiment new AutoML algorithms, may it be: hyperparameter tuning algorithm, neural architect search algorithm or model compression algorithm.ML Platform owners who want tosupport AutoML in their platform.NNI v1.9 has been released!NNI capabilities in a glanceNNI provides CommandLine Tool as well as an user friendly WebUI to manage training experiments. With the extensible API, you can customize your own AutoML algorithms and training services. To make it easy for new users, NNI also provides a set of build-in state-of-the-art AutoML algorithms and out of box support for popular training platforms.Within the following table, we summarized the current NNI capabilities, we are gradually adding new capabilities and we'd love to have your contribution.Frameworks & LibrariesAlgorithmsTraining ServicesBuilt-inSupported FrameworksPyTorchKerasTensorFlowMXNetCaffe2More...Supported LibrariesScikit-learnXGBoostLightGBMMore...ExamplesMNIST-pytorchMNIST-tensorflowMNIST-kerasAuto-gbdtCifar10-pytorchScikit-learnEfficientNetKernel TunningMore...Hyperparameter TuningExhaustive searchRandom SearchGrid SearchBatchHeuristic searchNaïve EvolutionAnnealHyperbandPBTBayesian optimizationBOHBTPESMACMetis TunerGP TunerRL BasedPPO TunerNeural Architecture SearchENASDARTSP-DARTSCDARTSSPOSProxylessNASNetwork MorphismTextNASModel CompressionPruningAGP PrunerSlim PrunerFPGM PrunerNetAdapt PrunerSimulatedAnnealing PrunerADMM PrunerAutoCompress PrunerQuantizationQAT QuantizerDoReFa QuantizerFeature Engineering (Beta)GradientFeatureSelectorGBDTSelectorEarly Stop AlgorithmsMedian StopCurve FittingLocal MachineRemote ServersAML(Azure Machine Learning)Kubernetes based servicesOpenPAIKubeflowFrameworkController on K8S (AKS etc.)DLWorkspace (aka. DLTS)ReferencesPython APINNI AnnotationSupported OSCustomizeTunerCustomizeAssessorInstall Customized Algorithms as Builtin Tuners/Assessors/AdvisorsSupport TrainingServiceImplement TrainingServiceInstallationInstallNNI supports and is tested on Ubuntu >= 16.04, macOS >= 10.14.1, and Windows 10 >= 1809. Simply run the followingpip installin an environment that haspython 64-bit >= 3.6.Linux or macOSpython3-mpipinstall--upgradenniWindowspython-mpipinstall--upgradenniIf you want to try latest code, pleaseinstall NNIfrom source code.For detail system requirements of NNI, please refer toherefor Linux & macOS, andherefor Windows.Note:If there is any privilege issue, add--userto install NNI in the user directory.Currently NNI on Windows supports local, remote and pai mode. Anaconda or Miniconda is highly recommended to installNNI on Windows.If there is any error likeSegmentation fault, please refer toFAQ. For FAQ on Windows, please refer toNNI on Windows.Verify installationThe following example is built on TensorFlow 1.x. Make sureTensorFlow 1.x is usedwhen running it.Download the examples via clone the source code.gitclone-bv1.9https://github.com/Microsoft/nni.gitRun the MNIST example.Linux or macOSnnictlcreate--confignni/examples/trials/mnist-tfv1/config.ymlWindowsnnictlcreate--confignni\examples\trials\mnist-tfv1\config_windows.ymlWait for the messageINFO: Successfully started experiment!in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using theWeb UI url.INFO: Starting restful server...
INFO: Successfully started Restful server!
INFO: Setting local config...
INFO: Successfully set local config!
INFO: Starting experiment...
INFO: Successfully started experiment!
-----------------------------------------------------------------------
The experiment id is egchD4qy
The Web UI urls are: http://223.255.255.1:8080   http://127.0.0.1:8080
-----------------------------------------------------------------------

You can use these commands to get more information about the experiment
-----------------------------------------------------------------------
         commands                       description
1. nnictl experiment show        show the information of experiments
2. nnictl trial ls               list all of trial jobs
3. nnictl top                    monitor the status of running experiments
4. nnictl log stderr             show stderr log content
5. nnictl log stdout             show stdout log content
6. nnictl stop                   stop an experiment
7. nnictl trial kill             kill a trial job by id
8. nnictl --help                 get help information about nnictl
-----------------------------------------------------------------------Open theWeb UI urlin your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below.Hereare more Web UI pages.DocumentationTo learn about what's NNI, read theNNI Overview.To get yourself familiar with how to use NNI, read thedocumentation.To get started and install NNI on your system, please refer toInstall NNI.ContributingThis project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visithttps://cla.microsoft.com.When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.This project has adopted theMicrosoft Open Source Code of Conduct. For more information see the Code ofConduct FAQor contactopencode@microsoft.comwith any additional questions or comments.After getting familiar with contribution agreements, you are ready to create your first PR =), follow the NNI developer tutorials to get start:We recommend new contributors to start with simple issues:'good first issue'or'help-wanted'.NNI developer environment installation tutorialHow to debugIf you have any questions on usage, reviewFAQfirst, if there are no relevant issues and answers to your question, try contact NNI dev team and users inGitterorFile an issueon GitHub.Customize your own TunerImplement customized TrainingServiceImplement a new NAS trainer on NNICustomize your own AdvisorExternal Repositories and ReferencesWith authors' permission, we listed a set of NNI usage examples and relevant articles.External RepositoriesRunENASwith NNIAutomatic Feature Engineeringwith NNIHyperparameter Tuning for Matrix Factorizationwith NNIscikit-nniHyper-parameter search for scikit-learn pipelines using NNIRelevant ArticlesHyper Parameter Optimization ComparisonNeural Architecture Search ComparisonParallelizing a Sequential Algorithm TPEAutomatically tuning SVD with NNIAutomatically tuning SPTAG with NNIFind thy hyper-parameters for scikit-learn pipelines using Microsoft NNIBlog (in Chinese)-AutoML tools (Advisor, NNI and Google Vizier) comparisonby@gaocegege- 总结与分析 section of design and implementation of kubeflow/katibBlog (in Chinese)-A summary of NNI new capabilities in 2019by @squirrelscFeedbackFile an issueon GitHub.Ask a question with NNI tags onStack Overflow.Discuss on the NNIGitterin NNI.Join IM discussion groups:GitterWeChatORRelated ProjectsTargeting at openness and advancing state-of-art technology,Microsoft Research (MSR)had also released few other open source projects.OpenPAI: an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.FrameworkController: an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller.MMdnn: A comprehensive, cross-framework solution to convert, visualize and diagnose deep neural network models. The "MM" in MMdnn stands for model management and "dnn" is an acronym for deep neural network.SPTAG: Space Partition Tree And Graph (SPTAG) is an open source library for large scale vector approximate nearest neighbor search scenario.We encourage researchers and students leverage these projects to accelerate the AI development and research.LicenseThe entire codebase is underMIT license