AIの技術が普及してきて、私たちの身近でも使われていることに気がつくこともあるのではないでしょうか。AI活用で重要なコンピューター利用方法のひとつに「クラスター」があります。大学に入って研究するときにクラスターを駆使して、AIを活用したり大規模な分析をすることもあるはずです。今回はクラスター、およびクラウドサービスとしてのクラスター活用について解説します。
コンピューター計算の高速化がもたらす恩恵は多大
AIの技術自体は古くから確立されていましたが、本格的な活用が積極的になったのは、コンピューターの計算速度が飛躍的に高速になったためです。AIでは、事前に機械学習と呼ばれる膨大なデータ量の計算を行い、AIに学習させます。さらに特定の結果を得るために与えたデータでもかなりの量の計算が行われます。
例えば、最近話題の絵やイラストを描いてくれる「Midjourney」や「StableDiffusion」などのAIは、あらかじめ膨大な数の画像と文字列を読み込ませて計算してAIの頭脳となる「AIモデル」を作っています。このAIモデルに対してキーワードを入力すると、AIがキーワードにも度づいて計算して画像を出力してくれるという仕組みになっています。
このようにAIモデルの作成と絵の生成、そのどちらにも高速な計算処理が必要となるのです。そのためにはコンピューターに高い計算処理能力が求められるのです。
<画像を作ってくれる人工知能「Midjourney」に、いろんな無茶振りしてみた>
コンピューター計算は並列処理をさせ驚くほど進化している
コンピューターでは主にCPUやGPUという部品で計算を行います。CPUやGPUの性能は動作周波数(この周波数によって1秒間に処理する回数が決まる)やFLOPS(1秒間に実行できる浮動小数点演算の回数)によって左右されます。この動作周波数やFLOPSは30年前に比べると相当上がっています。
例えば、代表的な個人向けパソコン用CPUのIntel製「Pentium」は、1993年に販売されたモデルの動作周波数は300メガHz、FLOPSは300メガでした。それから約30年たった2022年の「Core i9(12900)」では動作周波数は5.2ギガHzに、FLOPSは1.18テラ(ターボ時)まで向上しています。
クラウドで使われるようなコンピューターの性能の考え方は、私たちが使うパソコンと厳密には異なりますが、約30年間の進化で驚くほど高速な計算が行えるようになってきているといえます。
CPUのコア数を増やすことで、1台1台の性能をアップ
1台のコンピューターの中では、CPUやGPUという演算装置があり、そこで計算が処理されています。もっと正確に説明すると、CPUやGPUの中にある「コア」と呼ばれる演算回路があり、コアごとに計算処理されているのです。
そして1個のCPUの内部に複数のコアを組み込むことで、コンピューターの性能を上げる技術があります。前述の初代Pentiumでは1コアでした。これが2022年のCore i9では16コアも搭載されています。このように1台のコンピューター内でも、コアを増やして計算を並列処理し、性能アップを図っています。
さらに計算を高速化させるクラスターの技術
1台のコンピューターの内部で複数のコアを並列処理させるのではなく、いくつものコンピューターをネットワークでつなぎ、連携させながら稼働させる(並列処理)ことで性能アップを図るのがクラスターという技術です。複数のコンピューターが、ひとつの高性能なコンピューターであるかのようにふるまうシステムとイメージすると良いでしょう。
もちろん高速な1台のコンピューターを使っても良いのですが、クラスターは、ほどほどの性能のコンピューターをたくさんつなげて使ったほうが、高速に計算処理させることができるという考え方です。もちろん高性能なコンピューターをたくさん使ってクラスターを作れば、ほどほどの性能のコンピューターのクラスターより高速に処理できます。
現在スーパーコンピューターも、このクラスターの考え方を使っています。クラスター上では1台の機器は「ノード」と呼ばれますが、日本で2021年から稼働開始したスーパーコンピューター「富岳」では158976ノードも使われています。
クラスターでは、ノードの数を増やしたり、搭載されるCPUやGPUの処理能力が上がると、計算能力も上がっていきます。このクラスターがAIモデルを作る機械学習でも活躍しているのです。
<スーパーコンピュータ「富岳」の力が未来を引き寄せる>
クラウドでクラスターを使った計算が誰にでも簡単に
たくさんのコンピューターを使うクラスターは、設置スペースや排熱処理を考えても、研究室や自宅に誰でも簡単に持てるという手軽さはありません。AIの研究者で自前のクラスターを作っているケースもあるでしょうが、クラスターを個人で所有することは多くの人にはハードルの高いものです。
そこで現在では、クラウドのサービスとして手軽にクラスターを活用するという方法が主流になっています。つまり、自分でクラスターを作らなくても、クラウド上にあるクラスターをサービスとして利用できるというわけです。
クラウドサービスというと、インターネット上で利用できるディスクやメールなどのアプリをイメージするかもしれませんが、クラスターの場合は使いたい計算量に応じてハードウエアを選び利用するタイプのサービスとして提供されています。実際の活用には、クラスターの知識が必要になりますが、CPUやメモリ、ディスク、OS、場合によってはGPUを追加して起動するノードのマシンを構成し、複数起動してクラスターを構成します。
クラウドでは画面操作だけでクラスターを使える
クラスターのクラウドサービスは、インターネット回線を通してアクセスすれば、画面から構成を選択するだけで利用できるので、とても手軽に利用できます。料金は選択したマシンのスペックや使用する時間などで細かく算出されます。高速なマシン構成にして、大量の計算を行うと高額になりますが、利用時間を限定したりクラスターの規模を最適化するなどしてコストを下げられます。
いずれにしても自前で実機を用意するよりも、不要になったら削除するだけで済みますし、計算が追いつかないときには、ノードを増やしていくだけですので圧倒的に簡単です。このコントロールを自動で行ってくれる機能を持っている場合もあります。下記の動画は英語の解説ですが、内容を深く理解する必要はありません。クラウドサービスの画面操作だけで、10分程度でクラスターを使えるようにセッティングできることが分かると思います。
<GKE cluster (demo)/Google Cloud Tech>
クラウドサービスには学生でも参加できるセッションも用意されることも
なお、一般ユーザーが有料のクラウドサービスを契約するにはクレジットカードを使うのが一般的です。しかし、学生を対象に、クレジットカード登録をせずにクラウドの使い方の学習をできるサービスが提供されていることもあります。
例えば、Amazonのクラウドサービスの「Amazon Web Services(AWS)」では「AWS Educate」という教育プログラムが提供されていて、テクニックを習得できます。クラスターの運用を学ぶには、より高度な学習コースを選択することになりますが、クラウドサービスの基礎に触れるには十分です。
実際にAWSでクラスターを運用するにはいくつかの方法があるのですが、「Amazon Elastic Compute Cloud(EC2)」と呼ぶ機能でマシンを準備(インスタンスと呼びます)することができ、「Kubernetes」と呼ばれる汎用(はんよう)のクラスターをコントロールするツールを使ってクラスター構成を構築可能です。これらは「Amazon Elastic Kubernetes Service(EKS)」と呼ばれています。
・AWS Educate
https://aws.amazon.com/jp/education/awseducate/
<AWS Educate でクラウドジャーニーを始めましょう/AWS>
また、企業向けではありますが、スーパーコンピューター「富岳」も「富岳クラウドプラットフォーム」というサービス名で、クラウドサービスとして利用できるようにするために実証実験中です。
<CEATEC2020 富岳クラウドプラットフォーム>
このようなクラスター構築を含めて、高度な計算処理がクラウドサービスで誰でも手軽に行えるようになったことが、最近のAIの活用を後押ししていることは間違いありません。Society 5.0では、ビッグデータをAIで解析し、リアルな生活に恩恵をもたらすことを目指しています。まさにこれに必要不可欠な技術といえるでしょう。
もちろん、クラウドサービスを利用するのではなく、自分でコンピューターをつないでクラスターを構築することも大いにスキルアップに役立ちます。記事内で触れた、“ほどほどの性能のコンピューターをたくさんつなげて計算処理速度を上げる”という手法は、一般の学生などでも取り組みやすく、実際に試してみるのにも好都合です。
渋幕(渋谷教育学園幕張中学・高校)の高校生が廃棄パソコン50台を使ってクラスターを製作したというニュースも、一時話題になりました。仕組みを学ぶだけであれば、Raspberry Piなどの安価なワンボードコンピューターを多数集めて作ってみることもできます。
・廃棄PCからスパコン製作 渋幕が育んだ東大の異才
https://style.nikkei.com/article/DGXZQOLM224YG0S2A820C2000000/
<World’s Largest Raspberry Pi Cluster>
「クラスター」の技術が学べる学部学科
クラスターは、コンピューターの分散処理システムの一種です。理工学系、情報処理、コンピュータサイエンスといった、コンピューターやAI、データ処理について学べる学部を選ぶと良いでしょう。
大学でスーパーコンピューターを導入している例も多数あります。
例えば、筑波大学 計算科学研究センターでは「Cygnus」というスーパーコンピューターを導入しています。
https://www.ccs.tsukuba.ac.jp/supercomputer/
<Cygnus/筑波大学計算科学研究センター>
ほかにも、九州大学、京都大学、信州大学、兵庫県立大学、北海道大学、千葉大学、大阪大学、広島大学、早稲田大学、東京大学、東京工業大学、東北大学、横浜市立大学、神戸大学、近畿大学(順不同)などにスーパーコンピューターが導入されています。こういった大学を目指すと、遠くにあって直接触れることのできないクラウドサービスではなく、クラスターを構成するシステムにじかに触れて学べるはずです。