iMacで機械学習を始めるためのTensorFLow 2.0環境構築
はじめに
OpenInterpreterをローカルに導入したものの、そもそも機械学習に対して全く知識がないので、インストールして次にどうすればいいのか方向性に悩んでいました。
OpenInterpreterについてやったことは以下の記事に詳しいです。
OpenInterpreterを調べている中で、HuggingFaceというAIコミュニティに出会いました。
HuggingFaceは今世界中で大注目されているAIコミュニティ
HuggingFaceというとてもキュートな名前でかわいい印象を受けました。
が、とんでもなくAIに対する熱量を感じました。
これはただものではないぞ。。。HuggingFaceについていかなければ。。。
という義務感とワクワク感が生まれてきました。
調べてみると、機械学習を始めるためには
クラウドかローカルで機械学習ができる環境を作って動かさなくはならないとのことでした。
今回はローカルで機械学習の環境を作っていこう!と考えました。
今回導入するPCスペック
ローカルで機械学習をするために何から始めたらいいの?
HuggingFaceを見てみると、機械学習を始めるにはPyTorchとTensorFlow2.0のどちらかを導入しなければ始まらないようです。
ちなみにPyTorchはMeta社が開発したもの、TensorFLow2.0はGoogle社が開発したものということが分かりました。
PyTorchは、コンピュータビジョンや自然言語処理で利用されているTorchを元に作られた、Pythonのオープンソースの機械学習ライブラリである。最初はFacebookの人工知能研究グループAI Research labにより開発された。(Wiki)
TensorFlowとは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリである。(Wiki)
どっちを導入しようか調べてたところ、TensorFlowの方が後ろで処理をしてくれることが多く、コードを書く量が少ないとのことだったので、心が折れないためにTensorFlowを導入してみることにしました。
TensorFlow2.0のインストール
以下のインストール手順を早速見てみましょう。
MacOSのGPUはTensorFLow公式サポート対象外
# There is currently no official GPU support for MacOS.
公式にMac0SのGPUがサポートされていなくて残念でしたが、今ある環境でも導入できそうなのでとにかくやってみることにしました。
ゆくゆくはWindowsにNVIDIAを乗っけてやってみたいなあと思っています。
コマンドは以下の2つだけでTensorFlowは導入できました。めっちゃ簡単です。
# There is currently no official GPU support for MacOS.
python3 -m pip install tensorflow
# Verify install:
python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
次に、HuggingFaceからTransformersを導入してみます。
Transformersは、APIとツールを提供し、最先端の事前学習済みモデルを簡単にダウンロードしてトレーニングすることができます。(HuggingFaceより)
簡単に機械学習を体験できるライブラリを使えるようにしてます。API大好き。
Transformerのインストール
TensorFlow用のライブラリがあったので今回はこちらをインストールしていきます。
私の場合はhugginfaceの説明だとうまく作動しなかったので、以下のようにpython3とコマンドを変えると動作しました。
python3 -m venv .env
あとは公式の説明に沿ってコマンドを打ってインストールを進めていくだけです!
導入できたら、最後にプレトレーニングされたモデルをダウンロードして、実際に動かしてみます。
% python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('we love you'))"
2023-09-23 01:17:04.582969: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
No model was supplied, defaulted to distilbert-base-uncased-finetuned-sst-2-english and revision af0f99b (https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english).
Using a pipeline without specifying a model name and revision in production is not recommended.
All PyTorch model weights were used when initializing TFDistilBertForSequenceClassification.
All the weights of TFDistilBertForSequenceClassification were initialized from the PyTorch model.
If your task is similar to the task the model of the checkpoint was trained on, you can already use TFDistilBertForSequenceClassification for predictions without further training.
[{'label': 'POSITIVE', 'score': 0.9998704195022583}]
以下の部分を見ると、'we love you'という入力の結果が出力されました!
[{'label': 'POSITIVE', 'score': 0.9998704195022583}]
まとめ
iMacでも機械学習の環境構築があっという間にできました。
画像処理などは時間がかかるかもしれませんが、
これから色んな機械学習をローカルで動かしていきたいと思います!
このスムーズ感、良き未来しか感じさせないですね!
これから機械学習についてどんどん発信していけたらと思っています。
Discussion