d0iの連絡帳

気がむいたら書く

「CO2排出量は車の5倍、力任せの深層学習は環境に悪すぎる」の嘘

掲題の記事が流れてきたのでびっくりして読んでみました。記事としては完全に虚報 (fake news) になってしまっているのですが、どうも世界的にこの虚報がはびこってるっぽい雰囲気を感じたので、微力ながら裏を取ってみました。みなさんの周囲に「AIの学習は車5台のカーボンフットプリント」って言い出す地球にやさしく技術に厳しい方がいらっしゃったら、ぜひこの記事を紹介してください。

一行で結論を書くと「乱暴な換算による誇張の誇張部分だけをわかりやすく記事として取り出して一人歩きさせた結果虚報になってしまった」という内容です。

掲題の記事はこちら↓ (2019-08-27)
MIT Tech Review: CO2排出量は車の5倍、力任せの深層学習は環境に悪すぎる


冒頭しか読ませてくれないので、わざわざ見る価値はないです。キャッチーな部分だけ引用しておきます。

マサチューセッツ大学アマースト校の研究チームは、一般的な大規模AIモデルの訓練について、ライフ・サイクル・アセスメント(LCA:製品やサービスのライフサイクル全体に関する環境影響評価)を実施した(論文はこちら)。その結果、大規模AIモデルの訓練は、二酸化炭素換算量で約284トン以上を排出することが明らかになった。平均的なアメリカ車が耐用年数内に放出する炭素量(車両の生産を含む)のほぼ5倍に相当する値だ。

恐らく元記事がこちら↓(2019-06-06)
Training a single AI model can emit as much carbon as five cars in their lifetimes - MIT Technology Review

英語記事が日本語になるのに時間がかかった理由はよくわかりません。とはいえ、このサイトは登録しないと記事を読ませてくれないので、とりあえず別のニュースソースから元の論文を探しました。

こちらが別のソース↓ (他にもあったけどリンク先は同じです)
Training a modest machine-learning model uses more carbon than the manufacturing and lifetime use of five automobiles – Boing Boing


で、元の論文らしきものに辿りつきます。
[1906.02243] Energy and Policy Considerations for Deep Learning in NLP

表1を見ると衝撃的な数字が!!!

f:id:d0i:20190828232615p:plain
Table 1 of E. Strubell, et.al.

ふむふむ。これによると確かに Transformer と呼ばれるモデルをneural architecture searchで探索した場合のCO2排出量は平均的なクルマのライフタイムCO2排出量の5倍になる、と書いてあるように読めます。

しかし実はこの表は嘘、でなかったとしてもかなり不誠実な誇張です。

表3に、もう少し詳細なデータが掲載されています。

f:id:d0i:20190828233032p:plain
Table 3 of E. Strubell, et.al.

NAS (neural architecture searchの略、neural networkの構造を機械的に探索する手法) とある行のうち1行目がその「車の5倍」に相当するCO2排出量が書いてあります。この表をよく見ると、NASと書いてある行が2行あります。秘密はここにあります。

「車の5倍」の行のHardware、つまり計算に利用する装置の項目は、P100x8、とあります。P100はNVIDIA社のTESLA P100のことで、これはGPUと呼ばれる、画像処理向けプロセッサアーキテクチャを拡張して深層学習計算に対応した装置です。秋葉原ではあまり売ってないと思いますが、しかるべき窓口としかるべき取り引きをすれば普通に購入できます。次の行にはTPUv2とあります。これは深層学習などで多用される行列演算のためだけに作られた装置で、Googleが作ったものです。これは、Googleの中にしかありません。売ってくださいとGoogleにいっても売ってくれないと思います。

で、P100(x8、つまり8並列)による計算は27万時間、つまり31年かかるといっています。もちろん並列に探索できるので、たくさんのP100を用意して計算すればいいですね。例えば Preferred Networks は日本でたぶんいちばんたくさん、1024基のP100を使っています。1024基のP100を投入すればどれぐらいで計算が終わるかな? というと、90日ほどで終わることになります。じゃあP100を90日この計算のためだけに投入するか? って言われると、当然他の仕事もしたいのでそんなことはしません。

はい。ここにトリックがあります。

Section 2.1で、Strubell (この論文の著者) は以下のように書いています。

So et al. (2019) report that their full architecture search ran for a total of 979M training steps, and that their base model requires 10 hours to train for 300k step on one TPUv2 core. This equates to 32,623 hours of TPU or 274,120 hours on 8 P100 GPUs

面倒だからGoogleにぶんなげましょう。

そう他 (2019)彼らの完全なアーキテクチャ検索は合計979Mのトレーニングステップで実行され、ベースモデルは1つのTPUv2コアで300kステップのトレーニングに10時間かかることを報告しています。 これは、32,623時間のTPUまたは8 P100 GPUで274,120時間に相当します

そう他、は 人名の So を誤訳しただけでしょう。まあ、前半はいいとしましょう。ざっくり言うと、1回10時間かかることを 3263回ぐらい (合計979M=9億7千9百万ステップ を 300k=30万ステップで割る) くりかえした、ということがわかります。問題は次のステップ:

これは、32,623時間のTPUまたは8 P100 GPUで274,120時間に相当します
This equates to 32,623 hours of TPU or 274,120 hours on 8 P100 GPUs

まてどっからP100が出てくるんだよ! っていう話です。

この換算式も謎ですし、論文中に論拠が書かれていないようです。そもそもP100はこの用途には使われてすらいないです。

つまり、この論文のアイキャッチである「深層学習は車の5倍」の論拠は、効率の良い装置で実行した結果を、より効率の悪い装置で実行したとみなして、もし仮に効率の悪い装置でやったらどれだけのCO2排出量になるかを計算した結果です。しかもその効率の悪さに対する根拠がない。

実際にはこの論文の中心となる主張は、より効率の良い方法や装置を使うべきだし、研究者も環境負荷に対して自覚的であるべき、環境負荷を算出するに足るだけのエビデンス・データを論文に出すべき、というもののようで、それ自体は、まあそうですよね、という内容と思います*1。ただ、アイキャッチに使ったTable 1. とその算出根拠があまりに雑なわりにアイキャッチとして優秀だったがために、報道としては「誤報」と言えるレベルになってしまったのではないかなと思います。

本当、耳目を引くための誇張、嘘には気をつけましょう、みなさん。

*1:正直鼻につきますが...