ChatGPTの登場に焦っている開発者のAI関連ブログ、第3弾記事です。
過去に いまさらながら『ゼロから作るDeep Learning』を読んだ でディープラーニングの基本をPython(NumPy)のコード演習も交え学びました。そしてゼロから作るDeep Learning ❷を読んで頭が爆発した… で自然言語処理を行える RNN (Recurrent neural network) を学びましたが頭が爆発してフンワリとした理解しか得られませんでした。その後YourTube等でフンワリ理解を進めてきました。
そして、今回 機械学習エンジニアのためのTransformers を購入して、読み始めました。皆さまご存じなように Transformer はChatGPTのベースになった機械学習モデルで、やっと最近のAIの入り口にたどり着きました。
Hugging Face Transformers実行環境
この書籍は、機械学習モデルやデータセットの共有プラットフォームHugging Face の開発者らが書いた本で、Hugging Face Transformers を使いTransformerを学んでいく行きます。
そこで、私のM2 Pro Mac miniにHugging Face Transformers環境を作ろうと、サンプルコードのGitHub を見てみると・・・
Note: You’ll need a GPU that supports NVIDIA’s CUDA Toolkit to build the environment. Currently, this means you cannot build locally on Apple silicon 😢.
と書かれていました。 機械学習は大量の数値計算が行われるので、GPUが必須です。MacにだってGPUは内蔵されていますが、機械学習で使われる TensorFlow や PyTorch などのフレームワークはNVIDIAの開発した CUDA プラットフォームに対応しているGPUのみしかサポートしていません。
しかし、なぜかAppleのGPUはCUDAをサポートしていません。😢 Macではダメか・・・ WindowsPCを買うか・・・ と思ったのですが、念のためネットを検索してみるとApple siliconで動かす記事がありました❗
Apple siliconでHugging Face Transformersを動かす
今回参考にし、成功したのは Huggingface Installation on Apple Silicon 2022 (M1/Pro/Max/Ultra/M2) です。
このページにはApple SiliconのMacにHugging Face Transformersをインストールする手順がStep 1から8までのステップで書かれていて、この通り実行すればインストールできます。
ここで行っているのは以下です、
- Apple Silicon用Pythonの実行環境とパッケージのインストール
- macOS、MacのGPUに最適化されたTensorFlowのインストール
- Transformers、その他パッケージのインストール
ただし気になったのは、
- Step 1でRustツールチェーンをインストールする際にRosetta 2を有効にする(インテルコードが動くようにする)よう書いてありますが、これは本当に必要なのでしょうか? 未確認です
- Step 2は既にインストールされているMiniforge3を削除する手順が書かれていますが、はじめてなら TO FRESHLY INSTALL MINIFORGE (My Recommendation for Silicon users) 以下を実行するだけです
本当にMacのGPUは動いているのか
この環境で機械学習エンジニアのためのTransformersの1章にあるサンプルコードが実行できましたが、本当にMacのGPUが使われているのでしょうか?
はい、ベンチマーク実行中はGPUが動いてます❗ いつもは冷たいMac miniも、ほんのり暖かになってます。😃
MacのGPUの性能はどんなものなのでしょうか
Qiita: AMD_GPUでTensorFlow benchmarksを行い深層学習性能のおおよその性能を検証する(仮)にあったベンチマークを、M2Pro Mac miniで実行してみました。
注意: 私はPythonやTensorFlow, GPUなどに詳しくないので、正しい比較になっているかの自信はありませんので、この結果は参考程度にみてください。
ベンチマーク名 | Radeon Vega FEの性能 | M2Pro Mac miniの性能 | 比率 |
---|---|---|---|
InceptionV3 | 86.99 | 25.19 | 0.29 |
ResNet50 | 155.38 | 43.18 | 0.28 |
ResNet150 | 63.02 | 18.75 | 0.3 |
ALexnet | 855.59 | 201.71 | 0.24 |
VGG16 | 93.35 | 17.75 | 0.19 |
Radeon Vega FE(Frontier Edition)の演算性能は13.1TFLOPs、M2Pro Mac miniのGPUの演算性能は5.68TFLOPs(*1)だそうです。
性能の比率は0.43ですので、上の比率0.2〜0.3なのは妥当なような気もします。
また、Radeon Vega FEは発売当時の価格は¥18万くらいだそうですので、M2Pro Mac miniのGPUは¥3〜5万ということになります。Mac miniの定価は¥18万なので、いい線いってると思います。😃
*1 : ネット上の情報ではM2ProのGPUの演算性能は理論値6.8TFLOPsと書かれています。これは19コアGPUの場合で、私のMac miniは16コアGPUなので単純に割り算して5.68TFLOPsとしました。
まとめ
Apple siliconでもHugging Face Transformersが動くので、安心して 機械学習エンジニアのためのTransformers が読めます。😃