コンテナー技術の登場でAI開発現場は様変わり–AI開発基盤の変遷をたどる
今回は「コンテナー技術の登場でAI開発現場は様変わり–AI開発基盤の変遷をたどる」についてご紹介します。
関連ワード (クラウド、古賀政純「Dockerがもたらすビジネス変革」等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
こんにちは。日本ヒューレット・パッカードのオープンソース・Linuxテクノロジーエバンジェリストの古賀政純です。前回は人工知能(AI)開発における歴史とAIの仕組みについて紹介しました。今回も1990年代からAIに携わってきた筆者がAI開発基盤の変遷について紹介します。
前回は、人間の脳を模倣したニューラルネットワークの概要を述べました。普通の定型業務をこなすコンピュータープログラムに比べて、ニューラルネットワークを使ったAIプログラムがなぜ厄介なのかは、その「学習」という処理に原因がありそうだということが何となく見えてきたかと思います。
2000年代に入っても、入力データから法則やパータンなどを抽出し、未知のデータに対して分類や予測を行うといった、いわゆるAIのモデル学習の高精度化や、ニューラルネットワークの計算手法に関する研究が幅広く行われていました。しかし、さまざまな研究開発が行われていたものの、高速計算用のサーバーや「UNIX」ワークステーションのCPUコア数も非常に少なく、AIの実用性という観点では非常に限定的な成果しか得られない状況が続きました。
ニューラルネットワークでAIモデルの学習を行うには膨大な数の演算処理装置(コア)が必要です。しかし、演算処理装置のコア数を確保するためにサーバーを何万台も用意して、広大な敷地に並べるのかというと、それはそれで膨大なコストがかかります。そこで当時、徐々に注目を浴び始めたのがGPUと呼ばれるハードウェアです。
GPUは本来、ディスプレイにグラフィックを表示するために利用されるハードウェアです。最近では、ゲーミングPCやコンピューター支援設計(CAD)用のワークステーションにおいて、三次元(3D)グラフィックスを高速処理するために高性能なGPUが使われます。この3Dグラフィックスの画像処理を行うコンピュータープログラムは、突き詰めれば膨大な行列計算を行います。膨大な行列計算を素早く行うには、膨大な数の演算コアで同時に計算する、いわゆる並列計算が必要です。GPUはCPUと比べてハードウェア当たりのコア数がとても多く、そのため並列計算が得意です。
一方、AIの学習処理にはさまざまな計算手順が存在しますが、行列計算を伴う場合が少なくありません。3D画像を高速処理する行列計算プログラムとAIプログラムの「学習という重い処理」の計算方法が似ているため、ニューラルネットワークの高速処理には、CPUよりもGPUが好んで利用されるわけです。
その後、画像認識の分野で提唱された深層学習(ディープラーニング)と呼ばれる技術が生まれました。さらに、深層学習とGPUを組み合わせる画期的な手法も編み出され、一気にGPUのAI活用が加速しました。これにより、GPUハードウェアのAIへの適用拡大とAI向けの開発ソフトウェアが次々と登場し、従来に比べて非常に短時間で学習できるようになりました。そして、画像認識だけでなく、自然言語処理や音声認識など幅広い分野でAIが利用されるようになり、GPUを利用したAIモデルの開発が進みました。
このころから、欧米では徐々にPCやワークステーションだけでなく、大規模システムでのAI開発も検討されるようになります。AI活用を事業の中心に据えた企業は自社で大規模なGPU基盤を構築し、以前よりも精度の高いAIモデルの開発が進みました。同時に取り扱うデータ量も増えたことで、ビッグデータへのアクセス速度や使い勝手の問題も顕在化しました。