SSブログ

macで機械学習はできるか? [MacOSX]

macでAIというか機械学習はできるかという話です。ArmMacにはNPUも付いているのだから、Xcode入れれば使えるんだろ、と思っていたら一応使えるようです。NVIDIAのGPUもWindowsもなくても機械学習ができるってよ。どんだけできるかはこれから分かるとして、とりあえずやってみよう。

https://developer.apple.com/jp/machine-learning/core-ml/

 

まずはムービーを見てみる。
https://developer.apple.com/videos/ml-vision/

https://developer.apple.com/videos/play/wwdc2019/430/
この頃は2019年でまだMシリーズCPUが出ていないので、GPUで処理していると出ている。IntelマシンでAMDのGPUということだろう。この頃の機械学習は生成方面ではなく、識別とか予想が主らしい。もちろんNeural Engineの言及はない。それと講演での学習の処理が早すぎるのは、それ用に用意しているからだろうが実際にどのくらいかかるのかはわからない。そもそもどの程度のGPUで操作しているのかもわからないし。

2019年のものは基本的なことは言っているかもしれないけど、情報がやや古いので見る必要は薄いかもしれない。CoreML3は差分だけ学習できるので、オフラインというかデバイス上で完結してサーバに上げなくていいとかそういうことでした。使える機械学習の種類が増えているというようなことも挙げていたが、特に自分で構築しなくても学習済みデータもあるっぽい。学習する時も差分的にできるので、フルフルで学習させなくても良かったりで機械学習的なエコシステムとしては良く出来ているのかなと。

今年まで遡るのが面倒なので、今年のWWDCのムービーを見てみる。あ〜個別の説明になっていて、あまりオーバービューな感じのものがありませんね。もう少し、全体がわかるものを探してみましょうか。


あ、Core MLはCPUとGPUとNeural Engineを適宜使うみたいなこと言ってるね。
https://developer.apple.com/videos/play/wwdc2022/10027/
使うのはNeural Engineだけじゃなくて、GPUも今まで通り使うみたい。まぁ外部GPUを使うよりかは同じSoCの中のGPUを使うのはコストが少なくていいのかもな。

というか、GPGPUでやった時にメインメモリからGPUのメモリに送り込む時間がバカにならなかったので、同じRAM上でぐちゃぐちゃやれるのはかなりメリットになっているとは思う。とはいえ、昔スピンアウトしたOpenCLがモノになってなさそうなので、やってるよと言われても実際に速度が出ないことには信用は置けない。GPUの高価なメモリを使うよりか、macのメモリを使ったほうがコスト的にはいいのだろうとは思うのだけれど、mac自体が安いわけではないのでどうにも言えない。


よくmacはWindows向けのソフトに比べて機械学習が遅れているみたいな話を聞く。それはNVIDIAのGPUが使えないからであり、そのNVIDIAのようにCUDAみたいなハードウェアを思う様触れる手段を提供していないからだと思われる。iOSなどを含めたエコシステム的には良くても、PC単体での利用はAppleのCore MLに縛られているということなんだろう。

詳しく見ていないんだけど、低レベルなAPIを提供してそうなものがあった。
https://ledge.ai/articles/apple_released_mlx
https://ml-explore.github.io/mlx/build/html/index.html
Core MLがあるから、別に作るという事はハードウェアに近いものなのかもな。でも見たところCUDAレベルの低レベルな演算を提供している感じはしない。それでは新しい生成AIは育たないし、そういう意味ではmacで生成AIを作ったり使ったりするのには支障が出るだろう。どちらにしても、そこまで手を入れられるほどの知識も技術もない。何かOSSを移植することくらいのことはできるのかもしれないが、それをするくらいなら実用的にAIを使うところから始めたい気はする。

ちょっとM2 MacでCore MLをかじってみて面白そうだったら続けてみよう。ここで手を動かしてみようと思ったがそこまで行けなかった。正月休みにちょっとやってみよう。すぐに飽きそうだけど、それはそれでいい。下手にはまった方が後々辛くなるかもしれないし。

タグ:機械学習
コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0