Metaはどのようにして大規模なAIを稼働させるインフラをメンテナンスしているのか?
Metaはオープンソースの大規模言語モデルであるLlama 3をリリースしたり、広告用の画像やテキストを生成するAIツールを導入したりするなどAIの開発・活用を積極的に進めています。そんなMetaがAIをトレーニングしたり運用したりする際のハードウェアをどのようにメンテナンスしているのかを解説しました。
Maintaining large-scale AI capacity at Meta - Engineering at Meta
https://engineering.fb.com/2024/06/12/production-engineering/maintaining-large-scale-ai-capacity-meta/
Metaは従来より世界中で多数のデータセンターを運用してきましたが、AIの台頭によりデータセンター群を変革する必要に迫られました。大規模な生成AIのモデルの場合、トレーニングするパラメーターの数は数兆個も存在しているため、トレーニングの際には膨大なリソースが必要となります。
Metaは世界最大級のAIトレーニングインフラストラクチャーを構築しており、使用されているGPUの数は2025年には60万個に到達する見込み。毎日のように数百もの異なるチームが数千個のトレーニングタスクを行っており、タスク次第では多数のGPUを密接に連携させなければいけない場合もあるとのこと。
AIをトレーニングするためのGPUクラスターを構築する際には次のような条件を満たす必要があるとMetaは述べています。
・容量
ほとんどのタスクは素早く行う必要があり、標準で大量の容量を確保しておくことはできません。
・不良ホストが致命的
ほとんどのタスクでは全てのホストを同期させる必要があるため、少しだけ遅かったり、ちょっとしたハードウェアトラブルがあったり、ネットワークの問題があったりする不良ホストが非常に問題になります。
・中断できない
AIをトレーニングするタスクは多くのホストが連携して取り組むため、中断が発生した際の影響が大きくなります。
・ロールアウトにリスクがある
AIのソフトウェアスタックは深く、トラブルが発生した際に原因を特定するのが難しいため新たなコンポーネントをロールアウトする際には特に注意が必要です。
・ホストの一貫性
AIをトレーニングするタスクで複数ホストを使用する時、CUDAバージョンさえ一致していればハードウェアの互換性は高いはずですが、デバッグを効率的に行うためにはハードウェアを統一することが非常に重要です。
Metaでは最新のチップと高性能バックエンドネットワークを備えた特注のハードウェアが使用されており、その上でソフトウェアを可能な限り最新かつ柔軟に保つよう努めているとのこと。ホストの数が多く、常に多数のホストの更新作業を平行して行う必要があるため、コンポーネント間の互換性を維持することでコンポーネントの更新をスライド方式で順番に行えるようにしてあります。
複数ホストを一括で運用するクラスターのメンテナンスでは、「メンテナンス列車」という手法を使用しているとのこと。「メンテナンス列車」ではクラスター内の少数のホストが順番に運用から外され、その時点で可能な限り全ての更新を適用してクラスターに戻すという作業を繰り返します。それぞれのホストに一定期間ごとにメンテナンスのタイミング(メンテナンス列車)が訪れることで、可用性を維持したまま常に全体を更新し続けることができるわけです。
また、インフラストラクチャーの規模が大きいため中断を伴うロールアウトは全て段階的に行えるように調整する必要があります。つまりクラスター内の別のホストが異なる構成であっても問題なくタスクを実行できる能力が必要というわけ。これはAIトレーニング以外の場合においては一般的なことですが、AI系のタスクはハードウェアと密接に結びついているため難しい問題です。
MetaではCUDAライブラリおよびAIタスク自体は常に一貫しているものの、OSやファームウェア、ネットワークなどの下位コンポーネントは段階的に行えるようにしているとのこと。単純に聞こえるものの、全てのレベルでの慎重なテストや特別な監視、ベンダーとの密接な連携など多くの開発が必要だったそうです。
AIパフォーマンスを最適化するため、同時にメンテナンスを行うホストの数を調整することも大切です。同時に多数のホストをメンテナンスすると処理能力が一時的に大きく低下してしまい、一方で同時にメンテナンスするホストの数が少ないとホストで動いているタスクの中断が大量に発生してしまいます。MetaではAIチームと協力して最適な数を追求しているとのこと。
CUDAのバージョンをアップデートする場合など、関連する全ホストを同時に更新する必要がある場合のためにMetaは「OpsPlanner」というツールを使用しています。OpsPlannerを使用することで、自動で何千ものホストに対して同時に操作を行い適切な更新を行って本番環境に移行できるとのこと。
なお、MetaのAIトレーニングに関するメンテナンス以外の取り組みについては下記の記事で確認可能です。
Metaが大規模言語モデルをトレーニングする上でどこに注意したのか&どのように取り組んだのかを解説 - GIGAZINE
06/17 23:00
GIGAZINE