The goal of Microsoft Machine Learning Services is to provide an extensible, scalable platform for integrating machine learning tasks and tools with the applications that consume machine learning services. The platform must serve the needs of all users involved in the data development and analytics process, from data scientists, to architects and database administrators.
Key concepts include:
- High-performance scalable analytics. Write-once, deploy-anywhere solutions
- Avoid data movement and data risk: bring analytics to the data
- Let data scientists choose their own tools and languages
- Integrate the best features of open source with Microsoft's enterprise capabilities
- Simplify administration
- Make it easier to deploy and consume predictive models
In-database analytics with SQL Server
In SQL Server 2016, Microsoft launched two server platforms for integrating the popular open source R language with business applications:
- SQL Server R Services (In-Database), for integration with SQL Server
- Microsoft R Server, for enterprise-level R deployments on Windows and Linux servers
In SQL Server 2017 CTP 2.0, the name has been changed to reflect support for the popular Python language.
- SQL Server Machine Learning Services (In-Database) supports both R and Python. version-md.md)]
- Microsoft Machine Learning Server supports R and Python deployments on Windows servers, with expansion to other supported platforms planned for late 2017.
R Services (In-Database) brings the compute to the data by allowing R to run on the same computer as the database. It includes the Launchpad service, which runs outside the SQL Server process and communicates securely with the R or Python runtimes.
Using SQL Server Machine Learning Services, you can train models, generate plots, perform scoring, and easily move data between SQL Server and R or Python.
Data scientists who are testing and developing solutions can send scripts from a remote development computer to run code securely on the server, or they can deploy completed solutions to SQL Server by embedding machine learning code in SQL stored procedures.
When you install machine learning for SQL Server, you get a distribution of the open source R or Python language, as well as the scalable R and Python libraries provided by Microsoft. The SQL Server database engine also includes new components designed to bolster connectivity and ensure faster, more secure communication with external languages such as R or Python.
Where to get it
To get started, see these resources:
Support for Python is provided only in SQL Server 2017. This is a new feature and still under development.
Microsoft R Server and Machine Learning Server (Standalone)
This standalone server system supports distributed, scalable R solutions on multiple platforms and using multiple enterprise data sources, including Linux, Hadoop, and Teradata.
For more information, see Microsoft R Server (MSDN).
If you don't need to integrate with SQL Server, you can install R Server to enable rapid development, deployment, and operationalization of machine learning solutions. You can also use the R Server installers to upgrade the R components associated with a SQL Server instance and obtain the latest version of R.
If you install Microsoft Machine Learning Server using SQL Server 2017 setup, you can also deploy and consume Python applications.
Microsoft provides broad support for machine learning ecosystems, including tools, providers, enhanced R and Python packages, a cloud development and services platform, and an integrated development environment.
R Tools for Visual Studio
Visual Studio provides a full development environment for the R language. The plug-in includes an editor, interactive window, plotting, debugger, and more. You can use .NET languages from R or invoke R from .NET via open source libraries such as R.NET and rClr.
Visual Studio also has an excellent Python development environment. There's no easier way to work with machine learning languages while continuing to enjoy access to SQL database development tools.
For more information, see:
Azure Machine Learning
When you create your own workspace in Azure Machine Learning Studio, you'll have access to over 400 preloaded R packages. You can also choose when you create an experiment that uses R, to deploy R using either a standard CRAN R distribution, or Microsoft R Open. You can even create your own R packages and upload them to Azure to run as custom modules.
For more information, see:
Many of the algorithms provided in Azure ML are now included in Microsoft Machine Learning Services, as part of the MicrosoftML package. For more information, see MicrosoftML on MSDN.
Azure Machine Learning is another convenient platform for data scientist and developers who need to build, train, and deploy models using Web services. You can publish solutions to the Machine Learning Marketplace.
Data Science Virtual Machines
You can deploy a pre-installed and pre-configured version of Microsoft R Server in Microsoft Azure, making it easy to get started with data exploration and modeling right away on the cloud without setting up a fully configured system on premises.
The Azure Marketplace contains several virtual machines that support data science:
- The Microsoft Data Science Virtual Machine is configured with Microsoft R Server, as well as Python (Anaconda distribution), a Jupyter notebook server, Visual Studio Community Edition, Power BI Desktop, the Azure SDK, and SQL Server Express edition.
- Microsoft R Server 2016 for Linux contains the latest version of R Server (version 9.0.1). Separate VMs are available for CentOS version 7.2 and Ubuntu version 16.04.
- The R Server Only SQL Server 2016 Enterprise virtual machine includes a standalone installer for R Server 9.0.1 that supports the new Modern Software Lifecycle licensing model.
The new Data Science VM for Windows Server 2016 provides GPU versions of popular deep learning frameworks such as CNTK. Tools are pre-installed, and include the GPU NVIDIA drivers, CUDA Toolkit 8.0, and the NVIDIA cuDNN library for GPU workloads. In just minutes, you can have a complete environment for building deep learning models that can run on either CPU or CPU plus GPU.