Google は、巨大なデータセンターの電力消費を最小限に抑えるという、退屈だが価値のある問題に、ニューラル ネットワーク テクノロジを活用して取り組んでいます。
同社は、この方法によって、データセンターの電力消費効率を99.6%の精度で予測できるソフトウェアを開発し、微妙な調整で電力消費を削減できるようになったとしている。
同社は水曜日にニューラルネットワークの詳細を発表した。このプロジェクトは、Google自慢の「20パーセントプロジェクト」の一つとして、エンジニアのジム・ガオ氏によって開始された。ガオ氏は、19種類の入力値のうち1つを調整することでGoogleデータセンターの電力利用効率がどのように変化するかを予測するという問題に機械学習を適用することを決めた。
電力使用効率(PUE)は、コンピューターを支える機器に供給される電力と、ラック内のサーバー、ストレージ、ネットワーク機器に供給される電力の割合を表します。PUEが1.1であれば非常に良好で、IT機器が消費する1ワットに対して、冷却システムやその他の施設インフラなどのサポートインフラが0.1ワットを消費していることを意味します。
Googleにとって、PUEの低減は膨大な電気料金を削減するための重要な手段です。Gao氏の機械学習アプローチはこれに貢献し、Googleが本番環境で使用できるほどの効果を発揮しました。
「例えば、数ヶ月前、数日間サーバーをオフラインにする必要がありました。通常であれば、データセンターのエネルギー効率は低下します」と同社はブログ記事で説明しています。「しかし、ジムのモデルを使用することで、冷却設定を一時的に変更することができ、その期間のPUEへの影響を軽減することができました。このような小さな調整を継続的に行うことで、エネルギーとコストの両方で大きな節約につながります。」
これらのデータセンター予測に使用されたニューラルネットワークは、19の入力データを使用しており、それぞれ約18万点のデータポイントが2年間にわたって収集されていました。入力データには、サーバーのIT負荷(キロワット単位)、稼働中の凝縮水ポンプの総数、平均熱交換アプローチ温度、屋外風速(時速マイル単位)などが含まれていました。*
これらの入力をニューラルネットワークに接続することで、Googleは電力使用効率が時間とともにどのように変化するかを予測できるだけでなく、入力の1つを変更した場合のシミュレーションを行い、PUEにどのような影響が及ぶかを確認することも可能です。これにより、Googleは、他の方法では実現が難しい機能を手に入れることになります。19の入力がどのように相互作用するかを理解することは、後ろ向きにローラースケートをしながら頭の中で3次元チェスをプレイするのと同じような作業だと私たちは考えています。
GoogleのPUE予測システムは、生産現場で使用できるほど正確であると同社は述べている。
「Google DC(データセンター)での実際のテストでは、機械学習は既存のセンサーデータを用いてDCのエネルギー効率をモデル化する効果的な方法であり、大幅なコスト削減につながることが示されています。モデルの応用例としては、新しいプラント構成の評価、エネルギー効率性能の評価、最適化の機会の特定などのためのDCシミュレーションが挙げられます」と、ガオ氏はこのアプローチを説明した論文に記しています。
Googleはこのニュースにオタクたちが熱狂するような反応を期待している可能性が高いが、これは新しいアプローチではなく、Googleがデータセンター監視に初めて適用したわけでもないことを指摘しておく価値がある。ニューラルネットワークは1960年代から何らかの形で存在しており、Googleのシステムの多くは1980年代に改良された「ボルツマンマシン」と呼ばれる手法を採用している。さらに、AIのパイオニアであるジェフ・ホーキンス氏は、より洗練されたシステムを開発し、Grokという商用製品に採用している。Grokは既に、より理論的に厳密な脳型AIを用いてサーバー負荷の監視と予測を行っている。
しかし、このニュースの驚くべき点は、ニューラルネットワークが今や非常に深く理解され、データセンター管理者が(加工された)入力データに基づいてモデルを構築し、学習させることで、寄せ集めの入力データがどのように組み合わさり、特定の出力につながるかを驚くほど正確に予測できるシステムを構築できるようになったという点です。これは素晴らしいことです。®
ブートノート:
* 「ファイルI/O、データフィルタリング、メタ変数の計算などのデータ前処理は、Python 2.7とScipy 0.12.0およびNumpy 1.7.0モジュールを組み合わせて実施しました。モデルのトレーニングと後処理にはMatlab R2010aを使用しました。Matlab R2010aと同様の機能を提供するオープンソースの代替手段としては、OctaveやPythonのScipy/Numpyモジュールなどがあります」と、Gao氏はこのアプローチをより詳細に説明した論文で説明しています。