近年盛んな人工知能研究やビッグデータの解析。一般の人にも広く話題になった例では DeepMind 社 の開発した AlphaGo Zero が挙げられると思います。
人工知能というと、そのプログラムやデータセットの方に目がいってしまいがちですが、AlphaGo Zeroの場合 Google の計算資源の凄さにも注目が集まりました。下記のツイートにあります GTX 1080 x 2 というのは個人としてはほぼ最上位の構成になります。
ちなみに、AlphaGo の論文を元に書かれたソースコードが Github に置かれています。Google の Cloud TPU などで実行して見るのが良いのではないでしょうか?
もともと検索エンジンサービスなどソフトウェア寄りの会社だった Google ですが、現在では TPU をはじめとしたハードウェア開発にも乗り出しています。やはり、ビッグデータの解析をやっていく上ではハードウェアの自前での開発は避けて通れないものなのでしょうか?
…と思っていたら、先々週の Nature に同様の記事がありました。簡単に紹介したいと思います。
“Big data needs a hardware revolution”
Nature 554, 145-146 (2018)
DOI: 10.1038/d41586-018-01683-1
記事(和訳)
コンピュータテクノロジーの進歩では、ソフトウェアに注目しがちな傾向があります。例えば、人の健康状態や生態系を追跡することのできるアプリや、ビッグデータの解析を可能とするプログラム、囲碁で人間のチャンピオンを打ち負かすことができるプログラムなどです。一方、その革新の基礎となるハードウェアに徹底的な変更を導入しようとする努力には、あまり注目が集まっていません。
今年の初め、半導体の将来を創造していくための産学官連合組織である Semiconductor Research Corporation(SRC)は、6つの新しい大学センターを発表しました。 ソフトウェア大手の Googleが人工知能(AI)に関するハードウェア研究に手を広げているのを見て、主要なチップメーカーはその領域を再開拓しようとしています。彼らの行動から見てもわかる通り、これはコンピューターの誕生以来、おそらくアーキテクチャーの最初の大きな転換であったことは間違いありません。
天文学や粒子物理から神経科学、ゲノミクス、創薬などの分野の研究は、AI を使って膨大なデータセットの傾向を分析し、新しい発見をしたいと考えています。しかし、これはこれまでのコンピュータハードウェアでは不十分です。従来のフォンノイマン型アーキテクチャは、コンピュータ内のデータ記憶ユニットをデータ処理ユニットとは別に持ちます。それらの間での情報のやりとりには時間がかかるため、パフォーマンスのボトルネックとなってしまいます。
AI 技術を利用するために、ハードウェアエンジニアはフォンノイマンの設計の制約を超えたコンピュータの構築を目指しています。これは大きな前進です。 Gordon Moore の予測によれば、チップ上のトランジスタの数が 2 年におよそ 2 倍になるとの予測に基づいて、コンポーネントのサイズを縮小することで、コンピューティングの進歩が数十年の間進んでいます。
現代のコンピュータは、パンチカードを使用して情報を保存し、計算を実行するための機械式リレーを使用する初期のマシンと大きく異なっています。集積回路にはトランジスタが内蔵されているため、1 億個以上のトランジスタがピンの頭に収まるようになりました。しかし、メモリと処理を別々にするという基本的な設計が残っているため、達成できるものには限界があります。
1つの解決策は、メモリと処理ユニットとを融合させることですが、メモリユニット内で計算タスクを実行することは、大きな技術的チャレンジです。
Google の AlphaGo 研究は、こうした課題に対して可能性のある異なる方法を示しています。同社は TPU と呼ばれる新しいハードウェアを製作しており、より多くの演算を同時に実行できるアーキテクチャを採用しています(参考文献 1)。並列処理に対するこのアプローチは、計算速度とエネルギー効率を大幅に向上させます。そして、正確でエラーのない計算を厳密に実行する必要性を緩和する設計〜近似計算〜で、これらの利点をさらに高めることができます。
その結果、AlphaGo などの AI プログラムの消費電力量が大幅に向上しました。しかし、このようなハードウェアのエネルギー効率を高めることは、AI が広くアクセス可能になるために不可欠です。
人間の脳はエネルギー効率の高いプロセッサーなので、ハードウェア開発者にとってはそれを模倣しようとするのは当然です。Neuromorphic Computing と呼ばれる手法では、生物学的な神経系におけるコミュニケーションと処理をシミュレートしようとする技術を使って、これを行うことを目指しています。いくつかの Neuromorphic Systems では、パターン認識などのタスクでニューロンの集合を再現する能力を既に実証している。
これらは研究の第一歩であり、現在 SRC はハードウェアのさらなる進化を促しています。SRC は共同大学の Microelectronics Program の下で、ハードウェア・アーキテクチャーの開発に静かに注力しています。例えば、インディアナ州ウェストラファイエットのパデュー大学の新しいセンターでは、ニューロモルフィックコンピューティングを研究し、シャーロッツビルのバージニア大学では、コンピュータメモリを余分な処理能力で活用する方法を開発する予定です。
この技術的に達成すべきことは膨大です。そのため米国中心である SRC がその扉を開くのを見て嬉しいです。韓国企業サムスンも、2017 年後半にここに加わりました。過去二年間で参加した外国企業としては 5 番目です。これはコラボレーションとして歓迎すべきことです。しかし、商用ライバルはこのように協力して、新しいハードウェアシステムを開発することが業界にとってどれほど技術的に難しいかを訴えています。
Nature は、このような研究の発展を楽しみにしているそうです。ニューロモルフィックチップのコンポーネントやメモリ内処理のような、フォンノイマン以外のコンピューティングアーキテクチャを可能にする論文を歓迎するそうです。また、多くの分野の科学者が、新しく見つかったデータをすべて探し出すのに十分強力なコンピュータを待ち望んでいます。
感想
機械学習の論文を読んでいるとわかりますが、アルゴリズム自体は何十年も前に考案されています。例えば、ニューラルネットワークでは、活性化関数、損失関数、誤差伝搬法など細部の変更は別として、コンセプト自体は半世紀以上も前に報告されています。近年、なぜこれらの技術に再度注目が集っているかといえば、GPU の驚異的な進化のおかげです。
AlphaGo の例をはじめとして、機械学習、深層学習はソースコードがネット上で公開されているものも多いです。最近ではフレームワーク、ライブラリも充実してきたので、本当に短いコードで深層学習を実行することが可能です。そのため、大事なのは学習に用いるデータセットの準備と実行するための計算資源になります。Google は機械学習などの計算では GPU を優に上回る TPU (Tensor Processing Unit) を開発してこれを可能にしました。
しかし、ハードウェアの進歩が重要と言っても、一般の人は身近に感じることができません。また、趣味で機会学習を楽しんでいる人は GPU に何万円もかけられません。
何か良いクラウドサービスないかなぁと思っていたら、Google が Cloud TPU のサービスを始めたという記事を見つけました(参考文献 2)。価格も 1 時間あたり 6.5 ドルといい感じです。各 Cloud TPU には、4 基のカスタムASICと 64 GB の HBM (GDDR5後継メモリ)が搭載され、最大 180 TFLOPS の計算が可能だそうです。個人で購入することが可能な最上位モデル GTX1080 Ti でメモリが 11 GB、単精度浮動小数点数演算性能 10.61 TFLOPS であることを考慮すると、Cloud TPU はかなりお得そうです。
ハードウェアの進歩と共に、ビッグデータの解析がこの先どんどん進んで行き、面白い発見が次々に起こることを期待しています。
記事中に間違い等ある場合は、コメント欄、twitter またはメールにてお知らせいただけると幸いです。
参考文献
- Google、180TFLOPSの第2世代機械学習チップ「TPU」
- Google、クラウド上で機械学習専用ASICを使える「Cloud TPU」のベータ提供開始
- Googleが第2世代TPUを発表、処理性能は180TFLOPS (1/2)
- TSV技術で積層するGDDR5後継メモリ「HBM」の詳細
関連記事
- ニューラルネットワークを利用した粗視化シミュレーション コンフォメーション探索
- AI を用いた創薬研究
- 正宗・Bergman 環化の計算化学【エンジイン】
- GTX1080 Ti 2 枚挿し + Threadripper 1950x in Thermaltake core x9
- M06 / M06-2X
- revM06-L が発表されました。
- ドナルド・トゥルーラーDonald G. Truhlar
- Threadripper 並列化効率改善?【gaussian16】
- Threadripper Gaussian16 ベンチマーク
- IRC 計算がうまくいかない時
- スピン状態依存的な光環化反応の計算
- 【Gaussian 16】デスクトップ PC で並列計算する際の注意点【Hyperthreading】
- スパコンランキング発表!日本はGREEN500上位独占!【2017年6月】
- 自作 PC を作ってみた!【OS 編】