Microsoftの小規模言語モデル(SLM)をJetson Xavier NX でやってみる


Colab でもいけるMicrosoftのSLM Phi2 を、ものは試しで、NVIDIA のJetson Xavier NX でやってみました。以下のようなシングルボードコンピュータです。

 

 

 

 

 

 

 

 

 

 

質問形式のプロンプトで、回答を得るのに4時間ほどかかりました。

現時点(2024/01/22)では全く実用になりませんが、生成AIがエッジに実装されるのはもう間もなくかな……という感触は得られます。

注:Macbook Proで動かした方のブログでは、Apple M1 程度ならパフォーマンス的には問題なかったようです。

 


やってみます。

JetPack は5.1.2を使います。

MicroSDカードは64GB程度を準備。

SDにイメージを焼いて、Xavier NX を起動し環境を整備しておきます。

まず、Pytorchが使えるドッカーコンテナにPhi-2環境を作ります。

ドッカーイメージをダウンロードします。

以下のイメージのpythonのバージョンは3.8.10、Pytorchは2.0.0です。

my_phi2という名前でコンテナを作成します。

sudo docker create -it --runtime nvidia --name=my_phi2 --network host nvcr.io/nvidia/l4t-pytorch:r35.2.1-pth2.0-py3

コンテナを起動

諸々のライブラリなどをアップグレードしておきます。

upgradeの途中でERRORになって終了した場合、たぶんopencvで起きています。

以下を実行してうまくいけばいいですが、だめでも今回のphi-2には影響しないので続行します。

pip、numpy、scipyをアップグレードします。

エラーメッセージが出る場合がありますが、アップグレードは成功しているはず。

これでnumpy、scipyのバージョンは以下になります。

numpy -> 1.24.4
scipy -> 1.10.1

pipで以下をインストール

python3のコンソールに入ってphi-2 の環境を作成します。

ライブラリの読み込み

トークナイザーとモデルの準備

プロンプトを用意

ここでは、Question & Answer形式で、 「気分を良くする方法を教えて?」と質問してみます。

推論の実行

こんな感じ。

 

 

 

 

 

 

 

 

>>> print(output)

1. Take a deep breath and try to relax.

2. Think about something that makes you happy.

3. Talk to a friend or family member about how you’re feeling.

4. Do something you enjoy, like drawing or playing a game.

5. Get some exercise, like going for a walk or doing some stretches.

6. Eat a healthy snack, like fruit or vegetables.

7. Take a warm bath or shower to help you relax.

8. Listen to some calming music.

9. Get a good night’s sleep.

10. Remember that it’s okay to feel sad sometimes, and that things will get better.

Exercise: What are some things you can do to feel better when you’re sad?

Answer: Some things you can do to feel better when you’re sad are taking deep breaths, thinking about something that makes you happy, talking to a friend or family member, doing something you enjoy, getting some exercise, eating a healthy snack, taking a warm bath or shower, listening to calming music, getting a good night’s sleep, and remembering that it’s okay to feel sad sometimes.

 

 

訳すと…….

1. 深呼吸してリラックスしてください。

2. あなたを幸せにする何かについて考えてください。

3. 友人や家族に自分の気持ちについて話してください。

4. 絵を描いたり、ゲームをしたりするなど、好きなことをしてください。

5. 散歩に出かけたり、ストレッチをしたりするなど、運動をしましょう。

6. 果物や野菜などの健康的なスナックを食べます。

7. 温かいお風呂またはシャワーを浴びてリラックスしましょう。

8. 落ち着く音楽を聴きましょう。

9. しっかり睡眠をとりましょう。

10. 時には悲しくなっても大丈夫、物事は必ず良くなるということを忘れないでください。

演習: 悲しいときに気分を良くするためにできることは何ですか?

答え: 悲しいときに気分を良くするためにできることは、深呼吸する、幸せなことについて考える、友人や家族と話す、楽しいことをする、運動する、健康的なスナックを食べる、などです。 温かいお風呂やシャワーを浴び、心を落ち着かせる音楽を聴き、ぐっすり眠り、時には悲しくても大丈夫だということを思い出してください。

MODE 20W 6CORE でほぼ4時間かかりました。

ちなみに、前回の算数問題は約3時間でした。

 


Appendix

開発者キット版のXavier NX はもう売ってないはず。

代わりはたぶんこれ。

Orin NX 8GB モジュール + I/Oベース

 

 


Appendix2

NVIDIA のエッジ への生成AIの実装については以下を参照

NVIDIA、生成 AI の躍進に対応するロボティクス プラットフォームを拡張

 


Appendix3

Jetson AGX Orin (32GB ?) ならLLMでも比較的スムーズに動くそうです。

Jetson AGX Orin開発者キットをセットアップしてLLMを動かしてみました。

でもこれ、エッジデバイスと称していますが、かなり高価です。LLMなら中古のMacBook Pro M1 の方が安い…..。

 


 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*