MACHINE LEARNING/AI

機械学習/AI向けサービス

TOP >機械学習/AI向けサービス

機械学習/AI向けの環境も、
「導入&構築&保守を
一括サポート!」

GPUを搭載したシステムを中心に、機械学習/AI向けにシステム構築作業、設置・調整作業から、お納めした後の運用支援や保守サポートまで、VTは一括したサービスをご提供いたします。

VTは、機械学習/AI向け環境として、
各種フレームワークを導入したシステムをご提案いたします。

弊社のシステムは、基本的にマルチユーザでの利用を想定し、システムの共通領域に必要な環境を導入しています。
また、お客様のご要望に合わせて、特定のディープラーニングフレームワークを導入したり、クラスタ環境を含めHPCアプリケーション環境との複合環境も構築いたします。
ご要望があれば、データマイニングや機械学習を用いた問題解決型のコンサルティングを専門とする会社様への橋渡しも致します。お気軽にご相談ください。

企画学習/AI・ディープラーニングの導入検討から運用まで

運用支援もお任せください。

機械学習/AI向けの環境特有の、日進月歩のフレームワークの更新や追加、CUDA環境の更新、GPUの交換や増強、データの増強、クラウドサービスの活用といったシステム的なご支援。この分野での課題解決を得意とする協力会社様と連携してのシステム活用コンサルティングなどなど、HPCコンシェルジュにお任せください。

ABOUT 機械学習/AIと
Deep Learningについて

1956年に「人工知能」(Artificial Intelligence : AI)という言葉が登場し、「人間が行っている知的作業を、コンピュータで模倣するソフトウェアやシステム」の研究が始まりました。
その中で、人間が経験やデータから学習するようにコンピュータに学習させ、未知のデータに対しても予測できるようにする「機械学習」のアプローチが出てきました。
機械学習の1つの手法である「Deep Learning」(深層学習)は、人間の神経細胞をモデルにした「ニューラルネットワーク」と、ニューロンのパラメータ(重みとバイアス)を「誤差逆伝播法」と呼ばれる方法で計算する手法です。
この計算には、大規模な行列演算が必要で、近年のGPGPU(General-purpose computing on graphics processing units : GPUによる汎用計算)の計算能力の飛躍的な向上とがぴったりとマッチした結果、ビックデータ解析のニーズも相まって、この手法が大きく注目されるようになりました(2005年以降の第3回目のAIブーム)。
Deep Learningは、ネットワークを設定するだけで、データの特徴を自律的に学習する手法です。
学習結果であるパラメータセットが何を意味するのか分からないというブラックボックスではありますが、自動運転や顔認証システム・画像診断など、実用上多くの分野で成果が上がっています。

ニューラルネットワーク

Deep Learningとは?

「隠れ層が多数存在する多層構造のニューラルネットワークを用いた機械学習」

SYSTEM FOR MACHINE LEARNING / AI VTは、GPUを搭載したDeep Learningなどの
機械学習/AI向けシステムをご提案いたします。

使用目的に合わせた環境が必要な方へ

HPC用途では倍精度以上の浮動小数点演算がメインですが、Deep Learningではそれほどの精度は不要です。しかし、Materials Informatics(材料情報科学:MI)の分野では、材料科学にデータマイニングと機械学習/AIのアプローチを組み合わせて、新規材料や代替材料の探索などを従来の手法に比べて効率よく行うようなアプローチに、量子力学に基づいたいわゆる第一原理計算やシミュレーションによる材料機能の推定なども加味した手法が注目されています。HPCと機械学習/AIをハイブリッドしたような用途には、特にコンピュータ プラットフォームに多くの要素が求められます。
最適なGPGPU環境と、データ量などを加味したストレージ構成、膨大な計算量を高速にこなすメニーコア・広帯域メモリ・MPI(:Message Passing Interface)によるクラスタ環境などなど、ご予算と用途に合わせた、研究開発業務に活用できるシステムをご提案します。

Deep Learning Framework

ニューラルネットワークを定義(モデル)し、学習データを与えて実際にニューロンのパラメータセットを求める(学習)。このために作られた一群のソフトウェアは「ディープラーニングフレームワーク」(Deep learning Framework)と呼ばれます。学習過程のグラフ化や入力データの加工ツール、モデルと学習結果などを含めて配布されていることもあります。多くの研究グループから、特徴のある様々なフレームワークが提唱されています。Pythonで利用するものが多いですが、C/C++など他の言語から利用することも可能なフレームワーク、また、Deep learningに限定されない機械学習のフレームワークもあります。

VTは、ご希望のフレームワークや、Jupyterなどの統合開発環境、Dockerなどのコンテナの利用など、機械学習/AIやDeep Learningといった手法を活用するための、コンピュータ環境をご提供いたします。

主要なフレームワークなど

※主なサポート言語で分けていますが、他の言語でも使用できるフレームワークがあります。

.

 ● Docker
ソフトウェア・コンテナ技術を使ったフレームワークの一つ
コンテナ型の仮想化環境を提供するオープンソース・ソフトウェアで、仮想環境 (インスタンス) 作成や起動は速く、性能劣化があまりないという利点があります。
https://www.docker.com/
 ● Singularity
HPC向けLinuxコンテナ
米LBNLによって開発された、ユーザーがroot権限なしで自身の計算環境を完全に再現し、保持できるようにした新しいLinuxコンテナです。
https://www.hpc.co.jp/about_Singularity.html
 ● PyTorch
Pythonの機械学習ライブラリとして人気
2016年1月15日、Facebookの人工知能研究グループにより初期開発されました。徐々に注目を集め、現在ではPythonの機械学習ライブラリとして高い人気を誇ります。
https://pytorch.org/
 ● Chainer
ニューラルネットワークの計算および学習に
株式会社 Preferred Networks(PFN:日本)からリリースされた、ニューラルネットワークの計算および学習を行うためのオープンソースソフトウェアライブラリ。2020年6月30日版で開発終了し、PyTorchに移行。
 ● Keras
Pythonの深層学習ライブラリ
Googleが開発したニューラルネットワークのライブラリ。Pythonで書かれたKerasは、「読みやすく簡潔なアーキテクチャで迅速に実装が可能」「機械向けではなく人間向けに設計されたユーザーフレンドリーなライブラリ」であることを重視して設計されています。※2022年5月9日マルチバックエンドKerasは、TensorFlow2へ統合。単独ではインストール不可。
 ● Cafe
初心者向け、Python向けの代表的なディープラーニングライブラリ
Caffeは、カリフォルニア大学バークレー校のコンピュータビジョンおよび機械学習に関する研究センターであるBVLCが中心となって開発されています。
※開発終了。FaceBook社が後継のCaffe2発表。2018年にPytorchに統合された。
 ● TensorFlow
Google開発の機械学習のためのソフトウェアライブラリ
2015年にGoogleが開発した機械学習のソフトウェアライブラリです。TensorFlowの1番の特徴は、ニューラルネットワークの構築、訓練ができるシステムの要求に応えられる点です。
https://www.tensorflow.org/?hl=ja
 ● scikit-learn
多くのアルゴリズムを集約
Pythonで(統計的)機械学習プログラミングを行う場合の世界的デファクトスタンダード。サポートベクターマシンやランダムフォレスト、SGDや近傍法といった分類、回帰、クラスタリングなど多くのアルゴリズムを集約しています。
https://scikit-learn.org/stable/

ENVIRONMENT FOR MACHINE LEARNING / AI 機械学習/AI向け環境のご提案

VTはAI/機械学習分野への取り組みとして、Deep Learningのアプローチを支えるプラットフォームであるGPUを搭載したサーバやワークステーションに加え、お客様の要望に沿ったソフトウェア環境を構築してきました。その中で「VT Deep Learning Package」を開発&ご提供してきました。

Deep Learningに取り組むお客様が増える中、ご要望も変化してきました。それに合わせて、最新のGPUへの対応と、NVIDIA-Docker環境も装備した「Deep Learning Package II」をリリースしました。

VT-Deep Learning Package II

CUDA10/cuDNN/NCCL2などの基本環境に、主要なフレームワークを導入したUbuntuベースの弊社オリジナルのパッケージです。AnacondaによるPython3ベースに、TensorflowやKERASなどの標準的なフレームワークとNVIDIA-Docker(NVIDIA Container Toolkit)環境、Jupyter Notebookなどが導入されています。
ご要望のフレームワークやライブラリ・パッケージ等の追加導入にも対応した、イージーオーダーシステムのパッケージです。
「いろいろなフレームワークを試してみたが、そろそろ本気で取り組もう!」、「NVIDIAの最新GPUで、Deep Learning環境をパワーアップしよう」などなど、ぜひ「HPCコンシェルジュ」にご相談ください。

マルチユーザでのPythonの統合開発環境としては、Jupyter Lab/Hubをオプションで導入いたします。

Pythonの統合開発環境としては、Jupyter Lab/Hubの環境をオプションで導入いたします。

Anaconda Python環境

OSのPython環境に各種フレームワークを導入する場合、ライブラリの依存関係の問題から、いろいろな制約が出てきます。Anaconda(またはminiconda)によりPython環境を用意し、OS側のPythonに影響されることなく、また仮想環境を用意することで、自由にPython環境をコントロールできるメリットを生かして、フレームワークを導入いたします。Ubuntu/CentOS/RedHatなどのOSにAnacondaを導入し、Pythonから利用するフレームワークをオーダーメードで導入いたします。
OSにより導入できるフレームワークに制限があります。Windows環境に関しては、別途ご相談ください。

※ VT-Deep Learning PackageIIはAnaconda3ベースで、Python3の仮想環境を構築し、そこに各種フレームワークを導入したものです。

仮想環境

ライブラリの依存関係を解決する手段として、ハイパーバイザ―やホスト型の仮想環境を利用することも可能です。
仮想マシンを作成し、UbuntuなどのOSも自由に選択して環境を構築できます。GPUの利用に関しても、お使い方に合わせてご提案可能です。
機械学習/AI向けとして本格的にご活用になる場合は、GPUの利用が必須ですから、現状ではハイパーバイザとしてVMware ESXiを使用し、仮想マシンにパススルーでGPUを割り振りって仮想マシンから占有利用する環境をお勧めいたします。

コンテナ環境

仮想環境よりオーバーヘッドの少ないシンプルなアプローチとして、DockerやSingularityのようなコンテナ環境が、機械学習/AI向けの環境としても有効です。特定のフレームワークを導入したイメージを用意し、アプリケーションを使用する感覚でフレームワークを利用することができます。ネット上で公開されている既存のDockerイメージを利用することも可能です。
ご利用方法により一長一短ですが、一般的にDockerはイメージの起動時にroot権限が必要ですが(ユーザが起動できるようにも設定可能)、Singularityは各ユーザがコンテナを立ち上げることがきます。またHPC用途を志向するSingularityはMPIを使って並列処理も可能です。
コンテナを使うことで、CentOS上にUbuntu環境のイメージを作成してご利用いただくことも可能です。
環境構築とイメージの作り方により、異なる複数のCUDAバージョンや、対応状況の異なるフレームワーク(イメージ)を動作させることも可能です。現状では、CUDA Toolkitという広く使われている開発環境の存在により、NVIDIA社製のGPUがデファクトスタンダードです。フレームワーク、アプリケーションの対応や、公開されているコンテナイメージもそれを前提としているものが大半です。
VTでは、機械学習/AI向けのコンテナ環境としては、NVIDIA製GPU+Dockerを推奨いたします。

NVIDIA製GPUを利用するDocker環境

これまで Docker コンテナで NVIDIA製GPU を使う方法は、nvidia-docker/nvidia-docker2 というプラグインやコマンドなどを利用してきましたが、Docker 本体側(v19.03 以降)にGPUサポートが取り込まれたため、GPU ベンダーはドライバを提供するだけとなりました。
NVIDIA社の場合は、ドライバに加え、Docker で NVIDIA の GPU を使うのに必要なランタイムライブラリなどが含まれるnvidia container toolkitを導入する必要があります。
また、Dockerはコンテナを動作させるのにroot権限が必要になるため、権限を簡単に付与できない環境ではSingularityが利用されています。

NGC(NVIDIA GPU Cloud)

NGC はディープラーニング、機械学習、HPCのためのNVIDIA製GPUに最適化され、テストされ、すぐに実行できるコンテナや、GPU対応ソフトウェアのカタログです。
NVIDIA-Dockerで利用できるフレームワークやアプリケーションソフトが導入されたイメージをダウンロードすることができます。
https://www.nvidia.com/ja-jp/gpu-cloud/

POWER AI PowerAI環境

GPUを搭載したIBM Power8/9環境で、機械学習/AIに取り組まれるのであれば、PowerAIは勧めです。
AI/Deep Learning環境への活用に関して、IBM社がPOWER環境向けに最適化したDeep Learningフレームワークをパッケージ化したPowerAI(Watson Machine Learning Acceleratorに改称)、及びディープラーニングに特化したGUIベースの画像解析アプリケーションであるPowerAI Visionを、無償で利用することができます。
コンテナイメージ、及びAmacondaのパッケージとして提供されています。
IBMのサポートやコンサルテーションが必要な場合には、有償版の導入が必要です。

IBM PowerAI Platform

Watson Machine Learning Accelerator(旧PowerAI)の概要
ディープ・ラーニング・プラットフォーム
https://www.ibm.com/jp-ja/marketplace/deep-learning-platform

IBM PowerAI Visionの概要
ディープラーニングに特化したGUIベースの画像解析アプリケーション
https://www.ibm.com/jp-ja/marketplace/ibm-powerai-vision

詳細はPowerプラットフォームのページをご参照ください。