機械学習が Facebook の災害復旧を変える
ハイパースケーラーには無料でサービスにアクセスできる何十億ものユーザーがいますが、面白いことに、これらのユーザーは料金を払っているかのように振る舞い、これらのサービスがいつでも利用できることを期待しています。言い訳はできません。
組織や消費者は、料金を支払ったサービスについても Facebook、Google、Microsoft、Amazon、Alibaba、Baidu、Tencent に依存しており、データがいつでもすぐにアクセスでき安全であること、サービスが常に利用可能であること、データが安全であることを合理的に期待しています。検索結果は常にクエリが入力されてから数ミリ秒後にポップアップ表示され、推奨事項がパーソナライズされて表示されます。 これらのハイパースケーラーは、データとサービスが顧客の近くにあり、遅延が問題にならないようにするために、世界中に広がる大規模なデータセンターのネットワークを構築しています。
これらすべてを考慮すると、災害復旧はビジネスの重要な部分になります。 ハイパースケール企業は、データセンターがダウンした場合でもビジネスを通常どおり継続できることを確認する必要があります。 地理的リージョン内にある複数の可用性ゾーンを使用して、データセンターが利用できなくなった場合でも、他のデータセンターを通じてデータ、サービス、ワークロードにアクセスできるようにします。 Azure を 140 か国で利用できるようにしている Microsoft のようなハイパースケーラーは、障害ドメイン全体にわたるロールの管理から、ユーザーのリージョンで Azure のジオレプリケーションを有効にできない場合のユーザー トラフィックの別のリージョンへの自動フェイルオーバーまで、他の災害復旧計画も用意しています。セカンダリ リージョンへのストレージ。
21 億人のユーザーを抱え、カリフォルニア州サンタクララ、バージニア州アッシュバーンからスウェーデンのルーレオ、デンマークのオーデンセに至るまで世界各地にデータセンターを構える Facebook にとって、災害復旧は同社の運営にとって極めて重要であるだけでなく、巨大なソーシャル ネットワーキング企業の課題でもあります。常に取り組んでいます。
Facebookのエンジニアのグループは、同社のインフラストラクチャに関する最近の論文で、「Facebookの世界的なコンピューティング、ストレージ、ネットワークのフットプリントの一部の損失をシームレスに処理する能力は、Facebookインフラストラクチャの長年の目標であった」と述べている。 「社内では、当社の災害復旧チームは定期的に訓練を実施し、当社のグローバル インフラストラクチャとソフトウェア スタックの最も弱い部分を特定し、修復します。破壊的な行動には、当社のグローバル インフラストラクチャとソフトウェア スタックの損失を確認するために、ほとんどまたはまったく予告なくデータセンター全体をオフラインにすることが含まれます。データセンターにより、ビジネスへの中断は最小限に抑えられます。」
高可用性の確保は、常に運用にとって重要ですが、企業の運用において人工知能 (AI) と機械学習の役割がさらに普及するにつれて、その重要性がさらに増しています。 Facebookは、ニュースフィードや検索でのランキングから、特定のユーザーに向けた広告の表示、顔認識のためのFacer、言語翻訳、音声認識、異常検出のためのSigmaのような内部運用に至るまで、幅広いサービスで機械学習を活用している。 同社は、ディープ ニューラル ネットワーク、ロジスティック回帰、サポート ベクター マシンなど、複数の機械学習モデルも使用しています。 Caffe2 や PyTorch などの深層学習フレームワークと、FBLearner Feature Store、FBLearner Flow、FBLearner Prediction などのサービスとしての内部機械学習機能があります。
The Next Platform で述べたように、Facebook の分散型でスケーラブルな機械学習インフラストラクチャの多くは、Big Basin GPU サーバーなどの社内で設計されたシステムに基づいており、トレーニングには Intel の CPU と Nvidia の GPU の両方に大きく依存しています。そして推理。 この論文の著者らによると、Facebookの事業全体にわたる機械学習機能の成長により、災害復旧の重要性がさらに高まっているという。
「機械学習のトレーニング部分と推論部分の両方において、災害への備えの重要性を過小評価することはできません」と彼らは書いている。 「いくつかの主要なプロジェクトを推進するための推論の重要性は驚くべきことではありませんが、いくつかの主要な製品で目に見える劣化に気づく前に、頻繁なトレーニングに驚くべき依存性がある可能性があります。」
その重要性を測定するために、Facebook のエンジニアは、モデルを 1 週間、1 か月、6 か月間トレーニングできなかった場合に、ニュース フィード、広告、コミュニティの完全性という 3 つのサービスに何が起こるかを判断するテストを実行しました。
「最初の明白な影響はエンジニアの効率でした。機械学習の進歩は頻繁な実験サイクルに結びついていることが多いためです。多くのモデルは CPU でトレーニングできますが、GPU でトレーニングすると、特定のユースケースでは CPU よりも顕著なパフォーマンス向上が可能になることがよくあります。」と彼らは書いています。 これらの高速化により、反復時間が短縮され、より多くのアイデアを検討できるようになります。 したがって、GPU の損失は、これらのエンジニアの純生産性の損失につながります。 さらに、Facebook 製品、特にモデルの頻繁な更新に大きく依存している製品に大きな影響があることを確認しました。」
不快なコンテンツを特定して削除することを目的としたコミュニティインテグリティサービスでは、モデルを継続的にトレーニングできないことはコンテンツの劣化を意味すると著者らは書いている。 ニュース フィードのコンテンツは古くなり、モデルをトレーニングできないことによる広告への影響 (本質的には関連性のある広告を適切なユーザーにプッシュし続けることができないこと) は数時間で測定できます。 1 日経過したモデルを使用することは、1 時間経過したモデルを使用するよりも大幅に悪いです。
「全体として、私たちの調査は、Facebookの多くの製品やサービスにおける機械学習トレーニングの重要性を強調する役割を果たした」と著者らは書いている。 「その大規模かつ増大する作業負荷に対する災害への備えを過小評価すべきではありません。」
Facebook の業務における AI と機械学習の台頭により、同社は GPU リソースの収容方法の変更を余儀なくされました。 Facebook は、ほぼすべてのデータセンター リージョンにトレーニングと推論用の CPU を備えたコンピューティング サーバーを設置しており、何らかの理由で最大のリージョンがダウンした場合にそれを補うための措置です。 ただし、著者らは、トレーニング用の GPU リソースに対する同様の冗長性の必要性が当初は過小評価されていたと指摘しています。 コンピューター ビジョン アプリケーションは、トレーニングに GPU を使用した最初のワークロードであり、モデルのトレーニングに使用されるデータはグローバルに複製されました。
「Facebook インフラストラクチャに GPU が初めて導入されたときは、設計が成熟し、サービスとメンテナンスの要件について社内の専門知識を構築できるようになるまで、単一のリージョンで GPU を展開することが管理しやすさを考慮した賢明な選択肢であるように思えました」と彼らは書いています。 「これら 2 つの要因により、すべての本番 GPU を 1 つのデータセンター リージョンに物理的に分離することが決定されました。」
しかし、GPU に対する新たな要求がその考えを変えました。
「ランキング、レコメンデーション、コンテンツ理解など、複数の製品にわたるディープ ラーニングの採用が増加したため、GPU コンピューティングとビッグ データの間の局所性の重要性が増した」と著者らは書いています。 「そして、コンピューティングとデータのコロケーションの必要性を複雑にすることが、ストレージのメガリージョンアプローチへの戦略的転換でした。メガリージョンの概念は、少数のデータセンターリージョンに Facebook のデータの大部分を収容することを意味します。 GPU フリート全体を収容するリージョンがストレージ メガ リージョンに存在しませんでした。」
これらすべてを考慮すると、データとともにコンピューティング リソースを見つけることの重要性を超えて、Facebook は、「GPU を収容する領域を完全に失った場合に何が起こるかを検討することがすぐに重要になりました。そして、その検討の結果が推進力となりました」と述べています。 ML トレーニングに使用される GPU の物理的な場所を多様化する必要性があります。」
今週のハイライト、分析、ストーリーを、何も挟むことなく直接あなたの受信箱にお送りします。今すぐ購読してください。