BERT推論の高速化:さまざまなアプローチ

Photocreds:WSJ

イントロ

最近、トランスフォーマーとトランスフォーマーのようなアーキテクチャーが、事実上の最先端のNLPとして引き継がれています。良い例はBERTです。BERTと、RoBERTaやAlBERTなどのさまざまないとこは、一連のテキストから埋め込みを生成します。埋め込みは、分類、意味的類似性、Q&Aなどのさまざまなダウンストリームタスクで使用でき、それらの一部でほぼ人間レベルのパフォーマンスを実現します。

BERT(および一般的な最先端のNLP)の大きな問題は、この優れた人間レベルが無料で提供されないことです。これは通常、顧客にとっての長い待ち時間と毎月の多額のAWS請求の形で提供されます。

多くの努力がこの課題に取り組むことを試みました。クエリのバッチ処理、柔軟なシーケンス長の許可、スマートなクライアント/サーバー作業の分割は、大いに役立ちます。しかし、実際のBERT推論自体を高速化する方法はありますか?この投稿では、CPUバックエンドを扱っていると想定します。これは、これまでで最も一般的なシナリオです。

適切なライブラリを使用する

最初のステップは、TensorflowまたはPytorchからOnnxまたはOpenVINOのより優れた無料ライブラリに切り替えることかもしれません。Tensorflow / Pytorchのバージョンと特定のハードウェアによっては、この手順で、ここで説明するすべての中で最大の節約になる可能性があります。人気のあるHuggingfaceライブラリはOnnxと継続的に統合されているため、そこでベストプラクティスを確認してください。

つまり、 Tensorflow / Pytorchに対する推論速度を向上させることができると主張しているが、OnnxまたはOpenVINOベンチマークについては言及していない商用ツールに注意する必要があります。理想的には、Onnx / OpenVINOバージョンもチェックすることをお勧めします。これは、それ以降のバージョンにのみTransformerを対象とした最適化が含まれているためです。

量子化

現在OnnxまたはOpenVINOを実行していると仮定すると、パフォーマンスをさらに向上させるにはどうすればよいですか?最初に試すのは量子化かもしれません。これは単に、モデルの浮動小数点の重みをint8の重みに置き換えることを意味します。これにより、通常、多くのメモリスペースを節約できますが、実行時間を大幅に節約できるとは限りません。

この不幸な事実は、AVX512-VNNIが導入されるまで、Intel(およびAMD)CPUのベクトルユニットがint8データでネイティブに動作できなかったためです。少なくとも、ディープラーニングの推論に役立つ方法ではありません。AWSのクラウドCPUの大部分は、現在AVX512-VNNIをサポートしていません。c5.12xlargeで始まる唯一のものであり、コスト計画に関して多くの柔軟性を提供しない可能性があります。

たとえば、c5.2xlargeを使用してシングルコアでBERTベースを実行すると、量子化によってOnnxで25%のスピードアップしか得られませんでした。これを、スピードアップが約250%であったc5.12xlargeのAVX512-VNNIコアと比較してください。

量子化の利点は、通常、精度が1%未満しか失われないことです。また、ほとんどのディープラーニングフレームワークにうまく統合されているため、簡単に試すことができます。https://colab.research.google.com/github/pytorch/tutorials/blob/gh-pages/_downloads/dynamic_quantization_bert_tutorial.ipynb。

剪定

量子化の代わりに剪定があります。剪定は、重み行列にゼロ(別名スパース性)を導入し、メモリと計算の両方の節約を約束します。たとえば、Huggingfaceによる最近の作業であるpruneBERTは、ダウンストリームタスクを微調整しながら、BERTで95%のスパース性を達成することができました。MITの宝くじ仮説チームによる別の有望な研究は、下流のタスクを微調整するための密なものと同様のパフォーマンスを達成する、70%の疎な事前トレーニング済みBERTを取得できることを示しています。TensorflowとPytorchはどちらも、剪定をいじくり回すためのサポートを提供します。

ただし、CPUはスパース計算をあまり好まないため、プルーニングからスピードアップを得るのは量子化よりもさらに困難です。確かに、前回チェックしたとき、Pytorchのスパース行列の密行列の乗算は、スパース行列に98%を超えるゼロが含まれている場合にのみ、密密バージョンよりも高速です。通常、精度をあまり失うことなく、最大で90%のスパース性またはおそらく95%のスパース性を許容できます。

OctoMLのTVMなどの最近のソリューションは、スパース推論の問題に取り組み始めています。 https://medium.com/octoml/using-sparsity-in-apache-tvm-to-halve-your-cloud-bill-for-nlp-4964eb1ce4f2。Tensorflowとの比較のみが示されていますが、pruneBERTでの2倍近くの高速化はかなり有望なようです。残念ながら、これはAMD CPUでのみ機能するようです。おそらく、IntelCPUに固有のAVX512用に最適化されていないためです。

Neuralmagicは、特にスパースニューラルネットワークを高速化するMITスタートアップです。報告されたパフォーマンスは素晴らしいものですが、残念ながら現在はコンピュータービジョンモデルのみをサポートしています。

ここに、私のライブラリであるSparseDNNの広告を追加します。これは、BERTのようなモデルに対して、現在市場で最高のスパース推論パフォーマンスを提供していると思います。 https://arxiv.org/abs/2101.07948。SparseDNNは、pruneBERTの5倍の高速化を提供し、IntelCPUとAMDCPUの両方で機能します。SparseDNNは、ResNetやMobileNetなどの一般的なコンピュータービジョンネットワークの高速化も提供します。

注目すべきことに、現在、量子化とプルーニングの両方を利用できるライブラリはありません。(ご存知の場合はコメントしてください。)SparseDNNは実験的なサポートを提供しますが、そのスパースINT8カーネルは浮動小数点のものよりわずかに高速です。

結論

この記事では、BERTを例として使用して、難易度の高い順にニューラルネットワークのパフォーマンスを向上させるいくつかの方法について説明しました。実際にどの方法を採用するかをどのように決定する必要がありますか?それはすべて、特定のアプリケーションの精度とスピードアップのトレードオフに依存します。直感的には、精度を犠牲にしても構わないと思っている場合は、ニューラルネットをさらに高速化できます。

BERTに適用される、この記事に記載されているいくつかの方法の精度と高速化のトレードオフが上にプロットされています。セットアップでは、AVX512-VNNIなしで単一のCPUコアを使用していることを前提としています。理想的には、精度の低下が少なく、高速化された右下隅に座りたいと考えています。緑の線は、最適化オプションのパレート最適フロンティアです。

この記事は、ニューラルネットワークの最適化の完全なガイドとなることを意図したものではありません。たとえば、量子化はint8に限定されず、構造化プルーニングについても取り上げませんでした。AWS GravitonやInferentiaなどの新しいハードウェアオプションも、アーキテクチャに依存する興味深いトレードオフを提供します。しかし、うまくいけば、それはあなたにいくつかのスターターアイデアと異なる最適化方法を比較するための精神的な枠組みを与えるでしょう。

次回まで…

開示:私はディープラーニング推論の加速でコンサルティングビジネスを運営しています:https://www.oneseventwoai.com/

You may like

提案された投稿

キーワード抽出—Pythonの7つのアルゴリズムのベンチマーク

キーワード抽出—Pythonの7つのアルゴリズムのベンチマーク

私は、キーワード抽出タスクの有効なアルゴリズムを見つけるために積極的に取り組んできた2000のドキュメントのコーパスで、キーワード抽出タスクの7つの関連するアルゴリズムを比較しました。目標は、効率的な方法でキーワードを抽出できるアルゴリズムを見つけることでした。データのコーパスが数百万行に急速にヒットするにつれて、抽出の品質と実行時間のバランスが取れていました。

クラウドプラットフォームとしてAWSを好む理由 Turing.comの専門家が説明する

クラウドプラットフォームとしてAWSを好む理由 Turing.comの専門家が説明する

AWSは、過去5〜10年間で、開発者の間で最も広く使用されているクラウドサービスプラットフォームの1つになりました。アマゾンウェブサービスは32%の市場シェアを持ち、現在クラウドインフラストラクチャサービス市場で最も人気のあるベンダーです。

Interesting For You

関連記事

Torchvisionの機能を理解する(PyTorchの場合)

Torchvisionの機能を理解する(PyTorchの場合)

トーチビジョンライブラリの直感的な理解—基本から上級(パート1/3)トーチビジョンとは何ですか?Torchvisionは、PyTorchと連携するコンピュータービジョン用のライブラリです。効率的な画像およびビデオ変換用のユーティリティ、一般的に使用される事前トレーニング済みモデル、および一部のデータセットがあります(torchvisionはPyTorchにバンドルされていないため、個別にインストールする必要があります。

PyTorchのトーチビジョン機能を理解する—パート2 —変換

PyTorchのトーチビジョン機能を理解する—パート2 —変換

トーチビジョンライブラリの直感的な理解—変換の14の視覚的な例(パート2/3)パート1(トーチビジョンのモジュールの紹介)については、以下のリンクにアクセスしてください。この記事では、データセット(画像)が読み込まれた直後にシーケンスで実行できる単純な画像変換関数である変換を実験します。

内部のグラフ注意ネットワーク

数学からNumPyへのステップバイステップガイド

内部のグラフ注意ネットワーク

グラフニューラルネットワーク(GNN)は、グラフデータから学習するための標準ツールボックスとして登場しました。GNNは、コンテンツの推奨や創薬など、さまざまな分野で影響の大きい問題の改善を推進できます。

セグメンテーションの修正パート1:Pythonで画像セグメンテーションを行う方法

セグメンテーションの修正パート1:Pythonで画像セグメンテーションを行う方法

前回の投稿で、ブロブ検出と連結成分に基づいて対象のオブジェクトを識別する方法を学びました。ただし、関心のある特定のオブジェクトを画像から分離する必要がある場合があります。

MORE COOL STUFF

ハリー・スタイルズの心地よい美容ブランドは、「ファインライン」の歌手とファンを新しい方法で結び付けます

ハリー・スタイルズの心地よい美容ブランドは、「ファインライン」の歌手とファンを新しい方法で結び付けます

ハリー・スタイルズは、マニキュアとスキンケアを含む彼の新しいウェルネスブランド、プレージングでジェンダーの流動性を次のレベルに引き上げています。

スティーヴィー・ニックスは、リンジー・バッキンガムとの最初のアルバムカバーで裸になることについて「幸せではなかった」。彼女は「強制された」そして「本当に恐ろしい」と言います

スティーヴィー・ニックスは、リンジー・バッキンガムとの最初のアルバムカバーで裸になることについて「幸せではなかった」。彼女は「強制された」そして「本当に恐ろしい」と言います

フリートウッド・マックの歌手、スティーヴィー・ニックスは、リンジー・バッキンガムとの最初のアルバムカバーでヌードをポーズすることを「強制された」と感じたことを明らかにしました。

マシンガンケリーまたはG-イージー:ハルシーのエグゼスのどちらがより高い純資産を持っていますか?

マシンガンケリーまたはG-イージー:ハルシーのエグゼスのどちらがより高い純資産を持っていますか?

ミュージシャンのジー・イージーとマシン・ガン・ケリーは、ポップシンガーのハルシーをめぐって有名に争いました。しかし、2人のラッパーのどちらがより高い純資産を持っていますか?

スティービーニックスはシェリルクロウにこの1つのアドバイスを与えました

スティービーニックスはシェリルクロウにこの1つのアドバイスを与えました

スティーヴィー・ニックスとシェリル・クロウは、何年にもわたって数回コラボレーションしてきました。ニックスは彼女がクロウに与えたアドバイスの1つを共有しました。

ミニクロスワードをお試しください

ミニクロスワードをお試しください

毎週更新される私たちのミニクロスワードは、私たちのお気に入りのハウスタッフワークスの読みと頭のいい手がかりを組み合わせています!

どれが最も効果的ですか:洗濯ポッド、粉末または液体洗剤?

どれが最も効果的ですか:洗濯ポッド、粉末または液体洗剤?

適切な洗剤を選ぶことを心配することなく、洗濯をすることは十分に悪いことです。では、どちらが最適ですか?それとも重要ですか?

ケンタッキーの青い人々の実話

ケンタッキーの青い人々の実話

ケンタッキー州の田舎に住むFugatesとCombsの家族は、遺伝的宝くじを失いました。どちらも、結婚するにつれて肌が青く見える、まれな劣性形質を共有していました。これの原因は何でしたか?そして、家族はどうなりましたか?

カリフォルニアコンドルの「バージンバース」は種を救うことができますか?

カリフォルニアコンドルの「バージンバース」は種を救うことができますか?

カリフォルニアコンドルを絶滅から救うためのプログラムで、2羽の父親のいないオスのヒナが飼育されています。そのような「処女」の誕生はどのように可能ですか?

スパイク・リーのシャイラクからのこのひどい新曲はおそらく本物ではありえない

スパイク・リーのシャイラクからのこのひどい新曲はおそらく本物ではありえない

さて、スパイク・リーがシャイラクという映画を作っていると最初に聞いたとき、彼の多作が彼を一種のヒット・オア・ミスにしていることを考えると、私は少し疑わしかった。Chiraqは、銃やギャングによる暴力が蔓延しているため、戦争地帯に似ているシカゴの地域のニックネームです。

ビクトリア朝時代と同じくらい暗く、泥だらけで、暗いビクトリア朝時代のロマンス

ビクトリア朝時代と同じくらい暗く、泥だらけで、暗いビクトリア朝時代のロマンス

毎日、Watch Thisは、その週に公開される新しい映画に触発されたスタッフの推奨事項を提供します。今週:ジェシカ・ハウスナーの独特な時代劇のアムール・フーが劇場に登場するので、私たちは他の19世紀のロマンスに手を差し伸べます。

ジョージ・タケイは、スター・トレックビヨンドのチームにスールーをゲイにしないよう説得しようとした

ジョージ・タケイは、スター・トレックビヨンドのチームにスールーをゲイにしないよう説得しようとした

画像:メモリー・アルファ経由のヒカル・スールースタートレック・ビヨンドのクリエイティブ・チーム、そして現在ヒカル・スールーを演じているジョン・チョーは、同じセックスパートナーと一緒にヒカル・スールーのシーンを含めることは大したことではないと判断したかもしれません、ジョージ・タケイ役を始めた俳優はハリウッドレポーターに次のように語った。「ゲイのキャラクターがいることをうれしく思います。

その時私のオートバイは盗まれました-そしてそれがあなたに起こらないようにする方法

その時私のオートバイは盗まれました-そしてそれがあなたに起こらないようにする方法

倉庫の乗組員はいい人でしたが、悪ふざけが好きすぎました。それで、その朝自転車を駐車した場所をちらっと見て、空きスペースを見たとき、私は、それらの肉の頭がそれを傷つけていない方がいいと思いました。

サタデーナイトライブコメディアン兼作家ピーターエイクロイドデッド66歳

サタデーナイトライブコメディアン兼作家ピーターエイクロイドデッド66歳

俳優のダンエイクロイドの兄弟であるピーターエイクロイドは、1979年のサタデーナイトライブの1シーズンで作家とキャストの両方のメンバーを務めました。

「攻撃的な癌」の診断後、ジョー・エキゾティックがノースカロライナ州の医療施設に移送された

「攻撃的な癌」の診断後、ジョー・エキゾティックがノースカロライナ州の医療施設に移送された

タイガーキングスターのジョセフ 'ジョーエキゾティック'マルドナド-パッセージは当初、彼の前立腺癌の診断を明らかにした後、今月後半に移管されることになっていた

CardiBとOffsetのDaughterKultureがInstagramで美しい新しいブレードを披露

CardiBとOffsetのDaughterKultureがInstagramで美しい新しいブレードを披露

Cardi BとOffsetの3歳の娘、Kultureは、Instagramで彼女の新しい編みこみのヘアスタイルを披露しました。

Languages