SQL Server Machine Learning Services の新機能

適用対象: はいSQL Server 2016 (13.x) 以降

この記事では、SQL Server Machine Learning Services の各バージョンに含まれている新しい機能について説明します。 データ プラットフォーム、高度な分析、データ サイエンスの間の統合を継続的に拡大、拡張、強化するために、機械学習機能は、SQL Server の各リリースに追加されています。

SQL Server 2019 の新機能

このリリースでは、SQL Server での Python および R の機械学習操作に対して最も要望の多かった機能が追加されています。 このリリースのすべての機能の詳細については、SQL Server 2019 の新機能に関するページ、および「SQL Server 2019 のリリース ノート」を参照してください。

注意

SQL Server 2019 の Java と C# の新機能に関するドキュメントについては、「SQL Server 言語拡張機能の新機能」を参照してください。

WindowsLinux の両方で使用可能な SQL Server Machine Learning Services の新機能を次に示します。

SQL Server 2017 の新機能

このリリースでは Python サポートと業界をリードする機械学習アルゴリズムが追加されています。 SQL Server 2017 は、新しいスコープを反映するように名前が変更され、SQL Server Machine Learning Services (データベース内) の導入と、Python と R の両方の言語サポートが示されています。

すべての機能に関する発表については、SQL Server 2017 の新機能に関するページを参照してください。

R の機能強化

SQL Server Machine Learning Services の R コンポーネントは SQL Server 2016 R Services の次世代で、基本の R、RevoScaler、およびその他のパッケージの更新バージョンが含まれています。

R の新機能には、次のような特徴を持つ パッケージ管理が含まれます。

R ライブラリ

Package 説明
MicrosoftML このリリースでは、MicrosoftML は既定の R インストールに含まれており、前の SQL Server 2016 R Services で必要だったアップグレード手順が不要になっています。 MicrosoftML は、最先端の機械学習アルゴリズムと、リモート計算コンテキストでスケーリングまたは実行できるデータ変換を提供します。 アルゴリズムには、カスタマイズ可能なディープ ニューラル ネットワーク、高速デシジョン ツリーとデシジョン フォレスト、線形回帰、およびロジスティック回帰が含まれます。

データベース内分析のための Python 統合

Python は、さまざまな機械学習タスクに高い柔軟性と強力な機能を提供する言語です。 Python 用のオープンソース ライブラリには、カスタマイズ可能なニューラル ネットワーク用の複数のプラットフォームに加え、自然言語処理用の一般的なライブラリが含まれています。

Python はデータベース エンジンと統合されているため、データの近くで分析を行い、データ移動に伴うコストとセキュリティ上のリスクを排除できます。 Visual Studio などのツールを使用して、Python に基づいた機械学習ソリューションを展開できます。 実稼働アプリケーションでは、SQL Server のデータ アクセス方法を使用して、Python 3.5 ランタイムから予測、モデル、またはビジュアルを取得できます。

T-SQL と Python の統合は、sp_execute_external_script システム ストアド プロシージャを通じてサポートされています。 このストアド プロシージャを使用して、任意の Python コードを呼び出すことができます。 コードは、セキュリティで保護されたデュアル アーキテクチャで実行されます。これにより、単純なストアド プロシージャを使用してアプリケーションから呼び出すことができる、Python モデルとスクリプトのエンタープライズレベルの展開が可能になります。 SQL から Python プロセスおよび MPI リング並列処理のデータをストリーミングすることで、パフォーマンスがさらに向上します。

T-SQL PREDICT 関数を使用すると、以前に必要なバイナリ形式で保存した事前トレーニング済みのモデルに対してネイティブ スコアリングを実行できます。

Python ライブラリ

Package 説明
revoscalepy Python で RevoScaleR に相当するもの。 線形回帰およびロジスティック回帰、デシジョン ツリー、ブースト ツリー、ランダム フォレストに対し、すべて並列化可能で、リモート計算コンテキストで実行することができる Python モデルを作成することができます。 このパッケージでは、複数のデータ ソースとリモート計算コンテキストの使用がサポートされています。 データ サイエンティストや開発者は、リモート SQL Server で Python コードを実行して、データを移動せずに、データを探索したり、モデルを構築したりすることができます。
microsoftml Python で MicrosoftML R パッケージに相当するもの。

トレーニング済みモデル

事前トレーニング済みモデルは、Python と R の両方で使用できます。これらのモデルを使用して、イメージの認識と肯定的および否定的感情分析を行って、独自のデータに対する予測を生成します。

SQL Server セットアップの共有機能としてのスタンド アロンサーバー

このリリースでは、完全に独立したデータ サイエンス サーバーである SQL Server Machine Learning Server (スタンドアロン)も追加され、R および Python での統計分析と予測分析がサポートされます。 R Services と同様に、このサーバーは SQL Server 2016 R Server (スタンドアロン) の次のバージョンです。 スタンドアロン サーバーを使用すると、SQL Server と依存関係のない R または Python ソリューションを配布し、スケーリングすることができます。

SQL Server 2016 の新機能

このリリースでは、SQL Server 2016 R Services を通じて SQL Server に機械学習機能が導入されました。SQL Server 2016 R Services は、データベース エンジン インスタンス内の常駐データに対して R スクリプトを処理するためのデータベース内分析エンジンです。

また、Windows Server に Microsoft R Server をインストールする方法として、SQL Server 2016 R Server (スタンドアロン) がリリースされました。 当初は、SQL Server セットアップが、Microsoft R Server for Windows をインストールする唯一の方法を提供していました。 その後のリリースで、Windows 上で Microsoft R Server を必要とする開発者やデータ サイエンティストは、別のスタンドアロン インストーラーを使用して同じ目的を達成できるようになりました。 SQL Server のスタンドアロン サーバーは、スタンドアロン サーバー製品の Microsoft R Server for Windows と機能的に同等です。

すべての機能に関する発表については、「SQL Server 2016 の新機能」を参照してください。

Release 機能更新プログラム
CU の追加 リアルタイム スコアリング は、ネイティブ C++ ライブラリに依存して、最適化されたバイナリ形式で格納されたモデルを読み取り、R ランタイムを呼び出すことなく予測を生成します。 これにより、スコアリング操作が大幅に高速化します。 リアルタイム スコアリングを使用すると、R コードからストアド プロシージャを実行したり、リアルタイム スコアリングを実行したりすることができます。 インスタンスが Microsoft R Server の最新リリースにアップグレードされている場合、リアルタイム スコアリングは SQL Server 2016 でも利用できます。
最初のリリース データベース内分析のための R 統合

T-SQL で R 関数を呼び出すための R パッケージ。その逆も同様です。 RevoScaleR 関数では、データをコンポーネント パーツにチャンク化し、分散処理を調整および管理し、結果を集計することによって、大規模な R 分析を提供します。 SQL Server 2016 R Services (データベース内) では、RevoScaleR エンジンがデータベース エンジンのインスタンスと統合され、データと分析が同じ処理コンテキストにまとめられます。

sp_execute_external_script を使用した T-SQL と R の統合。 このストアド プロシージャを使用して、任意の R コードを呼び出すことができます。 このセキュリティで保護されたインフラストラクチャにより、単純なストアド プロシージャを使用してアプリケーションから呼び出すことができる、Rn モデルとスクリプトのエンタープライズレベルの展開が可能になります。 SQL から R プロセスおよび MPI リング並列処理のデータをストリーミングすることで、パフォーマンスがさらに向上します。

T-SQL PREDICT 関数を使用すると、以前に必要なバイナリ形式で保存した事前トレーニング済みのモデルに対してネイティブ スコアリングを実行できます。

Linux Support

SQL Server 2019 では、データベース エンジンのインスタンスを使用して機械学習パッケージをインストールすると、R と Python に対する Linux Support が追加されます。 詳細については、Linux に SQL Server Machine Learning Services をインストールする方法に関するページを参照してください。

Linux では、SQL Server 2017 に R または Python の統合はありませんが、Linux でネイティブ スコアリングを使用することができます。これは、この機能が Linux で実行される T-SQL PREDICT を通じて使用できるためです。 ネイティブ スコアリングにより、事前トレーニング済みモデルの高パフォーマンスなスコア付けが可能になりします。R ランタイムを呼び出すことも、必要になることもありません。

次のステップ