Visual Studio 2017 RC のデータ サイエンス ワークロード

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。【元記事】 The Data Science Workloads in Visual Studio 2017 RC 2016/11/18

 

Facebook で写真に写っている人物が自動でタグ付けされたり、オンライン サイトでおすすめの商品が表示されたり、写真をキーワード検索できたり、クレジット カードの不正利用が警告されたりと、機械学習とデータ サイエンスは、私たちのごく身近に存在しています。

このたび、Visual Studio 2017 RC (英語) 向けのデータ ストレージデータ サイエンスの専用ワークロードがリリースされました。このワークロードには、次世代のインテリジェントなアプリやサービスの構築に必要なバックエンドやツールがすべて含まれています。

それぞれのワークロードについて詳しく見ていきましょう。

  1. データ ストレージとデータ処理: ビッグ データのストレージと高度な分析に使用します。
  1. データ サイエンス: 分析、モデルの構築、スマート アプリの作成に必要なツールがすべて含まれています。
  • Python Tools for Visual Studio: デスクトップ、Web、指数、データ サイエンス/機械学習
  • R Tools for Visual Studio: 主に統計とデータ サイエンス/機械学習
  • F#: さまざまなデータ処理タスクに適した関数主導型 .NET 言語

R と Python が使用される理由

既にサポートされている Python に加え、このたび Visual Studio で新たに R 言語がサポートされます。R はデータ サイエンスや統計に特化した言語で、豊富なパッケージが使用可能な形で提供されています。

世間では人気の言語がランキング形式で紹介されているのをよく見かけ、信憑性には疑問が残りますが、分析分野で R と Python が欠かせないという点は間違いないようです。

マイクロソフトでは、ほぼすべてのストレージ テクノロジや分析テクノロジで既に R と Python をサポートしているか (直接または SDK 経由)、近くサポートが予定されています。次に個々のツールについて説明します。

Python Tools for Visual Studio

VS 2017 RC は Python (英語) と高度に統合されており、機械学習からデスクトップ、IoT、Web までさまざまな用途に対応しています。CPython (2.x および 3.x)、IronPython、Jython、PyPy などのほとんどのインタープリターや Anaconda ディストリビューション (英語) に対応し、また PyPI (英語) で公開されている膨大な数のパッケージにアクセス可能です。Python の新機能の詳細は、製品リリース ノートに記載されています。

R Tools for Visual Studio (RTVS)

RTVS は VS を強力な R IDE (英語) に変えるツールで、IntelliSense やデバッグ、REPL、履歴などの基本機能に加えて、SQL データベースで実行されている R のストアド プロシージャや複数の独立プロット、リモート処理などの高度な機能にも対応しています。リモート処理では、ターミナル サーバーを使用した場合と同様にリモート マシンで RTVS のすべての機能を利用できます。このため、データの一部をノート PC のローカルで使用し、後に大規模なサーバーに接続して完全版の IDE にて作業を続け、最後にコードをデプロイする場合などに非常に便利です。

Visual Studio では、標準的な CRAN R (英語) バージョンと、パフォーマンスや企業向け機能が強化されたバージョンの Microsoft R の両方に対応しています。

F#

F# (英語) は、従来のオブジェクト指向型や命令形 (手続き型) プログラミングに加えて関数型プログラミングにも対応した言語です。データ処理に適しており、データのアクセス、操作、処理に関するサードパーティのエコシステムも充実しています。Visual Studio の Visual F# ツールは、F# アプリケーションの開発、および F# コードによるその他の .NET アプリケーションの拡張をサポートしています。F# は .NET で頻繁に使用され、機械学習での種関数型言語に非常によく似ています。

専用パッケージをご用意

データ サイエンス ワークロードは、Visual Studio への統合に加えて数百種類のパッケージがプレインストールされており、画像処理 (英語)生物情報学 (英語)天文学 (英語) などの高度な分析にも対応しています。データ サイエンス ワークロードには、既定で下記の機能が含まれています。

  • Microsoft R Client (英語): マイクロソフトが提供する強化版の R で、マルチコア、パッケージのバージョン管理、分散型メモリをサポートしています。
  • Anaconda Python ディストリビューション (英語): Continuum.io が監修するクロス プラットフォーム Python パッケージ コレクションで、機械学習、指数計算、Web などのシナリオに対応しています。

Python 用 Azure SDK

Azure SDK では、Python を含むすべてのサービスと言語をサポートしています。Python 用 Azure SDK (英語) では、コンピューティングやストレージ、ネットワーク、Key Vault、監視サービスなどの中核機能を .NET と同等に完全にサポートしています。Data Lake Store、Data Lake Analytics、SQL Database、DocumentDB などのサービスの管理に加え、SQL Database や SQL Server、DocumentDB、Data Lake Store File System などの各種データベースをサポートしています。

開発にご協力ください (オンラインで OK)!

ツールからライブラリに至るまで、データ サイエンス一式はすべてオープン ソースで、GitHub でホストされています。ぜひコード ベースをご覧いただき、フォークの作成や不具合の報告、さらには新機能の追加などにご協力いただけますと幸いです。各リポジトリは下記からアクセスできます。

無料のインタラクティブな Python 用および R 用ノートブック

Visual Studio は非常に生産的なデスクトップ IDE ですが、ブラウザーの中で直接データの分析とプロットを行いその結果を共有するなど、「強力な REPL」程度の機能だけが必要な場合があります。

Azure では Jupyter (英語) でホストされているノートブックを無料で提供しています。

Jupyter とはコードが実行できる OneNote のようなもので、テキスト (マークダウン言語)、コード、インライン グラフィックなどに対応しています。現時点では R、Python 2、Python 3 (Anaconda ディストリビューション) の各言語に対応していて、F# も近いうちにサポートされる予定です。Azure Notebooks の詳細をご希望の方は、ぜひサンプルをご覧ください。

この無料サービスは、特に教職員や学生の皆様の利用やオンライン セミナー、製品デモ、リアルタイムなレポートの共有などに適しています。高品質なノートブックが多数公開されていますので、どうぞご覧ください (英語)

まとめ

データ サイエンスは、データからインテリジェントなアクションを導き出すことを可能にします。詳しくは Connect() のデータ サイエンスと Web 開発に関するビデオ (英語) でご覧いただけます。Visual Studio のデータ サイエンス ワークロードは、デスクトップ、クラウド、IoT、モバイルなどの環境を問わず、次世代のインテリジェントなアプリ構築のために必要なすべてを提供する初めての試みです。組み込み済みのライブラリやパッケージを確認し、ぜひお試しください。また、CRAN や PyPI についてもご意見をお聞かせいただけますと幸いです。

問題点がありましたら、インストーラーまたは Visual Studio IDE 本体の右上角の [Report a Problem (英語)] からご報告をお願いします。また、PTVS (英語)RTVS (英語) の GitHub リポジトリにも問題をご報告いただけます。このほか、ご提案がありましたら UserVoice (英語) までお寄せください。

Shahrokh Mortazavi (Visual Studio クラウド プラットフォーム ツール担当パートナー PM)Shahrokh Mortazavi はマイクロソフトでデータ サイエンス用開発ツールのチームを担当しており、主に Python や R、Jupyter Notebooks を扱っています。以前は、マイクロソフトのハイ パフォーマンス コンピューティング グループに所属していました。Microsoft Research では Phoenix コンパイラ ツール チェーン (コード生成、分析、JIT) の経験があり、それ以前は Sun Microsystems のコード生成および最適化コンパイラ バックエンド チームでリーダーを 10 年以上務めていました。