M1 MacbookPro「M1チップ対応」機械学習パフォーマンス比較

速度比較

 M1 MacbookPro を購入した理由の一つでもある、機械学習(人工知能)のパフォーマンスを、他のプラットフォームとの比較から検証しました。今回、Tensorflow/keras フレームワークを用いて作成したプログラムを、さまざまなプラットフォームで実行し計算時間を計測しました。

まずは、結論です。
 私自身も驚くような素晴らしい結果がでました。詳細は、この後の記事をご覧ください。また、細かい技術的な点は、本ブログの投稿記事を参照してください。

 前回の速度比較のとき、思ったような結果にならず、正直、失望していました。しかし、その原因は、M1チップのパフォーマンスを引き出せていないことにありました。今回はその対応を行い再度計測しました。

 なお、今回の機械学習では、「Fashion MNIST」(洋服の画像データセット)を用いました。

対象プラットフォーム

 以下に示すプラットフォームについて、計測を行いました。

NoプラットフォームOSコンピュータ・スペック価 格
1GK41 Mini PCUbuntsu 20.04Celeron j4125 M:8GB S:128GB2万
2HP Tablet PCWindows10 Pro Edu.Cerelon N4020 M:4GB S:64GB5万
3Fujitsu Note PCWindows10 ProCore i5-3320M M: 8GB S:240GB5万
4M1 Macbook ProBigSur 11.4Apple M1 M:16GB S:256GB14万
*Xavier NX AI computerUbuntsu 18.04Nvidia Arm M:8GB S:500GB7万
*Google ColaboratoryGoogle TPU (Cloud Service)無料
※No2 は借用品です。 ※ No3 は中古購入品です。

 コンピュータ・スペックの、Mはメモリーを、SはSSD の容量を表しています。

 ご覧の通り、全体として低価格なものを対象(単に購入できないだけです[笑い])としています。もっと高価なコンピュータと比較することもできますが、なかなか30〜40万円を趣味で出すのは厳しいです。

 また、一般的に高価格帯のパソコンは、性能も向上しますが、コスパは決してよくありません。しかし、今回、M1 MacbookPro は、一般の人が購入できる価格帯でありながら、最高のパフォーマンスを発揮しました。この後の結果をご覧ください。

学習環境とプログラム

 今回の学習は、全てのプラットフォームにおいて、フレームワークTensorflow/Keras を用いて記述された、同一のプログラムを実行します。環境の細かな違いは、以下の表に示します。Tensorflow/Keras を動作させる環境構築は、思った以上に困難の連続でした。

NoプラットフォームTensorflowKerasPythonpipcondavirtual
1GK41 Mini PC2.4.12.4.03.8.521.2.24.10.3anaconda
2HP Tablet PC2.5.02.5.03.8.521.2.34.9.2anaconda
3Fujitsu Note PC2.5.02.5.03.8.521.2.24.9.2anaconda
4M1 Macbook Pro2.4.0-rc02.4.03.8.221.2.34.10.3venv
*Xavier NX AI computer2.1.02.2.4-tf3.6.921.2.3nonenone
*Google Colaboratory2.5.02.5.03.7.1121.1.3none???

 以下が、実行したプログラムになります。プログラムの解説は控えますので、興味のある方は、プログラム内のコメントを参考にしてください。

 学習データには、「Fashion MNIST」という、ファッションの画像データ(28×28ピクセル、256階調)60000枚と、各画像の分類データ(10カテゴリ)を用いて、画像認識のための機械学習を行いました。作業としては、訓練・評価・検証などを行っています。

 また、プログラミング言語は Python ですが、TensorflowKeras などのライブラリを用いているので、非常に簡潔に記述できています。ちなみに、Python だけで記述すると、凄い行数のプログラムになります(笑い)。

 今回掲載している PDF の画面は、Jupyter Lab(Jupyter Notebook)という開発ツールを使用しています。これは、実行するプログラムと共に実行結果を表示できるので、とても便利なツールです。また、インターラクティブ(対話的)に開発が進められるので、デバッグなどがしやすいです。

実行結果

 各プラットフォームでの実行時間を、下記の表に示します。今回は、時間が無かったこともあり、1回だけの計測結果です。通常は、複数回実施した平均を表示しますが、ご容赦ください。従って、ある程度の誤差を含んでいると思います。

Noプラットフォーム時間速度比率比較コスト備考
1GK41 Mini PC5.714.028
2HP Tablet PC4.010.050
3 Fujitsu Note PC 3.07.538
4M1 Macbook Pro0.41.014
*Xavier NX AI computer0.20.54
*Google Colaboratory2.05.0無料

※ 表示された値について

 時間は、1回の学習に要した計算時間[ミリ秒]です。速度比率は、Macbook Pro の計算時間を1としたとき、他が何倍になるかを表しています。比較コストは、価格に速度比率を掛けたものです。つまり、MacBook Pro と同じ性能を手に入れるために必要なコスト(単純な比率として)を表しています。

【感想】

 ご覧になれば分かるように、M1 Macbook Pro のパフォーマンスは本当に素晴らしいものでした。しかも、今回は、絶対的なパフォーマンスはもちろん、コスト・パフォーマンスでも、十分に納得のいくものでした。今後も、M1 Macbook Pro の能力を、更に引き出す努力を続けたいと思います

【今後】

 本当に嬉しい結果になり、大満足です。しかし、課題も見えてきました。少々専門的な話になります。前回の投稿記事『M1 MacbookPro「M1チップ対応」Python開発環境の構築』の中で、用途に合わせた、様々な環境構築の方法を示しました。

 しかし、これらのやり方では、問題が起こる可能性があると分かりました。具体的には、2つ以上の作業を同時にやろうとすると、問題が起きる可能性があります。

 具体的には、「Tensorflow や Keras」を使用する環境と、「Numpy、Pandas、Matplotlib」を使用する環境を、同時に使うことは難しいです。理由は、それぞれの環境において、使われるライブラリのバージョンが異なるからです。現時点では、残念ながら解決できていません。今後、対応方法を探したいと思います

出力結果(Google Colaboratory)

 参考のために、「Google Colaboratory」で実行した結果(5Epoch ですが、学習の様子も含めて)を示します。ちなみに、 Google Colaboratory は、Jupyter Lab 上での動作に限定されます。

コメント

タイトルとURLをコピーしました