Facebookには20億人のユーザーがいるが、その大半は、この規模のサービスが、どれだけ人工知能(AI)に依存しているかを理解していないかもしれない。ニュースフィード、検索、広告などのFacebookの製品には機械学習が使われており、顔認識や自動タグ付け、機械翻訳、音声認識、コンテンツ理解、偽アカウントや問題のあるコンテンツを見分ける異常検知など、同社のさまざまなサービスを機械学習が支えている。
同社が発表する数字は驚くようなものばかりだ。Facebookの機械学習システムは、1日あたり合計200兆件以上の予測と、50億件を超える翻訳を処理している。また同社のアルゴリズムは、毎日数百万件の偽アカウントを自動的に削除しているという。
FacebookのAIインフラグループ責任者Kim Hazelwood氏は、2018年の「International Symposium on Computer Architecture」(ISCA)で行った基調講演で、この規模の機械学習を扱うためのハードウェアとソフトウェアの設計について説明した。同氏は、ハードウェアやソフトウェアのアーキテクトに対して、流行を追うばかりではなく、機械学習のための「フルスタックソリューション」の開発を目指すべきだと述べた。「誰もがやっていることを追いかけるだけでなく、適切な問題を解決することが非常に大切だ」とHazelwood氏は述べた。
FacebookのAIインフラでは、さまざまなワークロードを扱う必要がある。モデルの中には、数分でトレーニングできるものもあれば、数日から数週間かかるものもある。例えば、ニュースフィードや広告には、ほかのアルゴリズムと比べ最大で100倍のコンピューティング資源を必要とする。このため、同社では可能な限り「従来の保守的な機械学習」を使用し、深層学習(多層パーセプトロン(MLP)、畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN/LSTM))は絶対に必要な場合にしか使用しないという。
同社のAIエコシステムには、3つの主要なコンポーネントが含まれている。その3つとは、インフラ、その上で実行されるワークフロー管理ソフトウェア、そして「PyTorch」のような核となる機械学習フレームワークだ。
Facebookは2010年頃以降、自社のデータセンターとサーバを社内で設計している。現在では、十数カ所の巨大なデータセンターを運用しており、そのうち約10カ所は米国に、残りはそれ以外の国に置かれている。これらのデータセンターは、建設された時期も違っており、「すべてのデータセンターにすべてのデータを複製することほど愚かなことはない」という方針もあって、それぞれ性格が異なっている。それでも、連続性を確保する取り組みもあるという。各データセンターは、ピークロードに合わせて設計されているため、時間帯によっては、処理能力の約50%が「余剰コンピューティング能力」として機械学習のために利用できる。