OpenAI ブロック疎 GPU カーネル

OpenAI は、ブロック疎重みを持つニューラルネットワーク向けに設計された高度に最適化された GPU カーネルをリリースしました。これらのカーネルは、同じパラメータおよび計算予算内で、従来の密ネットワークよりもはるかに幅広くかつ深いモデルのトレーニングを可能にし、しばしば cuBLAS または cuSPARSE よりも桁違いに高速に動作します。

ブロック疎カーネルの技術的実装

ブロック疎カーネルは、個々の重みではなくブロックレベルでの疎性を考慮することで線形演算を最適化します。このアプローチにより、ゼロのブロックに対する演算をスキップするため、計算およびストレージコストが削減されます。

主な仕様

  • サポートされるレイヤー: カーネルは完全結合層および畳み込み層での使用のために設計されています。畳み込み層では、入力および出力の特徴次元に疎性が適用され、空間的結合性は影響を受けません。
  • 最適化されたブロックサイズ: 実装は 8x8、16x16、および 32x32 のブロックサイズに最適化されています。
  • 設定可能性: ブロックレベルでの疎性パターンは完全に設定可能です。
  • 効率性: 計算コストおよびパラメータストレージコストは、入力/出力特徴の総数ではなく、非ゼロ重みの数にのみ比例します。

パフォーマンスとベンチマーク

NVIDIA Titan X Pascal GPU と CUDA 8 を使用したテストでは、標準ライブラリと比較して大幅な速度向上が示されました。隠れユニットが 12,288 の広い状態、ブロックサイズが 32x32、ミニバッチサイズが 32 の場合、カーネルは cuBLAS を上回り、cuSPARSE と比較するとさらに大きな速度向上が観測されました。

アプリケーションと研究結果

OpenAI はこれらのカーネルを使用して、いくつかのアーキテクチャパターンを探索しました。特に注目すべきは「スモールワールド」ニューラルネットワークで、これは生物の脳の結合性を模倣し、高い疎性にもかかわらず情報の伝播を高速化します。

スモールワールド LSTM

スモールワールド疎結合を実装することで、OpenAI はほぼ 20,000 の隠れユニットを持つ LSTM を訓練しました。これは同様のパラメータ数を持つ密ネットワークの約 5 倍の幅があります。このアーキテクチャは、テキストの生成モデリングおよび半教師あり感情分類の結果を向上させました。

感情表現学習

等しいパラメータ数を持つ密な重み行列とブロック疎バリアントを比較する実験では、疎モデルはすべての感情データセットで密モデルを上回りました。具体的には、ドキュメントレベルの IMDB データセットにおいて、疎モデルはエラー率を 5.91% (Miyato et al, 2016) から 5.01% に削減しました。

画像とテキストの圧縮

  • テキストモデリング: 約 1 億パラメータのモデルでは、1 文字あたりのビット数が 1.059 から 1.048 に低下しました。
  • 画像モデリング: CIFAR-10 用の変更された PixelCNN++ モデルにおいて、通常の 2D 畳み込みカーネルを疎カーネルに置き換えることで、他のハイパーパラメータを固定したままネットワークを深め、次元あたりのビット数を 2.92 から 2.90 に削減しました。

今後の研究方向性

OpenAI は、ブロック疎カーネルを使用したさらなる探求のための 3 つの主要な分野を特定しています:

  1. 推論の高速化: これらのカーネルと事後トレーニングプルーニングを組み合わせることで、推論時のウォールクロックタイムの高速化可能性を調査します。
  2. 動的疎性構造: 動的疎性構造について、勾配を使用して開発中に最適な疎性構造を学習できるかを探索します。これは生物の脳におけるシナプスプルーニングに似ています。
  3. スケーリングアプリケーション: 大規模な重み行列を持つモデルをトレーニングできる能力(小さな密モデルと同じパラメータおよび計算コストを維持しながら)が最も大きな性能向上をもたらす特定のアプリケーションドメインを特定します。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch