2024年9月10日火曜日

VMware Deep Learning VM 1.1

 最近はVMware関連製品にかかわることが少なくなってしまったのですが、AI関連については興味もあるし情報は集めるようにしています。Private AI Foundationが発表されたときは、個人的にも期待が大きかったのですが、まだまだな感じがあるのは残念です。

Deep Learning VMの使い方はVMUGで発表あったりするので他の情報源にお任せして、ここでは、VMware Depp Learning VMも1.1が7月にリリースされたので内容を見てみます。

VMware Deep Learning VM イメージリソースノート

DL VMもいつのまにか1.1になっていました。。。 *公開日は2024年7月23日


互換性とアップグレード

デプロイ済みのDeep Learning VMのアップグレードはできないようなので、新しいバージョンを利用する場合は再デプロイする必要があるようです。なので旧Deep Learning VMで必要なデータは別途うつしておく必要があります。


新機能

イメージリソースノートには以下機能が追加されたと記載があります。

  • ディープ ラーニング仮想マシン イメージに、組み込みの Miniconda インストールが含まれるようになりました。

  • ディープ ラーニング仮想マシン イメージに、検証済みの PyTorch Conda 環境マニフェストが含まれるようになりました。

  • Conda Environment Install OVF パラメータを使用して、仮想マシンのデプロイ中に自動的にインストールする Conda 環境のカンマ区切りのリストを指定できます。現在、pytorch2.3_py3.12 環境をインストールできます。

  • 初期化スクリプトの詳細なログについては、/var/log/vgpu-install.log を参照してください。


おおむね追加された機能としてはPython実行環境の強化であるconda関係の機能が追加されたようです。

Pythonの仮想環境はAnacondaやventv、pyenvなどいくつかありますが、Minicondaが含まれるようになったようです。Anacondaに比べると軽量なところが選定された理由なのかもしれないです。


サポート対象GPU
NVIDIAのA100、L40s、H100のサポートで、前バージョンの1.0.1との変更は無いようです。
できればH200とか、H100NVLとかサポートしてほしかったです。


コンポーネント
こちらも1.0.1と変更なしです。
Canonical Ubuntu 22.04
NVIDIA Container Toolkit 1.15.0
Docker Community Engine 26.0.2
Miniconda 24.4.0-0 Python 3.12 *今回から追加
PyTorch Conda 2.3.0 Python 3.12 *今回から追加


Ubuntuも22.04なので最新ではないものの安定はしているバージョンなので問題はないものの、次回もしくは1.1になるタイミングでUbuntu24になるとか、サポートされるGPUが追加されるといったところを期待したいです。

2024年7月3日水曜日

Accelerate Machine Learning in vSphere Using GPUs (HOL-2447-01-ISM)

 VMwareのHands on Labに久しぶりにアクセスしてみたら、AI関連のコースがあったので試しにやってみました。


今回受けてみたコースはAccelerate Machine Learning in vSphere Using GPUs (HOL-2447-01-ISM)

モジュールは次の5つで、HoLの特徴である実際の操作はなく、座学だけのコースになります。各モジュールは15分程度の所要時間になっていますが、実際には各モジュール5分もあれば読むこともでき


    ・Module 1 - Introduction to AI/ML in vSphere Using GPUs (15 minutes) Basic

    ・Module 2 - Run Machine Learning Workloads Using NVIDIA vGPU (15 minutes) Advanced

    ・Module 3 - Using GPUs in Pass-through Mode (15 minutes) Advanced

    ・Module 4 - Configure a container using NVIDIA vGPU in vSphere with Tanzu (15 minutes) Advanced

    ・Module 5 - Choosing the Right Profile for your Workload (vGPU vs MIG vGPU) - (15 minutes) Basic


内容としてはvSphere環境でGPUを使ったAIの超基礎の内容で、AI/ML/DLの定義や、vGPUやMIG、AI EnterpriseなどなどvSphere環境でAIを検討し始める、でもAIよくわからないといった場合の入り口にはいいと感じました。

他にもRayのコースもあったようなので、時間をみて試そうと思います。

2024年5月1日水曜日

【VMware Private AI Foundation with NVIDIA】PostgreSQL + pgvector




 以前の投稿で記載したPostgreSQL + pgvectorを試してみました。

postgresはOSSのリレーショナルDBですが、pvectorのエクステンションを有効化するだけでベクトルデータを扱うことができるようになり、生成AIで注目を浴びているRAGで重要なパーツとなるvectorDBとして利用することができるようになります。

Private AIの場合はData Services ManagerからPostgreSQLをプロビジョニングするようです。

ちなみにこの記事の内容はPrivate AIではなくOSSのpostgresでvectorエクステンションを有効化して利用してみました。おそらくPrivate AIでも大きな違いはないと思いますが、違ったらすみません。。。


まずはpostgresでpgvectorのエクステンションを有効化する必要がありますが、エクステンションの有効化はコマンド1つで有効化できます。

postgres=# create extention vector;


3次元のサンプルデータを入れてみました。



このデータに対して、ユーグリッド検索、内積検索、コサイン類似度を検索した結果が次のスクリーンショットです。


vectorDBとは?や検索の種類なども記載しようと思ったのですが、今回はとりあえずpgvectorで類似度検索するとどんな結果になるかだけ記載してみました。

気が向いたらVectorDBの仕組みや検索の種類などについても書いてみたいと思います。





vExpert Application Modernization受賞

 


日本時間の4月23日にvExpert Subprogramの発表がありました。

今年はvEpert Pro含めて12のSubprogramがあり、今年もApplication Modernizationを受賞することができました。

vExpertの各Subprogramは該当となる製品の活動を表彰されるもので、Application ModernizationはもともとはTanzuの活動が評価されるSubprogramでしたが、2023年に公開されたVMwareのブログに次のように記載があります。


How to apply to the Application Modernization vExpert program

To be eligible to apply, you must be a recognized 2023 vExpert who is already evangelizing technologies around Kubernetes, application modernization, and modern app platforms. You can apply via the vExpert portal; we will be accepting applications until March 24th. Our team will review applications received by that date throughout the rest of the month and will continue to review Application Modernization vExpert applications on a yearly basis.


こちらを読む限りTanzuなどのプラットフォームや、アプリケーションのモダナイゼーションにかかわる活動が評価されるようです。

私はTanzuというよりもPrivate AIなどのAIやGPU関連での活動が多かったことが評価されたのではないかと想像しています。

ということで、TanzuだけではなくVMwareに関係するアプリケーション系でも応募してみる価値はあると思いますので、興味のある方はぜひ。




2024年3月25日月曜日

VMwar Private AI IA

VMware Private AIがIAされて、ブログが公開されて少しずつ情報がわかってきました。


まずはライセンスはVCFが必須だろうというのは想像していたのですが、ブログに以下記載があることから、Private AIは別ライセンスにはならずAdd-onになるようです。

This platform is an add-on SKU on top of VMware Cloud Foundation. 



Prvate AIの特徴的な機能についての記載もあります。

Deep Learning VM templates:
Vector Databases for enabling RAG workflows: 
Catalog Setup Wizard: 
GPU Monitoring:


Deep Learning VMについては以前から情報が出ていたように、OSSでDeepLearningのソフトウェアを組み合わせる不便さを解消するために、一般的なDeep Learning用のソフトウェアをあらかじめインストールしたものになるようです。新しい情報としてはNGCから入手できるようになるようです。ちなみに先ほど(3/25)NGCを見てみましたが、まだ公開されていなさそうです。

Vector Databases for enabling RAG workflowsについてです。
VectorDBの機能が入るという情報は以前からあったのでGreenplum+pgvectorかなと想像していましたが、PostgreSQL+pgvectorでサポートになるようです。GreenplumがPostgreSQLがもとになっているようなので、Greepplum=postgreSQLの意味で使っているのかは不明です。
※Greenplumがあまり詳しくないので間違っていたらすみません。。。

Catalog Setup WizardにつてはVCFのセルフサービスポータルにAIカタログが追加されるようです。
GPU MonitoringはBitfusionのようにGPU利用率などが確認できるようになると思われます。

Catalog Setup WizartdとGPU Monitoringは実機で確認する機会があれば詳細を確認したいと思います。

BlogではそのほかにNVIDIA AI Enterpriseのアップデートについて記載がありました。GTCではNVAIE5.0の発表もあったので、詳細はそちらを確認してください。

2023年12月21日木曜日

VMware Private AI with Intel : Openvino

 2023年は生成AIが盛り上がった年になりました。Deep Learningが注目されて第三次AIブームと言われていましたが、2022年秋に登場したChatGPTが爆発的にはやってDeep Learningの言葉を聞くことが少なくなって、AI業界は生成AI一色になりました。

Brocade(旧VMware)もこれまでAIへの取り組みはあまりないかと思っていましたが、Private AI with NVIDIAがVMware Explore Las Vegasで発表されてから、Balcelonaではwith Intel、with IBM WatsonxとPrivate AIのラインナップを増やしました。

どれも気になるところですが、特にオンプレのPrivate AI with NVIDIAとwith Intelは特に気になっています。with NVIDIAはGPUとNGCのソフトウェアを活用してトレーニングを行うことができ、DeppLearningVMやVectorDBなどVMware独自の特徴も盛り込んでいます。


もう一つ気になっているwith Intelです。with NVIDIAと同様にインフラ部分はVMware Cloud Foundation(VCF)をベースにしているのでインフラ管理は変わりはありませんが、ソフトウェアがIntel AI Softwareを利用しているところと、GPUはIntel Max GPU、一番の特徴はCPUの利用も想定しているところだと思います。

 VMware Explore JapanのDay2基調講演でIntel CPUで生成AIのインファレンスのデモを行っていましたが、思っていた以上にパフォーマンスがよくてGPUなしでも状況を選べば十分使えそうな印象をうけました。

GPUの供給問題もあり、今後はCPUの活用例も増えていくのではないかと思います。



画像:https://core.vmware.com/resource/ai-without-gpus-technical-brief-vmware-private-ai-intel#section3


with Intelでは当然Cudaの利用は想定しておらず、上のブロック図のIntel AI SoftwareはPytorchやPandasなど有名どころのOSSが載っていますが、Intelが提供するOpenvinoも当然利用できるようになっています。これまでOpenvinoを試したことはなかったのですが、自宅の環境で少し試してみました。


環境は自宅のDell Prcisionで動いているvSphere環境にUbuntuの仮想マシンでOpenvinoのサンプルベンチマークを動かしました。


・Dell Precision 3630

 -CPU: Intel core i7 xxxx

・ESXi 8 U1

・仮想OS: Ubuntu Server 22.04 ※minimal install



仮想OSをインストール後にopen-vm-toolsをインストールした状態から以下の手順で実行できました。



まずはpipのインストールです。


user01@ubuntu02:~$ sudo apt install -y python3-pip

[sudo] password for user01:

Reading package lists... 0%




Openvinoのインストール前にかならずpipのアップデートを実行してください。

pipのアップデートしないでOpenvinoのインストールを行うとエラーでインストールが止まってしまうようです。


user01@ubuntu02:~$ python3 -m pip install --upgrade pip




次にOpenvinoのインストールです。

user01@ubuntu02:~$ python3 -m pip install openvino==2022.3.0 openvino-dev[tensorflow2,pytorch,caffe,onnx,mxnet,kaldi]==2022.3.0



Successfully installed MarkupSafe-2.1.3 absl-py-2.0.0 addict-2.4.0 astunparse-1.6.3 cachetools-5.3.2 defusedxml-0.7.1 fastjsonschema-2.15.3 flatbuffers-1.12 gast-0.4.0 google-auth-2.25.2 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 graphviz-0.8.4 grpcio-1.60.0 h5py-3.10.0 jstyleson-0.0.2 keras-2.9.0 keras-preprocessing-1.1.2 libclang-16.0.6 markdown-3.5.1 mxnet-1.9.1 networkx-2.8.8 numpy-1.23.4 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 onnx-1.12.0 opencv-python-4.8.1.78 openvino-2022.3.0 openvino-dev-2022.3.0 openvino-telemetry-2023.2.1 opt-einsum-3.3.0 packaging-23.2 pandas-1.3.5 pillow-10.1.0 protobuf-3.19.6 pyasn1-0.5.1 pyasn1-modules-0.3.0 python-dateutil-2.8.2 requests-oauthlib-1.3.1 rsa-4.9 scipy-1.8.1 tensorboard-2.9.1 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 tensorflow-2.9.3 tensorflow-estimator-2.9.0 tensorflow-io-gcs-filesystem-0.35.0 termcolor-2.4.0 texttable-1.7.0 torch-1.13.0 torchvision-0.14.0 tqdm-4.66.1 typing-extensions-4.9.0 werkzeug-3.0.1 wrapt-1.16.0 yacs-0.1.8

user01@ubuntu02:~$




次にomz_downloaderコマンドでベンチマーク用のモデルをダウンロードします。

Openvinoのインストールが失敗していると次のようにcommand not foundになってしまいます。


user01@ubuntu02:~$ omz_downloader --name resnet-50-tfomz_downloader --name resnet-50-tf

-bash: omz_downloader: command not found



omzはOpen Model Zooの頭文字をとっていて、GithubにIntelが学習済モデルを公開しています。

https://github.com/openvinotoolkit/open_model_zoo




Openvinoのインストールが成功している場合、途中で "N"を選択します。


user01@ubuntu02:~$ omz_downloader --name resnet-50-tfomz_downloader --name resnet-50-tf

Intel would like your permission to collect software performance and usage data for the purpose of improving Intel products and services. This data will be collected directly by Intel or through the use of Google Analytics. This data will be stored in countries where Intel or Google operate. Intel operates around the world and your usage data will be sent to Intel in the United States or other countries.

You can opt-out at any time in the future by running 'opt_in_out --opt_out'.

More Information is available at docs.openvino.ai.

Please type eYf to give your consent or eNf to decline.

>>N



99%, 99744 KB, 14582 KB/s, 6 seconds passed...

100%, 99775 KB, 14586 KB/s, 6 seconds passed




omz_converterコマンドでOpenvinoで利用するIR形式へ変換します。


user01@ubuntu02:~$ omz_converter --name resnet-50-tf --precisions FP16omz_converter --name resnet-50-tf --precisions FP16

========== Converting resnet-50-tf to IR (FP16)

Conversion command: /usr/bin/python3 -- /home/user01/.local/bin/mo --framework=tf --data_type=FP16 --output_dir=/home/user01/public/resnet-50-tf/FP16 --model_name=resnet-50-tf --input=map/TensorArrayStack/TensorArrayGatherV3 '--mean_values=[123.68,116.78,103.94]' --output=softmax_tensor --input_model=/home/user01/public/resnet-50-tf/resnet_v1-50.pb --reverse_input_channels '--layout=map/TensorArrayStack/TensorArrayGatherV3(NHWC)' '--input_shape=[1, 224, 224, 3]'



[ SUCCESS ] Generated IR version 11 model.

[ SUCCESS ] XML file: /home/user01/public/resnet-50-tf/FP16/resnet-50-tf.xml

[ SUCCESS ] BIN file: /home/user01/public/resnet-50-tf/FP16/resnet-50-tf.bin


user01@ubuntu02:~$




ベンチマークを実行します。 GPUを利用する場合は最後の "-d CPU"を "-d GPU”に変更すればGPUで実行することができます。


user01@ubuntu02:~$ benchmark_app -m public/resnet-50-tf/FP16/resnet-50-tf.xml -niter 100 -d CPUuser01@ubuntu02:~$ benchmark_app -m public/resnet-50-tf/FP16/resnet-50-tf.xml -niter 100 -d CPU

Traceback (most recent call last):

  File "/home/user01/.local/lib/python3.10/site-packages/openvino/tools/benchmark/utils/inputs_filling.py", line 20, in <module>

    import cv2

  File "/home/user01/.local/lib/python3.10/site-packages/cv2/__init__.py", line 181, in <module>


  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

ImportError: libGL.so.1: cannot open shared object file: No such file or directory


The above exception was the direct cause of the following exception:


Traceback (most recent call last):

  File "/home/user01/.local/bin/benchmark_app", line 5, in <module>

    from openvino.tools.benchmark.main import main

  File "/home/user01/.local/lib/python3.10/site-packages/openvino/tools/benchmark/main.py", line 15, in <module>

    from openvino.tools.benchmark.utils.inputs_filling import get_input_data

  File "/home/user01/.local/lib/python3.10/site-packages/openvino/tools/benchmark/utils/inputs_filling.py", line 22, in <module>

    raise Exception("Failed to import opencv module. " \

Exception: Failed to import opencv module. Please try to uninstall opencv-python and install opencv-python-headless instead.

user01@ubuntu02:~$



ここでエラー出ました。。。

libGL.so.1のImportエラーなので、libGL.so.1をベンチマーク実行前にインストールする必要があります。



user01@ubuntu02:~$ sudo apt-get install -y libgl1-mesa-dev

[sudo] password for user01:

Reading package lists... 0%



Running kernel seems to be up-to-date.


No services need to be restarted.


No containers need to be restarted.


No user sessions are running outdated binaries.


No VM guests are running outdated hypervisor (qemu) binaries on this host.

user01@ubuntu02:~$



再度ベンチマークを実行します。

user01@ubuntu02:~$ benchmark_app -m public/resnet-50-tf/FP16/resnet-50-tf.xml -niter 100 -d CPU

[Step 1/11] Parsing and validating input arguments

[ INFO ] Parsing input parameters

[Step 2/11] Loading OpenVINO Runtime

[ INFO ] OpenVINO:

[ INFO ] Build ................................. 2022.3.0-9052-9752fafe8eb-releases/2022/3

[ INFO ]



[Step 11/11] Dumping statistics report

[ INFO ] Count:            100 iterations

[ INFO ] Duration:         3600.59 ms

[ INFO ] Latency:

[ INFO ]    Median:        35.86 ms

[ INFO ]    Average:       35.95 ms

[ INFO ]    Min:           35.73 ms

[ INFO ]    Max:           37.20 ms

[ INFO ] Throughput:   27.77 FPS

user01@ubuntu02:~$



無事にベンチマークの結果がでました。 今回は動作確認を目的としているのでThroughputについてはふれませんが、Openvinoの実行のインストールは必要なパッケージがいくつかありますが特に難しい箇所はなく簡単にインストールまで行うことができました。 CPUで高速にAIの推論ができるのはコスト的にもとてもメリットがあるのでもう少しOpenvinoを勉強してみようと思います。



2023年11月21日火曜日

Bitfusion4.5.4

4月にBitfusionのEoAが発表されてから新規リリースもないと思っていたのですが、5月に4.5.4がリリースされていたみたいです。

ただ、4.5.4はCasandraで発生する不具合回避のためのアップデートだけでやはり機能追加はなしですね。

1つ前の4.5.3までは多くの機能追加とハードウェアサポートが追加されていますね。全然追っていませんでした、、、

リリースノートに記載されているアップデートは次のとおりです。

What is New in 4.5.3

  • vSphere Bitfusion is supported by VMware vSphere 8.0.

  • Expiration date of vSphere Bitfusion clients can be extended by using the vSphere Bitfusion user interface.

  • Added support for Red Hat Enterprise Linux 9.0 and later minor versions.

  • Added support for Rocky Linux 8.

  • Added support for Rocky Linux 9.

  • Added support for NVIDIA Driver 525.85.12.

  • Added support for NVIDIA CUDA 11.5 and 11.5.2.

  • Added framework support for Pytorch 1.9 and 1.10

  • Added hardware support for NVIDIA A40 48GB PCIE.

  • Added hardware support for NVIDIA L40 48GB PCIE.

  • Added hardware support for NVIDIA A30 24GB PCIE.

  • Added hardware support for NVIDIA A10 24GB PCIE.

  • Added hardware support for NVIDIA A2 16GB PCIE.


一応、vSphere8.0で動くのは確認していたのですが、サポートされているようなので、とりあえずはまだまだ使って行こうと思います。とても便利なので。