より小さく、より速い言語モデルのためのブロック疎行列

Block Sparse Matrices for Smaller and Faster Language Models

空間と時間を節約する、ゼロを一つずつ

以前のブログ投稿では、疎行列とそのニューラルネットワークへの改善効果について紹介しました。

基本的な仮定は、完全な密行列層はしばしば過剰であり、精度の大幅な低下なしに剪定することができるということです。一部の場合では、疎な線形層は精度と/または一般化を向上させることさえあります。

現在利用可能な疎行列計算をサポートするコードは効率に乏しいため、主な問題です。また、公式のPyTorchサポートもまだ待たれています。

それが私たちが忍耐を尽き、この「空白」に取り組むためにこの夏に時間をかけた理由です。今日、私たちは拡張機能pytorch_block_sparseをリリースすることをうれしく思っています。

このライブラリは、それ自体だけでなく、蒸留や量子化などの他のメソッドと組み合わせて使用することにより、ネットワークをより小さく、より高速にすることができます。これはHugging Faceにとって、誰でも低コストでニューラルネットワークを本番で使用し、エンドユーザーの体験を向上させることが重要です。

使用法

提供されるBlockSparseLinearモジュールはtorch.nn.Linearの簡単な置き換えであり、モデルで簡単に使用できます:

# from torch.nn import Linear
from pytorch_block_sparse import BlockSparseLinear

...

# self.fc = nn.Linear(1024, 256)
self.fc = BlockSparseLinear(1024, 256, density=0.1)

この拡張機能は、既存のモデルを「オンザフライ」で変更することができるBlockSparseModelPatcherも提供しています。この例のノートブックに示されています。このようなモデルは、モデルのソースコードに変更を加えることなく、通常どおりにトレーニングすることができます。

NVIDIA CUTLASS

この拡張機能は、Yulhwa Kimによるcutlass tilesparse proof of conceptに基づいています。

これは、CUTLASSに基づくブロック疎行列積に対するC++ CUDAテンプレートを使用しています。

CUTLASSは、高性能なCUDAカーネルを実装するためのCUDA C++テンプレートのコレクションです。CUTLASSを使用することで、カスタムカーネルでcuBLASのパフォーマンスに近づくことができます。アセンブリ言語コードに頼る必要はありません。

最新バージョンには、すべてのAmpere Tensor Coreプリミティブが含まれており、限られた精度の損失とともにx10倍以上の高速化が可能です。次のバージョンのpytorch_block_sparseでは、これらのプリミティブを使用する予定です。なぜなら、ブロックの疎さはTensor Coresの要件と完全に互換性があるからです。

パフォーマンス

ライブラリの現在の段階では、疎行列のパフォーマンスはcuBLASに最適化された密行列の約2倍遅いですが、将来的にはこの点を改善できると自信を持っています。

これは、PyTorchの疎行列にとっては非常に大きな改善です。現在の実装は密行列よりも桁違いに遅いです。

しかし、より重要な点は、疎行列を使用することでパフォーマンスが向上することです。したがって、75%の疎行列は、密行列と比較して約2倍速いです。

メモリの節約はさらに大きいです。たとえば、75%の疎行列の場合、メモリ消費量は期待どおりに4倍減少します。

今後の取り組み

効率的にブロック疎行列層をトレーニングできるようになったのは最初のステップに過ぎません。現在は初期化時に疎さパターンが固定されていますが、学習中に最適化することで大きな改善が期待できます。

したがって、将来のバージョンでは、パラメータの「有用性」を測定するためのツールが提供され、疎さパターンを最適化することができるようになるでしょう。ブロック内のNVIDIA Ampereの50%の疎さパターンは、カッタスのより新しいバージョンへのアップグレードと同様に、さらなるパフォーマンス向上をもたらすでしょう。

ですので、近い将来にさらなる疎さの良さにご期待ください!

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

UC Berkeleyの研究者たちは、ディープラーニングにおいて効率的なデータ圧縮とスパース化を実現するための新しいホワイトボックストランスフォーマーであるCRATEを提案しています

最近、深層学習の実用的な成功は、高次元で多様なデータの処理とモデリングにおけるもので、指数関数的に成長しています。こ...

人工知能

「AI倫理ツールキットが機能する理由を探る」

AIシステムの重要な影響を持つアプリケーションでの使用が増えるにつれて、専門家たちはこれらのシステムを設計する際により...

機械学習

「生成的なAIアプリケーションと3D仮想世界の構築方法」

成長し成功するためには、組織は特に生成AIや3D仮想世界のような急速に進化する技術領域において、技術スキルの開発に継続的...

データサイエンス

「AIベースのサイバーセキュリティがビジネスの強靭性を高める方法」

世界の50億人以上のインターネットユーザーとおよそ540億個のデバイスが、IDCによると1秒あたり3.4ペタバイトのデータを生成...

機械学習

エコジェンに会ってください:生物学者や生態学者のためにリアルな鳥の歌を生成するために設計された新しいディープラーニングのアプローチ

ディープラーニングの登場は、さまざまな分野に大きな影響を与え、さまざまな領域にその影響を広げています。注目すべき応用...

機械学習

MITの新しいAI研究は、深層ニューラルネットワークが私たちとは異なる方法で世界を見ていることを示しています

人間の感覚システムの複雑な機能を模倣することを目指して、神経科学と人工知能の研究者は、計算モデルと人間の知覚の間の不...