Azure GPU を使用した Bing の検索エクスペリエンスの大規模な改善

2019年11月18日 に投稿済み

Program Manager, Bing Platform

ここ数年にわたり、ディープ ラーニングが Bing の検索スタック全体で幅広く採用されてきており、非常に多くのインテリジェントな機能をご利用いただけるようになっています。自然言語モデルを使用して、ユーザーの検索の意図や関連する Web ページについてコアの検索アルゴリズムの理解力を向上させることで、Bing では最も関連性の高い検索結果をユーザーに提供することができます。ディープ ラーニングのコンピューター ビジョン技法を利用して、テキストの説明や概要のメタデータが含まれていない場合でも多数の画像を発見できるように機能を強化しています。コンピューターベースの読解力モデルを活用して、大きなテキスト本文内のキャプションを取得し、ユーザーの特定の質問に直接回答します。これらすべての機能強化により、Web の検索クエリでより関連性が高く、前後関係が考慮された検索結果を取得することができます。

最近、Transformer と呼ばれる種類のモデルによって、画期的な自然言語理解が実現しました (Transformer による双方向のエンコード表現 (BERT) により一般普及)。個々の単語を順番に処理する以前のディープ ニューラル ネットワーク (DNN) アーキテクチャとは異なり、Transformer は、各単語と、文章中のその単語の周囲にあるすべての単語間で、コンテキストや関係性を認識します。Microsoft は今年の 4 月から大規模な Transformer モデルを使用しており、この 1 年で Bing をご利用のお客様に対し最高の品質向上を実現しました。たとえば、"what can aggravate a concussion" というクエリでは、"aggravate" という単語により、ユーザーは原因や症状についてではなく、"concussion" の後に実行するアクションについて知りたいことを示しています。検索でこれらのモデルを活用することにより、ユーザーの意図を理解し、より有用な検索結果を提供できるようになりました。さらに重要なこととして、これらのモデルがすべての Bing 検索クエリにグローバルに適用されるようになり、より関連性が高く、インテリジェントな Bing の検索結果を得られるようになりました。

rankBERTblogbeforeafter

Web 検索の規模でのディープ ラーニングは非常に高価です

Bing をご利用のお客様は、非常に高速な検索エクスペリエンスを、ミリ秒単位に抑えられた待ち時間でご利用いただけます。  Transformer ベースのモデルは最大数十億個のパラメーターを使用して事前学習されています。これは、以前のネットワーク アーキテクチャと比べて、かなり大きなパラメーターのサイズとコンピューティング要件の増加となっています。20 個の CPU コア上での抽出済み 3 層 BERT モデルのサービス待機時間は、推論ごとに 77 ミリ秒の初回ベンチマークを記録しました。ただしこれらのモデルは、Web 検索の強化のため 1 秒ごとに数百万を超える異なるクエリやスニペットに対して実行する必要があるため、推論ごとに 77 ミリ秒であったとしても Web 検索の規模では非常に高価になり、たった 1 つの検索機能の改善を提供するとしても数万台のサーバーが必要になります。

モデルの最適化

Azure Virtual Machine の GPU を利用して 800 倍の推論スループットを達成する

Transformer と以前の DNN アーキテクチャの主な違いの 1 つは、シーケンシャル処理ではなく、大規模な並列計算を利用していることです。GPU (グラフィックス プロセッシング ユニット) アーキテクチャは、スループットの高い並列コンピューティング向けに設計されているため、GPU アクセラレータが組み込まれた Azure の N シリーズ Virtual Machines (VM) は、このような Transformer モデルを高速化するのに最適でした。Microsoft は NV6 仮想マシン から始めることにしました。これは主に、コストの低さとリージョンの可用性が理由です。  GPU を搭載した VM 上で 3 層 BERT モデルを実行するだけで、20 ミリ秒のサービス待機時間を観測できました (約 3 倍の改善)。サービスの効率をさらに向上させるために、Microsoft は NVIDIA と提携して、GPU アーキテクチャを最大限に活用し、TensorRT C++ API および CUDA または CUBLASUBLAS ライブラリを使用してモデル全体を再実装しました。これには、埋め込み、Transformer、出力レイヤーの再作成が含まれます。  NVIDIA は、softmax、GELU、正規化、削減など、効率的な CUDA Transformer プラグインも提供しています。

Microsoft は、同じ Azure NV6 Virtual Machine 上で TensorRT 最適化済み GPU モデルのベンチマークも行い、9 ミリ秒で 5 つの推論バッチを提供することができました。これは、GPU アクセラレーションなしのモデルと比べ、待機時間に関して 8 倍のスピードアップで、スループットに関しては 43 倍の改善です。次に、NC6s_v3 irtual Machine 上での混合精度の Tensor Cores を活用して、パフォーマンスをさらに最適化し、64 個の推論バッチ サイズで 6 ミリ秒のベンチマークを記録しました (CPU と比較した場合、最大 800 倍のスループットの向上)。

Azure のグローバルなスケールを使用して世界中の Bing 検索エクスペリエンスを変革

これらの GPU 最適化により、4 つのリージョンにわたって 2000 台以上の Azure GPU Virtual Machines を使用して、全世界で 1 秒あたり 100 万を超える BERT 推論を行うことができました。Azure N シリーズ GPU VM は、特にディープ ラーニング モデルが複雑さを増し続けているなかで、Bing で革新的な AI ワークロードと製品の品質の向上を実現し、高可用性、俊敏性、大幅なコスト削減を達成するために不可欠です。課題は非常に明確でした。Bing のような大規模な組織でも、GPU アクセラレーションが搭載された Azure 上の N シリーズ仮想マシンを使用することで、AI ワークロードを加速できるようにすることです。GPU を使用せずにこのようなグローバル規模の AI 推論を提供する場合、指数関数的な数の CPU ベース VM が必要になり、最終的には非常に高価になります。  また Azure は、お客様が複数の種類の GPU にすばやくデプロイできる機敏性を備えています。オンプレミスで GPU をインストールした場合には、数か月かかることもあります。  N シリーズ Virtual Machines は、高度なディープ ラーニング モデルを最適化して出荷し、現在世界中で利用可能な Bing 検索を向上させるために不可欠でした。

N シリーズの一般提供

Azure では、NC、ND、および NV シリーズ製品ライン全体で Virtual Machine 機能の完全なポートフォリオを提供しています。これらの Virtual Machines は、コンピューティング集約型、グラフィックス集約型、視覚化ワークロードなど、GPU アクセラレーションが一般的なアプリケーションのシナリオ向けに設計されています。

  • NC シリーズ Virtual Machines は、コンピューティング集約型やネットワーク集約型のアプリケーション向けに最適化されています。
  • ND シリーズ Virtual Machines は、ディープ ラーニングのトレーニングと推論のシナリオ向けに最適化されています。
  • NV シリーズ Virtual Machines は、視覚化、ストリーミング、ゲーム、エンコーディング、および VDI のシナリオ向けに最適化されています。

ND および NV シリーズ Virtual Machines に対する最近の製品の追加については、Supercomputing19 ブログをご覧ください。

詳細情報

Azure GPU を活用した Bing 最適化の行程の詳細を確認するには、Supercomputing19 にご参加ください。