グリーンAI:AIの持続可能性を向上させるための方法とソリューション

Green AI Methods and Solutions for Improving the Sustainability of AI.

長年待ち望まれていたトピックの技術的な見方

Photo by Benjamin Davies on Unsplash

はじめに

この記事を読んでいるあなたは、現在の大規模言語モデル(LLM)の安全性と信頼性に関する現在の論争について聞いたことがあるかもしれません。Steve Wozniak、Gary Marcus、Stuart Russelなど、コンピュータサイエンス界の有名人たちが署名した公開書簡では、彼らの懸念を示し、LLMの訓練を6か月間停止するよう求めています。しかし、もう1つのトピックがゆっくりと注目を集めており、近い将来別の公開書簡を促すかもしれません。それは、AIモデルの訓練と推論のエネルギー消費と炭素フットプリントです。

人気のあるGPT-3モデル、1750億個のパラメータを持つLLMの訓練だけでも、約502トンのCO2が放出されたと推定されています[1]。特定のモデルのトレーニングの排出量を推定するためのオンライン計算機さえあります。しかし、訓練ステップだけがエネルギーを消費するわけではありません。訓練後、推論フェーズ中、AIモデルは1日に何千回、何百万回と実行されます。各実行が少量のエネルギーを消費していても、週、月、年単位で蓄積された消費量は大きな問題となります。

このため、「グリーンAI」の概念がますます人気を集めています。その主な焦点は、エネルギー消費量と炭素フットプリントを減らし、AIの持続可能性を向上させる解決策と技術を見つけることです。この記事では、アクセスしやすい方法で通常議論されない、この概念を改善するためにアクティブに研究されているいくつかの技術と方法論の概要を示すことを目的としています。本記事の最後に、本記事で議論されたトピックに関連するリソースや参考文献があります。

この記事は、AIアルゴリズムを展開する際にエネルギーを節約するための技術的方法論に焦点を当てていますが、研究者でなくてもこれらの方法論を一般的に理解することは重要です。あなたの会社のAIアルゴリズムのトレーニングを担当する人ですか?訓練中にエネルギー消費量を改善するための最適化を考えてみることができます。あなたは、アルゴリズムを展開するためのハードウェアを選択する責任がある人ですか?この記事で言及された概念に注意を払うことができます。なぜなら、これらは最先端で最適化されたハードウェアの兆候である可能性があるからです。

コンピュータアーキテクチャの基礎

この記事を理解するためには、コンピュータアーキテクチャの基礎と、ソフトウェアとハードウェアがどのように相互作用するかを理解することが必要です。これは非常に複雑なトピックですが、記事の主要部分に入る前に簡単な要約を提供しようと思います。

おそらく、コンピュータ内の最も単純な情報単位であるビットと、デジタル世界の存在理由について聞いたことがあるでしょう。ビットは、0または1の2つの状態しか取ることができません。8ビットのグループはバイトと呼ばれます。本記事では、バイトを操作および格納する2つのハードウェアコンポーネントで任意のコンピュータアーキテクチャを考えることができます:演算ユニットとメモリ。

演算ユニットは、入力として複数のバイトを受け取り、出力として別のグループのバイトを生成することが責任を持っています。例えば、7×6を乗算する場合、7を表すバイトを乗算器の1つの入力に挿入し、6を表すバイトを他の入力に挿入します。乗算器の出力は、数値42を表すバイトを与え、乗算の結果となります。この乗算には、結果が乗算器の出力で利用可能になるまで、ある程度の時間とエネルギーが必要です。

メモリは、バイトを将来の使用のために格納する場所です。メモリからバイトを読み書きする(メモリにアクセスする)ことには時間とエネルギーがかかります。コンピュータアーキテクチャでは、メモリ階層に複数の「レベル」が通常あります。演算ユニットに近いほど、バイトの読み取りごとのエネルギー消費量が少なく、アクセス時間が速いメモリがあり、遠くにあるものほど最も遅く、エネルギー消費量が高いメモリがあります。メモリの階層的な組織の主なアイデアはデータ再利用です。非常に頻繁に使用されるデータは、最後のメモリレベルから最も近いメモリに持って来られ、可能な限り多く再利用されます。このコンセプトは「キャッシュ」と呼ばれ、これらのより速く、最も近いメモリはL1およびL2キャッシュと呼ばれます。

ソフトウェアは、データの移動をメモリから演算ユニットにオーケストレーションし、結果をメモリに格納する責任があります。そのため、ソフトウェアの決定はシステムのエネルギー消費に本当に影響を与える可能性があります。たとえば、ソフトウェアがL1キャッシュにないデータを要求した場合、ハードウェアは最初にL2レベルまたは最後のレベルからフェッチする必要があり、時間の遅れとより多くのエネルギー消費が発生します。

グリーンAIの技術

コンピュータアーキテクチャの基本が確立されたことにより、グリーンAIで使用される特定の技術や手法に焦点を当てることができます。これらは2つの異なるカテゴリに分類されます:

  1. 電圧/周波数スケーリングや近似計算などのハードウェア最適化。これらの技術は、電子回路の実際の物理的な設計と特性に対して機能します。
  2. 剪定、量子化、微調整などのソフトウェア最適化。

DVFS:動的電圧および周波数スケーリング

標準的なシリコンベースの電子回路の消費電力は、回路で使用される電圧と動作周波数に直接関連しています。同じ動作条件下では、これらのパラメーターのいずれかが低下すると、消費電力も低下します。AIアルゴリズムの実行をよりエコにするために、この振る舞いを利用することはできますか?

もちろん!バッテリーに接続された小さな埋め込みデバイスが複数のリクエストを受信し、各リクエストには独自の重要度と制約があり、AIアルゴリズムで処理してから結果を送信する場合、AIアルゴリズムの処理が可能な限り少ないエネルギーを消費するようにしたいと思います。バッテリーをできるだけ長く維持するためです。非常に重要でないタスクが到着したときには、デバイスの電圧と動作周波数を動的に変更し、重要なタスクを処理する必要があるときには通常の動作条件に戻すことができますか?

AIアルゴリズムを実行するデバイスによっては、これは完全に妥当なオプションです。実際、これは活発な研究分野です。「AutoScale: Energy Efficiency Optimization for Stochastic Edge Inference Using Reinforcement Learning」by Kim [2]や「Multi-Agent Collaborative Inference Via DNN Decoupling: Intermediate Feature Compression and Edge Learning」by Hao [3]を参考にすることをお勧めします。これらは、この技術がAIアルゴリズムのエネルギー消費を削減するためにどのように使用できるかの良い例を提供しています。

近似計算

CPUやGPUで数学的な演算を実行する場合、通常は要求された計算の正確な結果を期待することが多いですよね?これは、消費者向けのハードウェアを使用する場合の通常のケースです。AIアルゴリズムで最も使用される数学的操作の1つである乗算については、2つの整数を乗算する場合には正確な結果が得られることを期待し、2つの浮動小数点数を乗算する場合には非常に良い近似値が得られることを期待します(この近似値は通常、基本的なユーザープログラムでは問題になりません)。2つの整数を挿入して正しい数学的結果を得られない可能性があることを考慮する必要があるのはなぜでしょうか?

しかし、近年、新しいアプローチが積極的に研究されています。問題は単純です。正確性を犠牲にして、物理的面積とエネルギーをより少なく消費するより単純な乗算器を設計する方法があるでしょうか?しかし、より重要なことは、これらの新しい乗算器を、パフォーマンスに大きな影響を与えずに実際のアプリケーションで使用できるかどうかです。これらの質問に対する答えは、実際にはイエスです。これは、近似計算として知られるコンピューティングパラダイムです。

これはまったく魅力的です!すでに、2つの整数の乗算の正確な結果を提供できる近似乗算器があり、入力の組み合わせが少ない場合にのみ誤った結果を提供しますが、モデル全体の実行においてエネルギー削減を20%程度実現できます。この素晴らしい技術に興味がある場合は、「Approximate Computing for ML: State-of-the-art, Challenges and Visions」by Zervakis [4]を参照することをお勧めします。これは、このトピックに焦点を当てた特定の作品の良い概要を提供しています。

剪定と量子化

AIアルゴリズムのトレーニングに精通している人々、特にニューラルネットワークに慣れている人々にとって、これら2つの技術は馴染みがあるはずです。これらの用語に慣れていない人々にとっては、これらの概念を読む価値があります。

剪定は、ニューラルネットワークのパラメータには、ネットワークの知識を含むものが多数含まれているため、ネットワークの予測に害を与えることなく削除できるものが多数あるという考えに基づく方法です。

量子化とは、ネットワークのパラメータを少ないバイト数で表現することを意味します。コンピュータが数値を表現する方法について説明しましたよね?通常、ネットワークは「浮動小数点数」を使用してトレーニングされ、各数値は4または8バイトの長さになります。しかし、これらのパラメータを「整数」表現を使用して1バイトだけで表現する技術があり、同じ予測品質を維持することができます。

これらの2つの技術が、ニューラルネットワークのエネルギー消費を減らすのにどのように役立つかを想像していることでしょう。剪定の場合、1つの入力を処理するために必要なパラメータが少なくなるため、アルゴリズムのエネルギー消費を改善する2つのことが起こります。まず、計算ユニットで実行する必要がある演算が減少します。 2番目に、実行する必要がある演算が少なくなるため、メモリから読み取るデータが少なくなります。量子化の場合、1バイトだけを使用して表される2つの数値を乗算する場合、はるかに小さく単純なハードウェア乗算器が必要になります。このため、実際の乗算に必要なエネルギーが少なくなります。最後に、各パラメータのサイズが8バイトから1バイトに減少すると、1つの入力を処理するために必要なエネルギー消費も8倍小さくなるため、大幅に削減されます。

もっと詳しく知りたいですか?最新の研究については、Zhi氏による「Lightweight Parameter Pruning for Energy-Efficient Deep Learning: A Binarized Gating Module Approach」[5]、Widmann氏による「Pruning for Power: Optimizing Energy Efficiency in IoT with Neural Network Pruning」[6]などをご覧ください。

ファインチューニング

最新のLLMの多くが閉じられた形式であるため、これらのモデルの結果を再現するためにかなりのコンピュータパワーが使用されています。これらのモデルを一般に公開すれば、ファインチューニングと呼ばれる技術を適用できます。これは、事前にトレーニングされたモデルの一部のパラメーターのみを変更して、特定のタスクにネットワークを特化させるトレーニング手順です。このプロセスには通常、トレーニングイテレーションが少なく、ゼロからネットワーク全体を再トレーニングするよりも少ないエネルギーを消費します。

これが、これらのモデルを一般に公開することが、それらを使用して製品を構築しようとしている人々だけでなく、ゼロから再トレーニングして多くのエネルギーを消費している研究者にとっても役立つ理由です。

結論

これらの技術や手法が私にとって魅力的であるように、あなたにとっても同様に魅力的だと願っています。エネルギーの節約と炭素フットプリントという重要なトピックについて積極的に研究して改良しようとする人々がいることは、安心感があります。

しかし、研究者たちに最適化された解決策を見つける責任を譲るわけにはいきません。新しいプロジェクトを開始していますか?まず、事前にトレーニングされたモデルをファインチューニングできるかどうか確認してください。プルーニングアルゴリズムを実行するために最適化されたハードウェアを持っていますが、この技術を効率的に適用するための専門知識がない場合は、時間をかけて学習するか、スキルをすでに持っている人を見つけてください。長期的には、あなたとあなたの会社だけでなく、地球全体のために価値があるでしょう。

この記事についてのご意見をTwitterやLinkedInでフォローしていただくか、私にコーヒーを買っていただける場合は、お知らせください!

読んでくれてありがとう!

参考文献

[1]「BLOOM、176Bパラメーターランゲージモデルの炭素フットプリントの推定」

[2]「AutoScale:強化学習を使用した確率的エッジ推論のエネルギー効率最適化」

[3]「DNN Decouplingを介したマルチエージェントコラボレーティブ推論:中間フィーチャー圧縮とエッジ学習」

[4]「MLのための近似計算:最新の状況、課題、ビジョン」

[5]「Lightweight Parameter Pruning for Energy-Efficient Deep Learning: A Binarized Gating Module Approach」

[6]「Pruning for Power: Optimizing Energy Efficiency in IoT with Neural Network Pruning」

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more