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で動くのは確認していたのですが、サポートされているようなので、とりあえずはまだまだ使って行こうと思います。とても便利なので。

    2023年11月17日金曜日

    VMware Private AI foundation ③

    Tech zoneとかでPrivate AIの情報が出てきたので見ていると、ソフトウェアのサポートと組み合わせだけじゃなくて、各コンポーネントがちゃんと連携するみたいで、VMwareユーザーがAI始めるにはとても使いやすいだろうと感じてきました。

    kubeflowやRayは独立してて個別に利用するだけかと思ったらちゃんと連携してて、kubeflowのダッシュボードにRayのダッシュボードが組み込まれていているようです。
    また、kubeflowのダッシュボードでGPUのスケーリング設定もできたりようなので、Rayとも連携しているということなのだと思います。


    RayもVCFと連携していて、RayのワークロードがDRSやHAでワークロードのHAとリソースの最適な割当がされるようです。

    冒頭で書いたように、ただソフトウェアを組み合わせただけとだと思っていましたが、使い勝手がちゃんと考えられていて流石だなとおもいました。

    また使いやすさだけではなくてVector DBでデータの扱い、vSAN Fast Pathでシビアなパフォーマンスを求める使い方も考慮されていて、どのレベルのAIワークロードもカバーできるように組み上げられている印象です。

    類似した生成AIインフラソリューションはいくつかの会社から発表されていますが、各社NVIDIAのAI Enterpriseがほぼ利用されていてよく似ていて同じようなものに見えますが、よくみると各々特徴があって使いやすさや、管理性など違いが見えてきます。

    今後、もっと情報が公開されていくと思うのでチェックしていきたいと思います。

    2023年10月30日月曜日

    [Bitfusion]LLM fine tuning

    流行りのLLMを自宅のBitfusion環境で試し中。


    環境はjupyterにBitfusionでGPU割り当てて使ってますが、今のところ問題なく学習が進んでます!


    と思ったら、、、
    コンテナが固まった、、、

    コンテナ再起動して学習やり直し、、、

    2023年10月18日水曜日

    VMware Private AI Foundation ②

    Private AI Foundation発表当初、差別化されているのはRayとKubeflowかと思いましたが、それ以外にもVector DBやDeep Learning VMも特徴になりそうです。
    ※公開されている情報がまだ少ないので想定ですが、、、


    まずDeep Learning VMについて。
    DL / MLはOSSを活用することが多いのですが、登場するOSSが多くバージョンの整合性をとるのがとても大変です。そのため1つのOSSをバージョンアップすると他のOSSもバージョンアップする必要があったり、動かなくなったりとかなり苦労します。
    なのでPrivate AIに含まれるDeep Learning VMはDL / MLでよく利用されるOSSを整合性が取れるように事前にインストールされたVMになるだろうと想像します。
    もしかしたらBitnamiで公開されているovaファイルの仮想マシンになるのかもしれないですね。

    ただ、AIインフラもですがコンテナが主流になりつつあるなか、NVIDIAのNGCとの差別化はどうなるのかが興味があります。


    Vector DBはまだまだ勉強中なので次回以降にしたいとおもいます。



    2023年8月25日金曜日

    VMware Private AI Foundation

    VMware ExploreでPrivata AI Foundationが発表されました!
    数年前にAI関連のソリューションとしてBitfusionの買収とリリースがあってから、その後のAI関連といえばvsphere
    8でGPU関連のEnhanceがあったくらいでちょっとさみしかったですが、生成AIのブームにあわせて発表があった感じですね。

    実はMLperf3.0からVMwareが掲載されるようになったので今回のExploreで何かあるのかもと思ってましたがやっぱりという感じです。

    Private AI Foundationは今のところ中身を見るとVCFとNVIDIA NEMOなので真新しいという感じではないので、AI Enterpriseのライセンスがバンドルされるとかなんですかね、、、

    あとは、Rayが入っているのと、kubeflowに何か手が加えられていそうな感じですね。

    何にせよこれからが楽しみです。