スパース行列:科学者がGPU機械学習を加速した方法

12月上旬、OpenAIの研究者は、スパース行列を使用してNvidiaからGPU上のニューラルネットワークのトレーニングを加速するのに役立つツールのライブラリを導入しました。 ニューラルネットワークの開発者が直面する困難とOpenAIのソリューションの主なアイデアについて説明します。





/写真alantankenghoe CC



GPUで大規模なニューラルネットワークをトレーニングする際の問題



グラフィックプロセッサ(GPU)は、中央処理装置(CPU)よりも機械学習に適しています。 技術的特徴は、GPUがニューラルネットワークのトレーニングに使用される多くの行列演算を同時に実行するのに役立ちます。



中央処理装置で同様の結果を得るには、いくつかのCPUクラスターのインフラストラクチャを構築する必要がありますが、これは非常に高価です。 CPUでニューラルネットワークをトレーニングするGoogleシステムのコストは約50億ドルです。 今日、スタンフォード大学の科学者は、GPU上で同様の処理能力を備えたシステムをわずか33,000ドルで構築しました。



ただし、困難があります:要求の厳しいタスクでGPUの可能性を最大限に活用するのはそれほど簡単ではありません。 処理のために、データはGPUメモリに保存する必要がありますが、そのボリュームは小さいため 、大きなモデルをトレーニングすることは困難です。 たとえば、VGG-16モデルに約14 GB が必要ですが、Nvidia Titan Xのメモリ容量は12 GBです。 また、Nvidiaは、このカードをディープラーニング向けの最も強力なGPUの1つとして位置付けています。



EvilGenius18がコメントで正しく指摘しているように、12月7日に、NvidiaはVoltaアーキテクチャに基づく新しいTitan Vカードを導入しました。 ディープラーニングタスク計算能力は110 TFLOPSであり、これは前世代の9倍です。



同時に、さまざまなアプローチを使用して、ニューラルネットワークの大規模モデルを効果的にトレーニングします。 それらの1つは、CPU 一時的なコンテナーとして機能するときに、GPUでデータを順次バッチ処理することです。 このアプローチの欠点は、データ転送にリソースを使用することです。



複数のGPUを同時に使用することは可能ですが、1台のコンピューター上のGPUの数は限られているため、コンピューティングシステム間の高速接続が必要です。 この場合、マシンはコンピューティングよりも「コミュニケーション」により多くの時間を費やすため、コンピューター間通信チャネルは学習速度に影響します。



最適化のための機械学習で使用される別のソリューションがあります- スパース行列 。 これらは、主にゼロ要素を含む行列です。 利点は、行列演算のゼロが空のコンポーネントとして認識されることです。 したがって、このような行列は、より少ないGPUメモリを消費します。 これにより、大規模なモデルにとって重要な機械学習プロセスが高速化されます。



しかし、問題があります。GPUの主要サプライヤーであるNvidiaのソリューションは、スパースマトリックスの処理をサポートしていません 。 しかし、OpenAIはこの状況から抜け出す方法を見つけました。



OpenAIからのソリューション



OpenAIチームは、このようなマトリックスと対話できる小さなコアの動作をシミュレートするソフトウェアを開発しました 。 カーネルは、AmazonおよびIMDBサイトのレビューを分析するトレーニングネットワークでテストされました。 チームによると、IMDBデータセットの操作におけるエラーのレベルは5.91%から5.01%に減少しました。



コアは、NVIDIAのハードウェアおよびソフトウェアの並列コンピューティングアーキテクチャであるCUDAを使用して実装されます。 ただし、現在OpenAIモデルはTensorFlowでのみ使用可能です。 Open AIチームのメンバーであるScott Grayは、このソリューションをGoogle TPU2以外のアーキテクチャにも拡張できると述べました。 NvidiaはすでにOpenAIを知っており、システムを最適化する準備ができています。



代替プロジェクト



スパース行列の概念は、Tacoと呼ばれるオープンソースコンパイラで具体化されまし 。 Adobe Researchと提携してマサチューセッツ工科大学の科学者チームに取り組んでいるプロジェクトについては、11月に知られるようになりました。 開発者は、スパース行列の数値を処理するプロセスを自動化する方法を探していました。 そして、彼らはこれにテンソルを使用しました。



12月には、IBMは機械学習の開発についても報告しました。 IT大手のソリューションであるDuHLは、CPUからGPUにデータを転送する新しい方法を提供します。 このテクノロジーの主な目的は、学習アルゴリズムにとって最も重要な情報を特定し、それを正しい順序でネットワークに転送することです。 調査によると、新しいDuHLベースのアプローチは、プロセッサー間の従来のシリアルデータ転送方法よりも10倍高速です。 同社の次の目標は、DuHLをクラウドのサービスとして提供することです。



ただし、GPUコンピューティングをクラウドに移行することを考え出したのはIBMが最初ではありませんでした。 IaaSモデルに取り組んでいるものを含む同様のプロジェクトはすでに知られています。 当初、vGPUサービスはNvidiaによって提供されていました。 現在、AMDとIntelの両方これを行っています。



OpenAIについて


OpenAIは、Tesla CEOのIlon Muskによって設立された非営利の研究組織です。 それは、人類の利益のために人工知能の促進と開発をそのタスクとして設定します。 この組織は、他の機関や研究者と緊密に連携して、開発へのオープンなアクセスを提供しています。






PS企業ブログからのいくつかの資料:






All Articles